基于 AI Agent + MCP 工具链 + 渗透 Skill 编排, 配合大语言模型, 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
# Add to your Claude Code skills
git clone https://github.com/Unclecheng-li/VulnClawNo comments yet. Be the first to share your thoughts!
AI 驱动的渗透测试 CLI 工具 — 说人话,打漏洞。
🌐 English version: README_EN.md
本项目是可独立运行的 AI 渗透测试 Agent。
基于 LLM Agent + MCP 工具链 + 渗透 Skill 编排, 配合 OpenAI / MiniMax / DeepSeek 等兼容模型, 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。
输入自然语言,AI 自动执行渗透测试全流程:
用户输入:帮我对 http://target.example.com 进行渗透测试
VulnClaw 自动执行:
Round 1: 信息收集 → 指纹识别、端口扫描、目录枚举
Round 2: 漏洞发现 → 检测注入点、已知 CVE、配置缺陷
Round 3: 漏洞利用 → PoC 验证、权限获取
Round 4: 报告生成 → 结构化报告 + Python PoC 脚本
适用于已授权的渗透测试、CTF 竞赛、安全教学、红队演练等场景。
fetch / memory 以稳定的 local 模式运行,其余 MCP 集成多仍处于预览或占位阶段,待完整 session 生命周期管理落地后再逐步恢复真实协议接入python_execute 工具,适合 payload 构造和响应解析;当前仍属高风险实验能力,不应视为强隔离沙箱think on/off 一键切换 LLM 思考过程的显示/隐藏,默认关闭,干净输出只看结论vulnclaw web 启动本地 Web 界面,浏览器操作渗透测试全流程,默认 127.0.0.1:7788# 从 PyPI 安装(推荐)
pip install vulnclaw
# 从源码安装
git clone https://github.com/Unclecheng-li/VulnClaw.git
cd VulnClaw
pip install -e .
# 1. 选择提供商(自动填充 Base URL 和模型名)
vulnclaw config provider minimax (或 openai/deepseek/zhipu/moonshot/qwen/siliconflow)
# 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
# 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
API Key: 已设置
Base URL: https://api.openai.com/v1
Model: gpt-4o
MCP 服务:
fetch: 已启用 [P0]
memory: 已启用 [P0]
...
✅ 环境就绪,运行 vulnclaw 开始
vulnclaw --help 查看所有命令:
$ vulnclaw --help
🦞 VulnClaw — AI-powered penetration testing CLI
Usage: vulnclaw [OPTIONS] COMMAND [ARGS]...
Options:
--version Show version and exit.
--help Show this message and exit.
Commands:
run 🚀 一键全流程渗透测试
persistent 🔄 持续性渗透测试(100轮/周期)
recon 🔍 仅信息收集阶段
scan 🔎 执行漏洞扫描阶段
exploit 💥 执行漏洞利用阶段
report 📝 从会话记录生成报告
repl 💬 启动经典 REPL 交互界面
config ⚙️ 管理配置(set/get/list/provider)
init 🔧 初始化配置
doctor 🏥 检查运行环境
tui 🖥️ 打开终端图形化工作台
web 🌐 启动本地 Web UI
| 命令 | 说明 | 示例 |
|------|------|------|
| vulnclaw | 默认打开原 CLI / REPL 交互界面 | vulnclaw |
| vulnclaw tui | 显式打开终端图形化工作台 | vulnclaw tui / vulnclaw tui --target target.com |
| vulnclaw repl | 启动经典 REPL 交互界面 | vulnclaw repl |
| vulnclaw run <target> | 一键全流程渗透测试 | 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 get <key> | 查看配置项 | vulnclaw config get llm.model |
| vulnclaw config list | 列出所有配置 | vulnclaw config list |
| vulnclaw config provider <name> | 切换 LLM 提供商 | vulnclaw config provider minimax |
| vulnclaw init | 初始化配置文件 | vulnclaw init |
| vulnclaw doctor | 检查运行环境 | vulnclaw doctor |
| vulnclaw web | 启动本地 Web UI | vulnclaw web / vulnclaw web --port 8080 |
vulnclaw tui 是可选的终端图形化工作台入口。它会在终端中展示授权目标、检查模式、运行概览、安全边界、命令预览、历史状态、报告和内联环境诊断,让用户先确认范围再启动任务。
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
默认 vulnclaw 仍然进入原 CLI / REPL 交互;只有显式输入 vulnclaw tui 才会进入 TUI。
运行概览会读取已选目标的历史快照、风险数量、持久化约束和约束拦截次数,帮助用户在继续测试前确认上下文没有衰减。
在 TUI 的“设置测试范围”中可以直接编辑允许动作和禁止动作,例如只允许 recon,scan,或禁止 exploit,post_exploitation。
# 查看所有提供商并切换
vulnclaw config provider --list # 查看所有可用提供商
vulnclaw config provider minimax # 切换到 MiniMax
# 手动设置(custom 模式)
vulnclaw config set llm.base_url https://your-api.com/v1
vulnclaw config set llm.model your-model-name
vulnclaw config set llm.api_key sk-your-key
$ vulnclaw
无参数启动会进入原本的 🦞 交互界面,用自然语言对话:
🦞 vulnclaw> 对 192.168.1.100 进行渗透测试,这是我授权的靶场
[*] 进入自主渗透模式,按 Ctrl+C 可随时中断
── Round 1 ──
[+] 目标: 192.168.1.100
[+] 开放端口: 22, 80, 443, 8080
$ vulnclaw tui
TUI 会先展示目标、检查模式、运行概览和安全边界,让你确认授权范围后再启动任务:
VulnClaw TUI 工作台
授权目标 https://example.com
检查模式 快速摸底 / recon
运行概览 历史快照、风险数量、持久化约束、约束拦截
安全边界 仅测试端口 443,禁止 exploit/persistent/post_exploitation
1 设置授权目标
2 选择检查模式
3 设置测试范围
4 开始授权安全检查
8 模型/API 配置
常用启动方式:
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
菜单 3 “设置测试范围”可编辑主机、端口、路径、排除项、允许动作和禁止动作;这些边界会进入启动前确认和实际任务命令。
菜单 7 “环境诊断入口”会在 TUI 内显示 Python、Node/npx/uvx/nmap、LLM 配置和 MCP 服务/工具摘要;需要完整详情时再运行 vulnclaw doctor。
菜单 8 “模型/API 配置”可直接切换 Provider、Base URL、Model 和 API Key,保存后工作台会立刻使用新配置。
$ vulnclaw repl
进入经典 🦞 交互界面,用自然语言对话:
🦞 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
| 命令 | 说明 |
| --------------------- | ------------------------------------------ |
| target <host> | 设置渗透测试目标 |
| status | 查看当前状态(目标、阶段、工具、推理显示) |
| tools | 列出当前可用 MCP 工具 |
| think | 切换推理过程显示/隐藏 |
| think on / off | 精确控制推理过程显示 |
| persistent | 启动持续性渗透测试(100轮/周期,自动报告) |
| persistent <host> | 对指定目标启动持续性渗透 |
| clear | 清空当前会话 |
| help | 显示帮助信息 |
| exit / quit / q | 退出 VulnClaw |
VulnClaw 检测到以下关键词 + 目标时,自动进入多轮自主渗透循环:
| 触发方式 | 示例 |
| -------- | ---- |
| 渗透指令 | 对 http://target.com 进行渗透测试 |
| CTF / 找 flag | 帮我对 http://ctf.site 找出flag |
| 爆破 / 绕过 | 对 http://target.com 弱口令爆破 |
| 显式触发 | 目标:http://target.com,进入自主渗透模式 |
💡 在 REPL 中输入
Ctrl+C可随时中断自主循环。切换目标时自动重置会话上下文。
# 一键全流程渗透测试
vulnclaw run 192.168.1.100
# 持续性渗透测试(每周期100轮,最多10周期,自动生成报告)
vulnclaw persistent 192.168.1.100
# 自定义周期参数
vulnclaw persistent 192.168.1.100 --rounds 200 --cycles 5
# 仅信息收集
vulnclaw recon 192.168.1.100
# 漏洞扫描(可指定端口)
vulnclaw scan 192.168.1.100 --ports 80,443,8080
# 漏洞利用(可指定 CVE)
vulnclaw exploit 192.168.1.100 --cve CVE-2024-1234 --cmd id
# 生成报告
vulnclaw report session.json
适用于需要长时间深度渗透的场景。VulnClaw 以周期循环方式运行:
┌──────────────────────────────────────────────┐
│ Cycle 1 (100轮) → 自动报告 → 继续 │
│ Cycle 2 (100轮) → 自动报告 → 继续 │
│ Cycle 3 (100轮) → 自动报告 → 继续 │
│ ... │
│ 直到 Ctrl+C 或达到最大周期数(默认10) │
└──────────────────────────────────────────────┘
特点:
# CLI 方式
vulnclaw persistent 192.168.1.100 # 默认 100轮/周期 × 10周期
vulnclaw persistent 192.168.1.100 -r 200 -c 5 # 200轮/周期 × 5周期
vulnclaw persistent 192.168.1.100 --no-report # 不自动生成报告
# TUI 方式
vulnclaw tui --target 192.168.1.100 --mode continuous
# REPL 方式
🦞 vulnclaw> target 192.168.1.100
🦞 vulnclaw> persistent
# 或直接
🦞 vulnclaw> persistent 192.168.1.100
通过浏览器操作渗透测试全流程,适合偏好图形界面的用户。
# 安装 Web 依赖
pip install vulnclaw[web]
# 启动 Web UI(默认 127.0.0.1:7788)
vulnclaw web
# 自定义端口
vulnclaw web --por