VulnClaw 教程:先锁定授权范围,再让模型调用工具
VulnClaw 用大模型调度 HTTP、MCP、插件和本地命令,把工具输出保存到 AgentState.evidence,再生成报告。官方将它标为公开 Alpha,只允许书面授权测试、CTF 和可控实验环境。仓库已从 Unclecheng-li 重定向到 Netw0rkNoob/VulnClaw。
1. 先写授权清单
把允许测试的域名、IP、端口、时间窗、账号、请求速率和禁止动作写入任务记录。目标跳转到新域名、CDN 地址或第三方服务时立即停止。模型不会自动理解合同范围,提示文本也不能替代授权。
2. 在虚拟环境固定版本
python -m venv .venv source .venv/bin/activate pip install 'vulnclaw==0.4.0' vulnclaw doctor
doctor 会显示 Python、Node、npx、nmap、模型配置和 MCP 状态。只用内置 fetch 与 memory 时,可暂不配置 chrome-devtools 和 Burp。模型账号应单独建立低额度凭据,避免把企业通用 key 写入实验环境。
3. 保留 ask 审批
默认 safety.permission_mode=ask,每次危险执行都等待 y/N,300 秒无人回应就拒绝。auto_review 只让只读白名单免确认;full_access 会跳过确认。首次运行不要切到 full_access,也不要扩大 trusted_commands。
在配置里关闭不需要的 python_execute,限制轮数和单目标插件请求预算。然后只对自有本地靶场执行只读信息收集:
vulnclaw recon http://your-authorized-lab.local
执行前再次核对命令中的主机。每次工具请求返回后,看目标地址、状态码、请求数和 evidence 原文,确认没有越界。
4. 常见失败怎么排
doctor通过但模型失败:检查 Base URL、模型名、key、账户额度和代理网络。- MCP 显示已配置却无法运行:确认对应 Node/npx 或外部进程还在,并查看标准错误。
- Docker 扫不到宿主靶场:容器内 localhost 指向容器自身,按DOCKER.md使用 host.docker.internal 或共享容器网络。
- 模型反复读取旧证据:用 evidence_search 和 evidence_view 指定范围,保留 stall guard,不盲目增加轮数。
5. 与 PentestGPT 对比
PentestGPT更偏人工参与的任务分解和工具输入输出;VulnClaw 加入 MCP、插件、证据索引、TUI/Web UI 与命令审批。需要逐步人工控制时先看 PentestGPT,需要集中保存工具证据时再评估 VulnClaw。两者都不能替代授权和人工复现。
这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
适合谁用
适合在书面授权范围内做实验室资产枚举、CTF、源码安全扫描、工具证据整理和报告复盘。它不应承担生产访问控制,也不适合对未知公网目标、第三方资产或超出授权范围的地址自动运行。
采用建议
页面把书面授权、ask 审批、外部模型数据、Docker 地址和 docs-only 边界放在功能介绍之前。
原教程未展开的系统信息
核心功能
MCP 与插件
fetch 和 memory 可直接使用;chrome-devtools 与 burp 需要外部服务。插件可分析已有数据,50 个安全 skill 以按需参考资料形式加载。
多种入口和报告
提供 REPL、TUI、Web UI、本地源码扫描、recon、scan、solve 与 report 命令,并可从会话证据确定性生成 Markdown 复盘报告。
架构与数据流
Typer CLI、REPL、TUI 和 127.0.0.1:7788 Web UI 进入 AgentCore。solver 维护 AgentState 和真实证据,reasoning_state/reflexion 记录事实与失败,MCP registry 管理 fetch、memory 及外部浏览器或 Burp 服务,plugins 运行只读检测,report 模块从会话与证据生成报告。LLM 请求发往用户配置的 OpenAI、Anthropic、MiniMax、DeepSeek 等服务或本地 Ollama。
技术栈和运行条件
语言
Python >=3.10
框架
Typer、Rich、prompt_toolkit、Textual、Pydantic
关键依赖
- OpenAI 兼容客户端与模型凭据
- httpx
- 可选 Node.js/npx 与 uvx MCP 运行时
- 可选 nmap
- 可选 chrome-devtools/Burp MCP
运行环境
PyPI、本地源码或 Docker;Docker Web UI 默认绑定 127.0.0.1:7788,配置、会话、目标和报告持久化到 /data
常见问题
VulnClaw 可以扫描任意公网网站吗?
不可以。官方只允许已授权安全测试、CTF 和可控实验环境。开始前应取得目标所有者的书面授权,固定域名、IP、时间窗和禁止动作,范围外地址一律停止。
VulnClaw 的 ask、auto_review 和 full_access 有什么区别?
ask 是默认模式,每个危险动作都要确认;auto_review 只让只读白名单免确认;full_access 会直接执行全部动作。首次使用和共享环境应保留 ask,并让 300 秒超时自动拒绝。
VulnClaw doctor 通过后为什么仍无法调用工具?
doctor 只检查 Python、Node、npx、nmap、模型和 MCP 的可见状态。还要核对模型 Base URL、key、网络、外部 MCP 进程和容器地址;Docker 内的 localhost 指向容器自身。
VulnClaw 的证据闸门能保证没有误报吗?
不能。它要求关键结论能引用真实工具输出,可减少凭空生成的结论,但工具结果、目标状态和模型解释仍可能错误。报告中的每个发现都要人工复现并确认影响。
VulnClaw 和 PentestGPT 怎样选?
PentestGPT 更偏人工参与的任务分解和工具交互;VulnClaw 增加 MCP、插件、证据存储、TUI/Web UI 和审批模式。无论选哪个,都只在明确授权的隔离环境使用。