输入自然语言,AI 自动执行渗透测试全流程:
用户输入:帮我对 http://target.example.com 进行渗透测试
VulnClaw 自动执行:
Round 1: 信息收集 → 指纹识别、端口扫描、目录枚举
Round 2: 漏洞发现 → 检测注入点、已知 CVE、配置缺陷
Round 3: 漏洞利用 → PoC 验证、权限获取
Round 4: 报告生成 → 结构化报告 + Python PoC 脚本
适用于已授权的渗透测试、CTF 竞赛、安全教学、红队演练等场景。
AgentState.evidence,raw 原文完整保留;active context 默认只注入高信号预览,evidence_search / evidence_view 用于按需回查原始证据fetch / memory 本地实现开箱即用,chrome-devtools / burp 对接外部 MCP 服务实现浏览器自动化和 HTTP 抓包重放evidence/traffic/,内置 traffic_list / traffic_view / traffic_repeat / traffic_sitemap 工具直接读写vulnclaw plugins)load_skill_reference 按需读取,不再作为强制剧本注入上下文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 信号shell_command,用于 php -r 反序列化验证、curl 精确请求、rg/Select-String 文件检索等 Codex-style 本地调试场景;raw stdout/stderr 完整写入 evidence,大输出进入模型时使用高信号预览runtime_diff_probe,用于正则/字符串过滤器与运行时解析器不一致的场景,帮助模型批量生成并验证“过滤器漏过、解析器接受”的候选;PHP 序列化模式会提示目标/本地运行时版本差异,并把 PHP5 signed length 候选标记为必须远程验证,避免被本地新版 PHP 误杀python_execute 工具,适合 payload 构造和响应解析;当前仍属高风险实验能力,不应视为强隔离沙箱http_probe_batch,用于一次比较多组 URL/参数/header/body/raw URL 变体,默认返回每个响应的完整 body,并在模型可见输出中展示实际请求面(method、URL、params、headers、cookies、body/json),减少重复 LLM 轮次和手写请求代码NO_PATH 闸门:当源码 sink、表单/参数、请求面、本地 proof 或响应差异等高信号尚未耗尽时,不接受模型因单次 payload 无回显/远端 same-body 就提前判死think on/off 一键切换 LLM 思考过程的显示/隐藏vulnclaw web 启动本地 Web 界面,默认 127.0.0.1:7788# 从 PyPI 安装(推荐)
pip install vulnclaw
# 从源码安装
git clone https://github.com/Netw0rkNoob/VulnClaw.git
cd VulnClaw
pip install -e .
镜像已内置 Web UI 以及默认 MCP 服务所需的运行时(npx / uvx),所有状态持久化到 /data 数据卷。
cp .env.example .env # 填入 VULNCLAW_LLM_API_KEY 等
docker compose up --build # 构建镜像并启动 Web UI
# 打开 http://127.0.0.1:7788
也可用纯 docker 运行某条 CLI 命令:
docker run --rm -it \
-e VULNCLAW_LLM_API_KEY=sk-your-key-here \
-v vulnclaw-data:/data \
vulnclaw:latest scan <target>
⚠️ 容器内的
localhost指向容器自身。扫描宿主机服务请使用host.docker.internal,扫描其它容器请共享网络并用容器名访问。详见 DOCKER.md。
# 1. 选择提供商(自动填充 Base URL 和模型名)
vulnclaw config provider minimax (或 openai/anthropic/deepseek/zhipu/moonshot/qwen/siliconflow/ollama)
# 1.2(可选)自定义 Base URL 或模型名
vulnclaw config set llm.base_url https://your-own-api.example.com/v1
vulnclaw config set llm.model your-model-name
# 2. 设置 API Key
vulnclaw config set llm.api_key sk-your-key-here
# — 或改用 ChatGPT 订阅登录(无需 API Key):
# vulnclaw login (浏览器登录;注意 ToS 风险)
# 3. 默认:打开原 CLI / REPL
vulnclaw
# 4. 可选:打开 TUI 工作台
vulnclaw tui
vulnclaw doctor
输出示例:
🦞 VulnClaw 环境检查
Python: 3.14.4
Node.js: v24.14.1
npx: 已安装
nmap: 已安装
LLM 配置:
Provider: openai
Auth Mode: static
Credentials: configured
Base URL: https://api.openai.com/v1
Model: gpt-4o
MCP 服务:
fetch: 已启用 [P0]
memory: 已启用 [P0]
...
✅ 环境就绪,运行 vulnclaw 开始
$ vulnclaw --help
🦞 VulnClaw — AI-powered penetration testing CLI
Usage: vulnclaw [OPTIONS] COMMAND [ARGS]...
Commands:
run 🚀 一键全流程渗透测试(默认使用 solve 引擎)
solve 🧩 目标驱动求解(模型主导,无固定轮数)
persistent 🔄 持续性渗透测试(100轮/周期)
recon 🔍 仅信息收集阶段
scan 🔎 执行漏洞扫描阶段
exploit 💥 执行漏洞利用阶段
report 📝 从会话记录生成报告
repl 💬 启动经典 REPL 交互界面
config ⚙️ 管理配置(set/get/list/provider)
plugins 🧩 管理漏洞检测插件(list/info/run)
init 🔧 初始化配置
doctor 🏥 检查运行环境
tui 🖥️ 打开终端图形化工作台
web 🌐 启动本地 Web UI
code 🧬 本地源码安全扫描(无需网络目标)
| 命令 | 说明 | 示例 |
|---|---|---|
vulnclaw |
默认打开原 CLI / REPL | vulnclaw |
vulnclaw tui |
终端图形化工作台 | vulnclaw tui --target target.com |
vulnclaw repl |
启动经典 REPL 交互界面 | vulnclaw repl |
vulnclaw solve <target> |
目标驱动求解(无固定轮数,拿到目标即停) | vulnclaw solve target.com --goal "拿到flag" |
vulnclaw run <target> |
一键全流程渗透(默认走 solve 引擎) | vulnclaw run 192.168.1.1 |
vulnclaw persistent <target> |
持续性渗透(100轮/周期) | vulnclaw persistent 192.168.1.1 |
vulnclaw recon <target> |
仅信息收集(不利用漏洞) | vulnclaw recon target.com |
vulnclaw scan <target> |
漏洞扫描阶段 | vulnclaw scan target.com --ports 80,443 |
vulnclaw exploit <target> |
漏洞利用阶段 | vulnclaw exploit target.com --cve CVE-2024-1234 |
vulnclaw report <session> |
从会话 JSON 生成报告 | vulnclaw report session_xxx.json |
vulnclaw config set <key> <value> |
设置配置项 | vulnclaw config set llm.api_key sk-xxx |
vulnclaw config provider <name> |
切换 LLM 提供商 | vulnclaw config provider minimax |
vulnclaw plugins list |
列出漏洞检测插件 | vulnclaw plugins list --stage discovery |
vulnclaw plugins info <id> |
查看插件元信息 | vulnclaw plugins info builtin.web.headers |
vulnclaw plugins run <id> |
运行插件(仅分析传入数据) | vulnclaw plugins run builtin.web.headers --input headers.json |
vulnclaw code scan <path> |
本地源码安全扫描(L1 正则 / L2 结构 / L3 LLM 可选) | vulnclaw code scan ./src --format sarif |
vulnclaw
无参数启动会进入 🦞 交互界面,用自然语言对话:
🦞 vulnclaw> 对 192.168.1.100 进行渗透测试,这是我授权的靶场
[*] 进入自主渗透模式,按 Ctrl+C 可随时中断
── Round 1 ──
[+] 目标: 192.168.1.100
[+] 开放端口: 22, 80, 443, 8080
[+] Web 指纹: Apache/2.4.62
── Round 2 ──
[+] 发现 /manager/html (Tomcat Manager)
[+] 命中 CVE-202X-XXXX: Apache Tomcat 认证绕过
── Round 3 ──
[+] 漏洞验证成功
🦞 192.168.1.100 | 报告> 生成渗透报告
[+] 报告已保存: ./reports/192.168.1.100_20260418.md
[+] PoC 脚本已保存: ./pocs/CVE-202X-XXXX.py
REPL 内置命令:
| 命令 | 说明 |
|---|---|
target <host> |
设置渗透测试目标 |
status |
查看当前状态 |
tools |
列出当前可用 MCP 工具 |
think on/off |
切换推理过程显示 |
mode [模式] |
查看或切换执行审批模式(ask / auto_review / full_access) |
persistent |
启动持续性渗透测试 |
clear |
清空当前会话 |
help |
显示帮助信息 |
exit / quit / q |
退出 |
自动渗透触发: 输入包含「渗透测试」「找 flag」「爆破」等关键词 + 目标地址时,自动进入多轮自主渗透循环。Ctrl+C 随时中断。
可选的终端图形化工作台,展示授权目标、检查模式、运行概览、安全边界,让用户先确认范围再启动任务。
vulnclaw tui
vulnclaw tui --target https://target.example --mode quick --only-port 443
vulnclaw tui --dry-run --target https://target.example --mode deep --only-path /admin
Rust TUI 工作台支持可配置容器布局:左侧默认显示状态,右侧同时显示发现与子代理;中间显示代理输出,底部为输入框。子代理视图目前显示无数据提示。
v / > 折叠或展开。Ctrl+←/→ 切换视图,Ctrl+Y 复制当前视图。VULNCLAW_HOME/tui/layout.json(默认 ~/.vulnclaw/tui/layout.json),下次启动恢复。底栏随命令面板自动增高;终端过小时提示所需尺寸,放大后恢复布局。鼠标捕获开启时,终端原生文字选择取决于终端提供的修饰键;复制单个视图可使用 Ctrl+Y。Windows 终端下 Ctrl+V / Shift+Insert / 鼠标右键直接读取系统剪贴板粘贴到输入框(Win32 API 直读,微秒级;该平台无 bracketed paste,不依赖终端是否合成击键);Unix 终端粘贴走 bracketed paste。
常用菜单:
- 菜单 3 — 设置测试范围(主机/端口/路径/允许动作/禁止动作)
- 菜单 7 — 环境诊断入口(完整详情运行 vulnclaw doctor)
- 菜单 8 — 模型/API 配置(切换 Provider、Base URL、Model、API Key)
vulnclaw run 192.168.1.100 # 一键全流程
vulnclaw recon 192.168.1.100 # 仅信息收集
vulnclaw scan 192.168.1.100 --ports 80,443 # 漏洞扫描
vulnclaw exploit 192.168.1.100 --cve CVE-2024-1234 --cmd id # 漏洞利用
vulnclaw report session.json # 生成报告
适用于需要长时间深度渗透的场景,以周期循环方式运行:
``` ┌──────────────────────────────────────────────┐
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|