| name | tool-supply-chain-audit |
| description | 审计 AboutSecurity skills 中引用的渗透工具与 f8x 安装器、arsenal 投递物仓库、tchkiller --check 之间的同步状态。当新增或修改了 skill、往 f8x 加了新工具、或者想检查工具覆盖完整性时使用此 skill。涉及关键词:工具审计、f8x 覆盖、arsenal 同步、--check 检查、工具链维护。 |
工具供应链审计
当 skill 引用了一个渗透工具,需要保证 4 个环节同步,形成完整的工具供应链:
Skill 引用工具 → f8x 安装函数 → f8x arsenal 投递 → tchkiller --check 检查
① ② ③ ④
任何一环缺失都会导致:agent 加载了 skill 却找不到工具、投递物缺失、环境检查遗漏。
审计流程
Phase 1: 提取 Skill 工具清单
扫描目标 skill 目录下的所有 .md 文件(SKILL.md + references/),提取工具引用:
提取规则:
- 代码块中的命令首词(
python3 xxx.py, ./tool, tool --flag)
- 工具表格中的工具名
wget/curl 下载的工具 URL
Skill(skill="xxx") 交叉引用中涉及的工具
分类:每个工具标记类型:
PATH — 系统 PATH 中可直接调用(nmap, curl, impacket-*)
PENTEST — 安装在 /pentest/ 下的 PoC/脚本(noPac, zerologon)
ARSENAL — 需要预编译多平台二进制投递到目标(fscan, chisel)
PIP — Python pip 安装(tccli, certipy)
SYSTEM — 系统自带/apt 安装(mount, nsenter, tcpdump)
Phase 2: 对比 f8x 覆盖
打开 f8x 脚本(<f8x-repo>/f8x),检查每个工具:
f8x 安装检查(详见 → references/f8x-architecture.md):
- 是否有版本变量(
xxx_Ver="v1.0",文件顶部 ~行 40-430)
- 是否有安装函数(
Pentest_xxx_Install())
- 是否注册到
F8X_TOOL_LIST(~行 10706+,格式 name|function|level)
- 是否在对应的安装组调用(
cloud() / Ad_Tools() 等)
判断标准:
SYSTEM 类工具(apt 包)→ 不需要 f8x 覆盖,跳过
PATH 类且已通过 pip/go install 安装的 → 检查 f8x 是否有函数
PENTEST 类(git clone 的 PoC)→ 必须有 f8x 安装函数
PIP 类 → 应有 f8x 安装函数
Phase 3: 对比 Arsenal 覆盖
检查工具是否适合 arsenal 投递,并对比当前 arsenal 配置:
Arsenal 适合条件(满足任一):
- Go/Rust 静态编译二进制,有 GitHub Releases 多平台预编译文件
- 需要在目标机上直接执行的工具(不是攻击机上用的)
- 已有的 agent 类工具(ligolo-agent, frpc)
不适合 arsenal 的:
- Python 脚本(需要运行环境)
- 攻击机本地工具(nmap, responder)
- 系统工具(apt 包)
f8x arsenal 检查(详见 → references/f8x-architecture.md):
- 是否在
ARSENAL_TOOLS 列表(~行 11110+)
- 如果工具 release 格式非标准,是否有自定义
case 块
- 涉及哪些平台(linux_amd64, linux_arm64, windows_amd64)
Phase 4: 对比 tchkiller --check
检查工具是否注册到 tchkiller 的环境检查(详见 → references/tchkiller-check-architecture.md):
pentest_tools 列表(~行 294)— PATH 中的渗透工具
_ARSENAL_TOOLS 列表(~行 427)— arsenal 投递物检查
- mkdir 提示信息中的工具列表
Phase 5: 检查 Skill 路径正确性
对 PENTEST 类工具,检查 skill 中是否使用了绝对路径:
- 应该用
/pentest/工具名/脚本.py 而不是裸名 脚本.py
- 路径应与 f8x 安装函数中的
$P_Dir/xxx 一致(默认 /pentest/)
输出格式
# 工具供应链审计报告
## 审计范围
- Skills: xxx, yyy
- f8x: /path/to/f8x
- tchkiller: /path/to/main.py
## 工具清单
| 工具 | 类型 | 引用来源 | f8x 安装 | Arsenal | --check | Skill 路径 |
|------|------|----------|----------|---------|---------|------------|
| noPac | PENTEST | ad-domain-attack | ✅ | N/A | ❌ | ✅ /pentest/noPac/ |
| fscan | ARSENAL | tool-delivery | ✅ | ✅ | ✅ | ✅ |
| tcpdump | SYSTEM | k8s-sidecar-attack | N/A | N/A | N/A | N/A |
## 缺失项(需要修复)
1. ❌ `xxx` 未在 f8x 中注册 → 需要添加安装函数
2. ❌ `yyy` 适合 arsenal 但未添加 → 检查 release 格式后添加
3. ❌ `zzz` 未在 --check 中注册
## 已完整覆盖
✅ 所有 PATH/PENTEST/ARSENAL 类工具已同步
关键文件路径
| 文件 | 作用 |
|---|
<f8x-repo>/f8x | f8x 安装器主脚本 |
<tchkiller-repo>/main.py | tchkiller 入口(含 --check) |
<skills-repo>/ | Skill 仓库根目录 |
<tchkiller-repo>/prompt/system.py | 系统提示词(本地资源路径) |
<tchkiller-repo>/mcp_server.py | MCP 工具(含 locate_tool) |