📌 项目地址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=openaiLLM_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 并解析响应,但仍属实验能力,不应视为强隔离沙箱。

局限性 & 注意事项

  1. 仅限授权测试:项目根目录明确附带安全声明(LICENSE?实际为顶部 # 安全声明 链接),请务必遵守当地法律,仅对已授权目标使用。
  2. 依赖大模型 API 成本:每次推理都会调用 LLM,长时间渗透可能产生令牌消耗;选用本地部署的模型(如 ollama 兼容协议)可降低成本。
  3. MCP 服务配置:4 个 MCP 服务中,fetchmemory 开箱即用;而 chrome-devtools(浏览器自动化)和 burp(HTTP 抓包重放)需要额外部署外部 MCP 服务,官方文档提供了对接方式。
  4. Python 代码执行非沙箱:内置的 python_execute 工具可执行任意代码,当前无强隔离沙箱,若在渗透测试中引入恶意输入可能带来风险,建议在可控环境中使用。
  5. 弱模型表现不稳定:反幻觉闸门能缓解凭空编造,但若模型理解能力不足,仍可能导致探索效率低下。官方推荐使用推理能力较强的模型(如 OpenAI GPT-4、DeepSeek-R1)。

适合谁用?

  • 红队 / 渗透测试工程师:快速自动化信息收集和漏洞验证,减少重复劳动。
  • CTF 玩家:在固定靶标上快速提取 flag,节省手动操作时间。
  • 安全教学人员:用具体案例展示渗透测试全流程,帮助学生理解攻击链。
  • 愿意尝鲜的开发者:探索 AI Agent 在安全领域的落地可能性。

如果你正在寻找一个“输入一句话,自动跑渗透”的实验性工具,VulnClaw 值得一试。请务必在合法授权范围内使用。

这篇文章对你有帮助吗?

发表回复