AI-powered penetration testing CLI tool for cybersecurity professionals
$git clone https://github.com/unclecheng-li/vulnclawInstalls into the current project.
Install vulnclaw by running `git clone https://github.com/unclecheng-li/vulnclaw`, then use it for the current task and follow its documentation at https://github.com/unclecheng-li/vulnclaw.
| 1 | <div align="center"> |
| 2 | |
| 3 | # VulnClaw 🦞 |
| 4 | |
| 5 | > *AI 驱动的渗透测试 CLI 工具 — 说人话,打漏洞。* |
| 6 | |
| 7 | [](LICENSE) |
| 8 | [](https://www.python.org/) |
| 9 | [](https://platform.openai.com/) |
| 10 | [](https://modelcontextprotocol.io/) |
| 11 | [](https://pypi.org/project/vulnclaw/) |
| 12 | [](#-安全声明) |
| 13 | [](https://atomgit.com/Unclecheng-li/VulnClaw) |
| 14 | <br> |
| 15 | |
| 16 | 🌐 **English version**: [`README_EN.md`](README_EN.md) |
| 17 | |
| 18 | **本项目是可独立运行的 AI 渗透测试 Agent。** |
| 19 | <br> |
| 20 | 项目官网:https://unclecheng-li.github.io/vulnclaw.com/ |
| 21 | <br> |
| 22 | |
| 23 | 基于 LLM Agent + MCP 工具链 + 可选 Skill 参考资料, |
| 24 | 配合 OpenAI / Anthropic / MiniMax / DeepSeek 等兼容模型, |
| 25 | 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。 |
| 26 | |
| 27 | [快速开始](#快速开始) · [架构](#架构) · [内置 Skill](#内置-skill) |
| 28 | |
| 29 | </div> |
| 30 | |
| 31 | --- |
| 32 | |
| 33 | ## 它能做什么 |
| 34 | |
| 35 | 输入自然语言,AI 自动执行渗透测试全流程: |
| 36 | |
| 37 | ``` |
| 38 | 用户输入:帮我对 http://target.example.com 进行渗透测试 |
| 39 | |
| 40 | VulnClaw 自动执行: |
| 41 | Round 1: 信息收集 → 指纹识别、端口扫描、目录枚举 |
| 42 | Round 2: 漏洞发现 → 检测注入点、已知 CVE、配置缺陷 |
| 43 | Round 3: 漏洞利用 → PoC 验证、权限获取 |
| 44 | Round 4: 报告生成 → 结构化报告 + Python PoC 脚本 |
| 45 | ``` |
| 46 | |
| 47 | <img width="1148" height="642" alt="image" src="https://github.com/user-attachments/assets/576e1cf6-25da-4969-864b-40e77d020dbf" /> |
| 48 | |
| 49 | <img width="2529" height="1136" alt="image" src="https://github.com/user-attachments/assets/9612c633-31f3-4062-8f56-ea5b4989fd50" /> |
| 50 | |
| 51 | 适用于已授权的渗透测试、CTF 竞赛、安全教学、红队演练等场景。 |
| 52 | |
| 53 | --- |
| 54 | |
| 55 | ## 特性 |
| 56 | |
| 57 | - **模型主导求解引擎(默认)** — 类似 Claude Code/Codex 的自主循环,模型自己决定下一步、何时调用工具、何时完成/询问/判定无路可走 |
| 58 | - **AgentState 证据记忆** — 工具结果统一写入 `AgentState.evidence`,raw 原文完整保留;active context 默认只注入高信号预览,`evidence_search` / `evidence_view` 用于按需回查原始证据 |
| 59 | - **轻量纠偏层** — 工具调用前后记录重复调用、失败降级、耗时和新发现等信号;重复读取同一 evidence 范围会被抑制,连续证据空转会触发 stall guard,但不恢复旧阶段规划器 |
| 60 | - **证据级反幻觉闸门** — 声称的 flag/结论必须在真实工具输出里逐字符出现才被采信,杜绝凭空编造 flag 的假胜利 |
| 61 | - **自然语言驱动** — 用人话描述渗透意图,自动识别阶段和工具 |
| 62 | - **13 个 LLM Provider** — OpenAI / Anthropic / MiniMax / DeepSeek / 智谱 / Moonshot / 千问 / SiliconFlow / 豆包 / 百川 / 阶跃星辰 / 商汤 / 零一万物,一键切换 |
| 63 | - **MCP 工具链** — 4 个 MCP 服务:`fetch` / `memory` 本地实现开箱即用,`chrome-devtools` / `burp` 对接外部 MCP 服务实现浏览器自动化和 HTTP 抓包重放 |
| 64 | - **增强 fetch 请求工具** — 默认直接 GET 并返回完整响应 body,支持 HTTP/HTTPS、自定义 method/headers/params/cookies/body/data/form/json、timeout/redirect/TLS 控制;CTF/靶场 HTTPS 默认不校验证书 |
| 65 | - **原生流量证据存储** — 按运行内作用域过滤后以追加式 JSONL 索引 + 每请求原始报文落盘于 `evidence/traffic/`,内置 `traffic_list` / `traffic_view` / `traffic_repeat` / `traffic_sitemap` 工具直接读写 |
| 66 | - **AI Agent 核心** — OpenAI 兼容协议 + Tool Calling + 自主渗透循环 |
| 67 | - **结构化推理 + 自适应反思** — 已知事实/约束/攻击链结构化沉淀;失败自动归类并按 L0-L4 渐进升级 payload 绕过策略 |
| 68 | - **漏洞检测插件体系** — 低耦合插件运行时 + 内置只读 Web 插件,结果自动汇入报告链路(`vulnclaw plugins`) |
| 69 | - **50 个专项 Skill** — 覆盖 CTF、Web、内网、逆向、漏洞验证与授权红队知识库;Skill 只作为参考资料索引暴露给模型,正文需要模型主动调用 `load_skill_reference` 按需读取,不再作为强制剧本注入上下文 |
| 70 | - **编解码/加解密工具** — 29 种操作(Base64/Hex/URL/AES/JWT/Morse 等),LLM 可精确调用,不再靠猜测 |
| 71 | - **源码自动还原** — `fetch` / `http_probe_batch` 遇到 `highlight_file`、HTML 高亮源码或混杂 HTML/JS body 时会自动在 raw body 前追加 clean source;`http_probe_batch` 默认关闭 TLS 校验并记录完整响应头,避免丢失 `X-Powered-By` 等运行时证据;内置 `source_extract` 仍可用于按需重读历史 evidence,并固定危险 sink、表单与 endpoint 信号 |
| 72 | - **本地命令验证** — 内置 `shell_command`,用于 `php -r` 反序列化验证、`curl` 精确请求、`rg`/`Select-String` 文件检索等 Codex-style 本地调试场景;raw stdout/stderr 完整写入 evidence,大输出进入模型时使用高信号预览 |
| 73 | - **运行时差分探测** — 内置 `runtime_diff_probe`,用于正则/字符串过滤器与运行时解析器不一致的场景,帮助模型批量生成并验证“过滤器漏过、解析器接受”的候选;PHP 序列化模式会提示目标/本地运行时版本差异,并把 PHP5 signed length 候选标记为必须远程验证,避免被本地新版 PHP 误杀 |
| 74 | - **Python 代码执行** — 内置 `python_execute` 工具,适合 payload 构造和响应解析;当前仍属高风险实验能力,不应视为强隔离沙箱 |
| 75 | - **批量 HTTP 探测** — 内置 `http_probe_batch`,用于一次比较多组 URL/参数/header/body/raw URL 变体,默认返回每个响应的完整 body,并在模型可见输出中展示实际请求面(method、URL、params、headers、cookies、body/json),减少重复 LLM 轮次和手写请求代码 |
| 76 | - **近成功防误停** — solve 保留证据闸门,并新增通用 `NO_PATH` 闸门:当源码 sink、表单/参数、请求面、本地 proof 或响应差异等高信号尚未耗尽时,不接受模型因单次 payload 无回显/远端 same-body 就 |