📌 项目地址:Unclecheng-li/VulnClaw | ⭐ 1,076 颗星 | 🔧 Python | 📜 未标注
一句话概括
VulnClaw 是一个基于 AI Agent 的渗透测试 CLI 工具,你只需输入类似“帮我对 http://target.example.com 进行渗透测试”的自然语言描述,它就能自主完成信息收集、漏洞发现、漏洞利用直到生成结构化报告和 PoC 脚本的完整流程。项目以 Python 实现,Star 数 1076,支持 OpenAI、DeepSeek、MiniMax 等 13 个大语言模型 Provider,并引入了黑板图搜索、反幻觉闸门等抗弱模型机制。
核心架构:从“固定轮数”到“目标驱动求解”
老版本渗透 Agent 是固定轮数循环(例如跑满 100 轮才停),弱模型容易陷入“反复请求同一页面、嘴上说要测注入却不发包”的原地打转。VulnClaw 将渗透建模为状态空间搜索,用两个原语驱动:
- Fact:已被真实工具输出证实的客观事实(如“首页存在登录框”)
- Intent:探索方向(如“尝试 SQL 注入”),从已有 Fact 出发,执行后产出新 Fact
循环结构(来自源码 vulnclaw/agent/solver.py):
1. REASON:读取当前所有 Fact,判断目标是否达成,或提出新 Intent
2. EXPLORE:领取一个 Intent,用工具实际执行,将结论写回 Fact
3. 终止条件:目标达成 / 探索前沿耗尽(不再有新 Intent) / 触达安全预算
为何能杜绝打转:一旦“首页是登录框”成为 Fact,Reason 不会重复提议“去看首页”,而是提出“测 SQL 注入”;每个 Intent 只被领取一次,结论后标记为 concluded/abandoned,不可重复。终止由目标驱动,而不是数死轮数。
反幻觉闸门:弱模型常凭空编造 flag。新引擎录制所有真实工具输出(HTTP 响应体、python_execute 输出),声称的 flag 必须在该输出中逐字符出现才被采信;否则丢弃并标记 [未验证]。宣布“目标达成”时,若目标要求 flag 但真实输出从未出现过 flag,则拒绝完成,继续探索。
实际用法:安装、运行、Web UI
安装
pip install vulnclaw
要求 Python 3.10+,并配合 OpenAI 兼容的 API(需自行配置 API Key 和端点,例如 export OPENAI_API_KEY=sk-xxx)。
命令行渗透
vulnclaw run "帮我对 http://target.example.com 进行渗透测试"
工具会自动进入多轮循环,实时输出推理和工具执行结果。可通过 think on 显示 LLM 思考过程,think off 恢复干净输出(默认关闭)。
启动 Web UI
vulnclaw web
默认监听 127.0.0.1:7788,在浏览器中操作渗透测试全流程,适合不习惯 CLI 的用户。
管理插件与知识库
vulnclaw plugins # 查看/管理漏洞检测插件
vulnclaw knowledge # 内置知识库维护(CLI 可操作)
模型切换
VulnClaw 提供 13 个 LLM Provider 一键切换,通过配置文件或环境变量指定(如 LLM_PROVIDER=openai、LLM_PROVIDER=deepseek 等),详见项目文档 README.md。
与同类工具有何不同?
传统渗透测试工具(如 Metasploit、Burp Suite)需要手动选择模块、配置参数、编写脚本;而 VulnClaw 的定位是“对话式渗透”——只需自然语言描述意图,AI 负责编排工具链。具体区别:
| 维度 | 传统工具 | VulnClaw |
|---|---|---|
| 交互方式 | 命令行/图形界面,逐条执行 | 自然语言对话,一次任务描述 |
| 流程编排 | 人工决定下一步 | AI 自动调度 21 个渗透 Skill 和 MCP 服务 |
| 抗幻觉 | 无(人工判断) | 证据级反幻觉闸门,避免 LLM 编造结果 |
| 报告生成 | 手动收集 | 自动生成结构化 Markdown 报告 + Python PoC |
| 持续测试 | 需循环脚本 | 内置 10 周期 × 100 轮周期性渗透 |
值得注意:VulnClaw 的定位不是取代现有工具,而是作为“AI 渗透助手”,调用已有工具(如 nmap、sqlmap、MCP 服务)来执行具体操作。其内置的 python_execute 工具允许动态构造 payload 并解析响应,但仍属实验能力,不应视为强隔离沙箱。
局限性 & 注意事项
- 仅限授权测试:项目根目录明确附带安全声明(LICENSE?实际为顶部
# 安全声明链接),请务必遵守当地法律,仅对已授权目标使用。 - 依赖大模型 API 成本:每次推理都会调用 LLM,长时间渗透可能产生令牌消耗;选用本地部署的模型(如 ollama 兼容协议)可降低成本。
- MCP 服务配置:4 个 MCP 服务中,
fetch和memory开箱即用;而chrome-devtools(浏览器自动化)和burp(HTTP 抓包重放)需要额外部署外部 MCP 服务,官方文档提供了对接方式。 - Python 代码执行非沙箱:内置的
python_execute工具可执行任意代码,当前无强隔离沙箱,若在渗透测试中引入恶意输入可能带来风险,建议在可控环境中使用。 - 弱模型表现不稳定:反幻觉闸门能缓解凭空编造,但若模型理解能力不足,仍可能导致探索效率低下。官方推荐使用推理能力较强的模型(如 OpenAI GPT-4、DeepSeek-R1)。
适合谁用?
- 红队 / 渗透测试工程师:快速自动化信息收集和漏洞验证,减少重复劳动。
- CTF 玩家:在固定靶标上快速提取 flag,节省手动操作时间。
- 安全教学人员:用具体案例展示渗透测试全流程,帮助学生理解攻击链。
- 愿意尝鲜的开发者:探索 AI Agent 在安全领域的落地可能性。
如果你正在寻找一个“输入一句话,自动跑渗透”的实验性工具,VulnClaw 值得一试。请务必在合法授权范围内使用。