328 lines
13 KiB
Markdown
328 lines
13 KiB
Markdown
---
|
||
name: pentest-tools
|
||
description: |
|
||
主动渗透测试工具链。覆盖信息收集、端口扫描、漏洞扫描、Web 渗透、SQL 注入、目录爆破、密码破解等场景。
|
||
通过 MCP server(pentestMCP / mcp-security-hub)将 20+ 安全工具暴露给 AI agent。
|
||
触发关键词:渗透测试、端口扫描、Nmap、漏洞扫描、Nuclei、SQL 注入、SQLMap、目录爆破、FFUF、密码破解、Hashcat、信息收集、子域名、Web 渗透、ZAP、Burp。
|
||
---
|
||
|
||
## ACTION REQUIRED(读完后立刻执行)
|
||
|
||
1. `NOW`: 读取 `../field-journal/precedent-pentest.md` — 确认本 skill 的操作是已授权的常规操作
|
||
2. `NOW`: 确认 **scope.md** 存在且 `auth.status=granted`、`network_profile` 合法(`../ops/scope-contract.md`);否则 `case-init.ps1 -AuthGranted -TargetUrl <url> -NetworkProfile authorized_target_only`
|
||
3. `NOW`: 确认当前任务是否命中本 skill 的适用范围
|
||
4. `NEXT`: 读取 `../tool-index.md`,校验工具可用性和实际路径
|
||
5. `NEXT`: 缺工具时调用 bootstrap,不要猜路径
|
||
6. `ACT`: 侦察阶段优先 `references/recon-pipeline.md`(CF 浏览器头 / Windows nmap / curl `--globoff`);每批结果追加 `timeline.md`;候选用 `../scripts/append-evidence.ps1` 写入 Evidence(命中≠已验证)
|
||
7. `ACT`: 现代 Web/靶场客户端面(DOM XSS / 原型污染 / agent-browser)→ `references/client-side-lab-playbook.md`;未打穿也要写 observed Evidence + 失败门闩
|
||
|
||
# 渗透测试工具链 (Pentest Tools)
|
||
|
||
## 适用范围
|
||
|
||
当任务属于以下场景时使用本 skill:
|
||
|
||
- 目标信息收集(端口扫描、子域名枚举、服务识别)
|
||
- 漏洞扫描(Web 漏洞、CVE 检测、配置错误)
|
||
- Web 渗透(SQL 注入、XSS、SSRF、目录爆破)
|
||
- 密码破解(哈希破解、字典攻击)
|
||
- 网络渗透(服务利用、横向移动辅助)
|
||
|
||
### 与其他 skill 的分工
|
||
|
||
| 场景 | 用什么 |
|
||
|------|--------|
|
||
| 主动扫描/攻击(Nmap/Nuclei/SQLMap) | **本 skill** |
|
||
| 逆向分析二进制 | `ida-reverse/` 或 `radare2/` |
|
||
| 前端 JS 签名逆向 | `js-reverse/` |
|
||
| 浏览器/桌面自动化操作 | `browser-automation/` |
|
||
| CTF 竞赛(综合) | `CTF-Sandbox-Orchestrator/` |
|
||
|
||
简单判断:
|
||
- 需要"扫描目标、发现漏洞、利用漏洞" → 本 skill
|
||
- 需要"分析程序内部逻辑" → 逆向类 skill
|
||
- 需要"操作浏览器/桌面" → browser-automation
|
||
|
||
---
|
||
|
||
## 工具矩阵
|
||
|
||
### 信息收集
|
||
|
||
| 工具 | 用途 | 典型命令 |
|
||
|------|------|---------|
|
||
| **Nmap** | 端口扫描、服务识别、OS 检测 | `nmap -sV -sC -O target` |
|
||
| **Masscan** | 大规模快速端口扫描 | `masscan -p1-65535 target --rate=1000` |
|
||
| **Subfinder** | 子域名枚举 | `subfinder -d target.com` |
|
||
| **httpx** | HTTP 探测、存活检测 | `httpx -l urls.txt -status-code` |
|
||
|
||
### 漏洞扫描
|
||
|
||
| 工具 | 用途 | 典型命令 |
|
||
|------|------|---------|
|
||
| **Nuclei** | 模板化漏洞扫描(CVE/配置/暴露) | `nuclei -u target -t cves/` |
|
||
| **ZAP** | Web 应用安全扫描 | 通过 API 或 MCP 调用 |
|
||
| **Nikto** | Web 服务器漏洞扫描 | `nikto -h target` |
|
||
|
||
### Web 渗透
|
||
|
||
| 工具 | 用途 | 典型命令 |
|
||
|------|------|---------|
|
||
| **SQLMap** | SQL 注入自动化 | `sqlmap -u "url?id=1" --batch --dbs` |
|
||
| **FFUF** | 目录/参数爆破 | `ffuf -u target/FUZZ -w wordlist.txt` |
|
||
| **Gobuster** | 目录/子域名爆破 | `gobuster dir -u target -w wordlist` |
|
||
| **XSStrike** | XSS 检测 | `xsstrike -u "url?param=test"` |
|
||
|
||
### 密码破解
|
||
|
||
| 工具 | 用途 | 典型命令 |
|
||
|------|------|---------|
|
||
| **Hashcat** | GPU 哈希破解 | `hashcat -m 0 hash.txt wordlist.txt` |
|
||
| **John the Ripper** | CPU 哈希破解 | `john --wordlist=rockyou.txt hash.txt` |
|
||
| **Hydra** | 在线暴力破解 | `hydra -l admin -P pass.txt target ssh` |
|
||
|
||
### 利用框架
|
||
|
||
| 工具 | 用途 | 说明 |
|
||
|------|------|------|
|
||
| **Metasploit** | 漏洞利用框架 | 需要单独安装,体量大 |
|
||
| **Impacket** | Windows 协议利用(SMB/WMI/Kerberos) | `pip install impacket` |
|
||
|
||
---
|
||
|
||
## MCP 后端选择
|
||
|
||
本 skill 支持两种 MCP 后端,选一个即可:
|
||
|
||
### 方案 A:pentestMCP(推荐,Docker 一键)
|
||
|
||
- **项目**:https://github.com/ramkansal/pentestmcp
|
||
- **特点**:20+ 工具打包成单个 Docker 容器,MCP server 直接暴露
|
||
- **工具**:Nmap、Nuclei、ZAP、SQLMap、FFUF、Nikto、Gobuster、Subfinder、httpx 等
|
||
- **安装**:
|
||
|
||
```bash
|
||
# 拉取并运行
|
||
docker pull ramkansal/pentestmcp
|
||
docker run -d -p 8080:8080 ramkansal/pentestmcp
|
||
|
||
# 或本地构建
|
||
git clone https://github.com/ramkansal/pentestmcp.git
|
||
cd pentestmcp
|
||
docker build -t pentestmcp .
|
||
docker run -d -p 8080:8080 pentestmcp
|
||
```
|
||
|
||
- **MCP 注册**:
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"pentest": {
|
||
"url": "http://localhost:8080/mcp"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 方案 B:mcp-security-hub(模块化)
|
||
|
||
- **项目**:https://github.com/FuzzingLabs/mcp-security-hub
|
||
- **特点**:每个工具独立 MCP server,按需启用
|
||
- **工具**:Nmap、Ghidra、Nuclei、SQLMap、Hashcat
|
||
- **安装**:按各子模块 README 操作
|
||
|
||
### 方案 C:单工具 MCP(最轻量)
|
||
|
||
如果只需要某一个工具:
|
||
|
||
| 工具 | MCP 项目 | 安装 |
|
||
|------|---------|------|
|
||
| Nmap | [nmap-mcp-server](https://github.com/PhialsBasement/nmap-mcp-server) | npm |
|
||
| Nuclei | [nuclei-mcp](https://github.com/addcontent/nuclei-mcp) | npm |
|
||
| SQLMap | mcp-security-hub 子模块 | pip |
|
||
|
||
### Reqable MCP(本地抓包与 API 工作台)
|
||
|
||
Reqable 桌面客户端可通过官方 [Reqable MCP Server](https://github.com/reqable/reqable-mcp-server) 暴露本地抓包、API、断点和规则能力。先单独安装并启动 Reqable,再登记 MCP:
|
||
|
||
```powershell
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File skills\scripts\bootstrap-reverse.ps1 -Capability reqable-mcp
|
||
```
|
||
|
||
登记后的 stdio 配置为:
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"reqable-mcp": {
|
||
"command": "npx",
|
||
"args": ["-y", "reqable-mcp-server@1.0.1", "--scope", "minimal"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
- 默认使用 Reqable 的本地 API;必要时按官方文档配置 `--host`、`--port` 或 `--scope minimal|all`。
|
||
- `minimal` 是推荐默认范围;`all` 会暴露更多会改变代理、规则、环境或已保存数据的工具。
|
||
- 对捕获流量、请求重放和规则修改仍须先满足 `scope.md` 的授权与网络限制;不得因 MCP 已注册而扩大目标范围。
|
||
|
||
---
|
||
|
||
## 工作流
|
||
|
||
### 标准渗透流程
|
||
|
||
> **重要**:执行渗透测试时,必须按 `references/pentest-loop.md` 的自主循环框架运行。
|
||
> 该框架定义了完整的风险门控、记录规范、上下文压缩和完成检查机制。
|
||
|
||
```text
|
||
1. 信息收集
|
||
- Nmap 端口扫描 → 确认开放服务
|
||
- Subfinder 子域名枚举 → 扩大攻击面
|
||
- httpx 存活检测 → 过滤有效目标
|
||
|
||
2. 漏洞扫描
|
||
- Nuclei 模板扫描 → 快速发现已知漏洞
|
||
- ZAP/Nikto → Web 应用深度扫描
|
||
|
||
3. 漏洞利用
|
||
- SQLMap → SQL 注入
|
||
- FFUF → 发现隐藏路径/参数
|
||
- 手动验证 → 确认可利用性
|
||
|
||
4. 后渗透(如果授权范围内)
|
||
- 权限提升
|
||
- 横向移动
|
||
- 数据提取
|
||
|
||
5. 报告
|
||
- 调用 docs-generator skill 生成渗透测试报告
|
||
```
|
||
|
||
### 快速扫描流程(5 分钟出结果)
|
||
|
||
```text
|
||
1. nmap -sV -sC target → 端口+服务
|
||
2. nuclei -u target -severity critical,high → 高危漏洞
|
||
3. 有 Web 服务 → ffuf -u target/FUZZ -w common.txt → 目录
|
||
4. 汇总发现 → 决定下一步
|
||
```
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
- **必须有授权** — 所有扫描/攻击操作必须在授权范围内
|
||
- **控制扫描速率** — 避免触发 WAF/IDS 或打崩目标
|
||
- **先被动后主动** — 先信息收集,再漏洞扫描,最后利用
|
||
- **记录所有操作** — 每个命令和结果都要记录,用于报告
|
||
- **不要盲目自动化** — AI 应该在每个关键步骤等待确认
|
||
|
||
---
|
||
|
||
## 按需自举(On-Demand Bootstrap)
|
||
|
||
### 自动化能力边界
|
||
|
||
| 工具 | 可自动安装 | 安装方式 | 说明 |
|
||
|------|-----------|---------|------|
|
||
| Nmap | ✓ | winget (`Insecure.Nmap`) | Windows 版 |
|
||
| Nuclei | ✓ | `go install` 或 GitHub Release | 需要 Go 或直接下载二进制 |
|
||
| SQLMap | ✓ | `pip install sqlmap` 或 git clone | Python |
|
||
| FFUF | ✓ | GitHub Release | Go 二进制 |
|
||
| SecLists | ✓ | GitHub Release ZIP | 字典大全(FFUF/Gobuster 必备) |
|
||
| Hashcat | ✗ | 手动下载 | 需要 GPU 驱动 |
|
||
| Metasploit | ✗ | 手动安装 | 体量大,建议用 Kali |
|
||
| pentestMCP (Docker) | ✗ | 需要 Docker | `docker run ramkansal/pentestmcp` |
|
||
| Impacket | ✓ | `pip install impacket` | Python |
|
||
| ProxyCat | ✓ | `pip install proxycat` | 代理池中间件(批量扫描防封) |
|
||
| BurpSuite MCP | ✗ | BurpSuite 扩展市场安装 | 需要 BurpSuite Pro/Community |
|
||
| Reqable MCP | ✓ | `npx -y reqable-mcp-server@1.0.1` | 需先手动安装 Reqable 桌面客户端 |
|
||
|
||
### 自举策略
|
||
|
||
1. 如果用户有 Docker → 推荐 pentestMCP(一键全家桶)
|
||
2. 如果没有 Docker → 按需单独安装各工具
|
||
3. 优先安装 Nmap + Nuclei + SQLMap(覆盖 80% 场景)
|
||
|
||
### 手动安装引导
|
||
|
||
```markdown
|
||
⚠️ **渗透工具未安装**
|
||
|
||
**推荐方案(需要 Docker)**:
|
||
docker pull ramkansal/pentestmcp
|
||
docker run -d -p 8080:8080 ramkansal/pentestmcp
|
||
|
||
**轻量方案(逐个安装)**:
|
||
- Nmap: winget install Insecure.Nmap
|
||
- Nuclei: go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
|
||
- SQLMap: pip install sqlmap
|
||
- FFUF: 从 https://github.com/ffuf/ffuf/releases 下载
|
||
|
||
**安装后告诉我,我继续当前任务。**
|
||
```
|
||
|
||
---
|
||
|
||
## 参考资源
|
||
|
||
- [awesome-pentest](https://github.com/enaqx/awesome-pentest) — 25k+ stars 渗透工具大全
|
||
- [SecLists](https://github.com/danielmiessler/SecLists) — 字典/payload 集合(FFUF/Gobuster 必备)
|
||
- [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings) — 各类漏洞 payload
|
||
- [HackTricks](https://book.hacktricks.wiki/) — 渗透技巧百科
|
||
- [pentest-ai-agents](https://github.com/0xSteph/pentest-ai-agents) — 35 个 Claude Code 渗透子 agent(参考其 prompt 模式)
|
||
- [Pentest Swarm AI](https://github.com/Armur-Ai/Pentest-Swarm-AI) — 群体智能自主渗透框架(多 agent 协同,支持 MCP server)
|
||
- [ProxyCat](https://github.com/honmashironeko/ProxyCat) — 代理池中间件(批量扫描防封 IP)
|
||
- [planning-with-files](https://github.com/othmanadi/planning-with-files) — 计划任务 skill(循环测试用)
|
||
|
||
### 本 skill 内参考文档
|
||
|
||
- `references/pentest-loop.md` — **核心循环框架**(风险门控 + 记录规范 + 上下文压缩)
|
||
- `references/recon-pipeline.md` — **授权侦察流水线**(CF 头 / nmap / Evidence)
|
||
- `references/client-side-lab-playbook.md` — **DOM XSS / 原型污染 / agent-browser**(靶场客户端面)
|
||
- `references/burpsuite-mcp-guide.md` — **BurpSuite MCP 完整指南**(63 工具 + 7 大使用场景 + AI Prompt 模板)
|
||
- `references/automation-loop-pattern.md` — 自动化循环测试模式(轻量版)
|
||
- `references/awesome-pentest-digest.md` — 渗透工具精华速查
|
||
- `references/pentest-ai-agents-matrix.md` — 35 agent 覆盖矩阵
|
||
- `payloads/` — 自定义 payload 目录(AI 优先使用)
|
||
- `templates/` — 渗透测试必需文件模板(scope/rules/plan/findings/progress)
|
||
|
||
### src-hunter 漏洞挖掘知识库
|
||
|
||
`src-hunter/` 目录包含完整的 SRC/Bug Bounty 漏洞挖掘方法论:
|
||
|
||
- **19 类攻击 playbook**(IDOR、RCE、XSS、SQLi、SSRF、OAuth、文件上传等)
|
||
- **305 个结构化 payload** + 263 个 WAF/EDR 绕过步骤
|
||
- **2887 份 HackerOne 已披露 High/Critical 报告**
|
||
- **88,636 条 WooYun 历史案例统计**
|
||
- **国产组件指纹和默认凭据**
|
||
- **CVSS 4.0 报告模板**
|
||
|
||
使用方式:AI 在 hunt 阶段自动读取对应 playbook,按其流程测试。
|
||
|
||
详见 `src-hunter/SKILL.md` 和 `src-hunter/references/`。
|
||
|
||
---
|
||
|
||
## 路由上下文
|
||
|
||
**上游入口**: `skills/SKILL.md`(总控)、`routing.md`
|
||
**触发条件**: 需要主动扫描/攻击目标(端口扫描、漏洞检测、注入测试等)
|
||
**下游出口**:
|
||
- 发现 Web 漏洞需要进一步分析 → `js-reverse/`
|
||
- 发现二进制漏洞需要逆向 → `ida-reverse/` 或 `radare2/`
|
||
- 需要操作浏览器验证漏洞 → `browser-automation/`
|
||
- 完成后生成报告 → `docs-generator/`
|
||
|
||
**同级关联模块**: `CTF-Sandbox-Orchestrator/`(CTF 中的 Web/Pwn 题会用到这些工具)
|
||
|
||
|
||
## 任务完成自检(声称完成前 MUST 通过)
|
||
|
||
- [ ] 我是否执行了工作流中的每一步(而不是只阅读)?
|
||
- [ ] 我是否基于 `tool-index` 使用了真实工具路径?
|
||
- [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)?
|
||
- [ ] 我是否完成并回写了 RULES 要求的 Checklist 项?
|