12 轮对话轻取 flag,我把渗透测试做成了一个能跟你聊天的开源工具

12 轮对话轻取 flag,我把渗透测试做成了一个能跟你聊天的开源工具
12 轮对话轻取 flag我把渗透测试做成了一个能跟你聊天的开源工具说人话打漏洞 · AI 驱动 · 证据级反幻觉 · MIT 开源开源仓库地址https://github.com/Unclecheng-li/VulnClawVulnClaw TUI模式界面VulnClaw CLI模式界面上个月我拿 VulnClaw 做了一个实战测试。目标是某授权靶场的一台 Web 服务器。我没写任何扫描策略没配任何规则就在终端里敲了一行vulnclaw solve 192.168.x.x然后把控制权交了出去。12 轮对话之后flag 拿到了。不是因为我写的提示词有多好。恰恰相反我几乎什么都没做。VulnClaw 自己完成了端口扫描、Web 指纹识别、Tomcat Manager 弱口令探测、CVE 认证绕过利用、Shell 上传、权限维持最后生成了一份结构化的渗透报告附 PoC 脚本。整个过程它没有编造过任何一条不存在的漏洞。VulnClaw 端到端自动化渗透流程定位引擎反幻觉技能库模型安装AI 渗透测试 CLI目标驱动 OODA证据级硬闸门23 Skill 180 文档14 Providerpip install vulnclaw渗透测试这件事到底哪里出了问题做了这么多年渗透有个感受越来越强烈真正花在渗透上的时间太少了。信息收集Nmap 扫一遍dirsearch 跑一遍subfinder 枚举一波FOFA/Shodan 各查一轮。每个工具都有自己的输出格式自己的 false positive 倾向自己的参数习惯。光是把这些零散信息拼成一张完整的攻击面图就能耗掉半天。漏洞验证手工测试当然最可靠但效率放在那。自动化扫描器倒是快问题在于误报率十个「高危」告警里可能只有一两个是真的。而每个告警你都得手工验证一遍因为你不能赌。报告环节等漏洞确认完了回头去翻聊天记录、工具日志、截图重新组织成一份像样的渗透报告。这件事的枯燥程度做过的人都知道。说到底现在已经不是不是缺工具的问题了。而是工具太多了多到流程本身成了瓶颈。AI 来了幻觉也来了2024 年开始各种「AI 渗透测试工具」冒了出来。比如Hexstrike AI之流对吧。思路其实很好理解让LLM来决策调用工具执行自动化整个渗透流程。但很快就发现了问题。LLM天然会编造。它跟你说发现了一个SQL注入点payload看起来有理有据表名、字段名、注入类型都给你列好了。你去验证什么都没有。在写代码的场景里幻觉可能只是一段跑不通的脚本修一下就好了。在安全场景里一个不存在的漏洞是什么后果你基于虚假信息做了决策你给客户出了一份含假漏洞的报告你可能错过了真正该修的洞因为注意力被引到了不存在的问题上。这件事我跟很多同行聊过。大家的共识差不多AI 渗透工具可以用但前提是你能区分它说的是真话还是编的。而大多数工具把这件事交给了提示词在system prompt里加一句「请确保所有发现都基于真实工具输出不要编造漏洞」。这跟让一个习惯性撒谎的人「这次请说真话」没什么区别。VulnClaw 的做法闸门不是建议VulnClaw的反幻觉机制不靠提示词。它维护了一个叫「证据存储」的东西。Agent在执行过程中产生的所有真实工具输出nmap的扫描结果、HTTP响应报文、目录爆破的返回码全部被录制下来作为唯一可信的证据源。当Agent声称「发现了某个漏洞」或者「拿到了 flag」时系统不会直接相信它。系统会去证据存储里逐字符搜索这个flag或者漏洞特征。找到了才判定为有效结论。找不到就判定为幻觉丢弃当前推理路径回溯到上一个有效状态重新探索。你拿到的每一条结论背后都有原始工具输出可查。你可以把VulnClaw的执行日志直接贴在渗透报告附录里作为真实性证明。反幻觉验证闸门工作流程这件事我认为是 AI 渗透工具能不能进入生产环境的分水岭。「尽量说真话」谁都会写进提示词「说假话根本通不过」才是硬机制。目标驱动求解跑 N 轮交差不存在另一个让我觉得挺有意思的设计是求解引擎。大部分 AI Agent 框架的工作方式是设定一个最大轮数比如跑 50 轮就停然后告诉你「任务完成了」。至于目标到底达没达成它不管。VulnClaw 不一样。它把自己建模成了状态空间搜索问题。核心是一个叫 Fact/Intent 的黑板图。Fact 是被工具输出证实了的客观事实比如「端口 8080 开放 Apache Tomcat/9.0.0」。Intent 是声明要探索的方向比如「测试 Tomcat Manager 弱口令」。每个 Intent 有三个状态OPEN 是待探索EXPLORING 是执行中CONCLUDED 表示已完成ABANDONED 则是已放弃。Intent 生命周期状态机声明探索方向开始执行工具输出证实探索无果 / 路径阻塞产出新 Fact释放资源OPENEXPLORINGCONCLUDEDABANDONED整个循环走的是 OODA先读全图Observe判断下一步该探索什么Orient执行对应的 IntentDecide拿到真实工具输出形成新 FactAct。新的 Fact 会触发新的 Intent如此循环直到目标达成或者前沿穷尽。OODA 目标驱动求解循环目标达成 或 前沿穷尽持续循环直到收敛新 Fact 产生新 IntentReason 推理读取全图黑板Orient 定位判断下一步探索方向Decide 决策执行对应 IntentAct 行动工具输出 → 新 Fact收敛终止这里有两个好处。第一它不会原地打转黑板图天然排除了已探索过的方向。第二它有明确的终止条件轮数到了没用目标真的达成了才算。对于按 API 调用次数付费的用户来说也就是说不会把钱烧在无效循环上。23 个 Skill实打实的知识库很多 AI Agent 框架给你的是一个壳。框架本身能做推理、能调工具但具体到某个领域该怎么推理、用什么工具、走什么流程全靠你自己填提示词。VulnClaw 不一样。它内置了 23 个渗透测试 Skill每个 Skill 都是一个完整的知识模块。核心 Skill 覆盖了渗透测试的全生命周期pentest-flow全流程编排recon信息收集vuln-discovery漏洞发现exploitation漏洞利用post-exploitation后渗透reporting自动生成报告waf-bypassWAF 绕过专项 Skill 按场景和题型细分web-pentest / android-pentest / intranet-pentest-advanced不同攻击面ctf-web / ctf-crypto / ctf-miscCTF 题型专项osint-recon四维情报收集cve-triage漏洞分诊secknowledge-skill通用安全知识检索每个 Skill 下面还有详细的参考文档总共 180 多篇。这些文档不是装饰品Agent 在执行任务时可以按需加载作为决策的知识支撑。比如遇到一个 Java 反序列化场景Agent 会主动调取相关的参考文档了解常见的利用链和绕过技巧。对我来说这解决了最头疼的问题每次给 AI Agent 布置渗透任务我不需要从头写几百字的提示词告诉它渗透测试该怎么一步步来。Skill 已经把这些写好了。MCP 工具链工具都接上了VulnClaw 的工具链不是写死在代码里的。它基于MCPModel Context Protocol来编排。开箱即用的有两个本地服务fetch负责 HTTP 请求memory负责上下文记忆。这两个不需要额外部署装好就能用。需要浏览器自动化的场景可以对接Chrome DevTools MCP31 个以上的浏览器操作工具能处理登录态、执行前端交互、截取页面快照。需要流量分析或者抓包重放的场景可以对接 Burp MCP。还内置了 5 个 Agent 工具python_execute在沙箱里执行代码nmap_scan跑端口扫描crypto_decode做编解码brute_force_login做暴力破解load_skill_reference加载参考文档。MCP 工具链与信息收集架构Skill 编排信息收集套件js_reconJS分析unauth_test未授权探测dir_enum目录爆破space_search6引擎查询subdomain_enum子域名枚举内置工具python_executenmap_scancrypto_decode29种编解码brute_force_loginload_skill_referenceMCP 协议层本地服务fetch · memory外部对接Chrome DevTools · BurpVulnClaw Agent推理决策核心原生流量证据存储JSONL索引 原始报文traffic_list · view · repeat · sitemap信息收集这块做得很全。js_recon能自动抓取目标网站的 JS 文件提取 API 路径、密钥、域名信息甚至推断CRUD接口。unauth_test 批量发送无凭据请求做差分对比。dir_enum做并发字典爆破带 404 基线和伪装 200 识别。space_search统一接入了FOFA、Hunter、Quake、Shodan、ZoomEye、0.zone六个空间搜索引擎。subdomain_enum用空间测绘加字典 DNS 爆破自动去重。还有一个我觉得很实用的设计原生流量证据存储。所有 HTTP 请求和响应以追加式 JSONL 索引加原始报文落盘提供了traffic_list、traffic_view、traffic_repeat、traffic_sitemap四个内部工具。你可以随时回溯 Agent 在渗透过程中到底发了什么请求、收到了什么响应直接可以复现的原始数据而不是第三方抓包工具的截图。四种模式总有一种适合你VulnClaw 给了四种交互方式CLI/REPLvulnclaw进入对话界面交互式输入指令和参数适合命令行党TUI 工作台vulnclaw tui启动终端图形界面含授权确认页和范围设置页适合演示和合规确认Web UIvulnclaw web启动浏览器界面SSE 实时任务流推送7 个视图覆盖扫描、风险、报告、范围、历史、设置、任务控制台Dockerdocker compose up一键部署数据持久化到 /data 卷不管是哪种模式底层跑的都是同一套引擎。14 个 LLM Provider不绑死任何一家AI 渗透工具的 LLM 选型本身是个安全考量。你用哪家模型目标数据就往哪家 API 发。对很多甲方安全团队来说也就是说得走本地部署或者私有化。VulnClaw 支持 14 个以上的 LLM Provider海外OpenAI、Anthropic Claude国内大厂DeepSeek、智谱 GLM、通义千问、豆包、百川、MiniMax国产平台Moonshot、SiliconFlow、阶跃星辰、商汤、零一万物自定义兼容 OpenAI 协议的任意端点Provider 之间一键切换改一个配置项就行。所以你可以把推理放在内网的 DeepSeek 私有部署上也可以挂在硅基流动这种国产平台上不需要把目标信息送出可控范围。谁在用怎么用从社区反馈来看目前的用户主要分三类。第一类是 CTF 选手。ctf-web、ctf-crypto、ctf-misc三个专项 Skill 直击刚需。你卡壳的时候扔一个场景描述进去它从不同角度给探索方向不用从零开始解题。有些选手把它当「解题搭子」效果意外地好。第二类是安全团队和红队。持续渗透模式100 轮一个周期最多 10 个周期跨周期状态保持特别适合长期授权的安全评估场景。每个周期自动出报告你只需要在关键节点做人工决策。第三类是安全新人。VulnClaw 的每一步操作都有Reasoning输出你能看到它在想什么、为什么做这个决策。跟着它的流程走一遍比自己翻教程直观得多。不少人在群里说把它当学习工具用效果比预期好。技术底子说说技术栈可能有一部分读者关心这个。后端Python 3.10Typer 做 CLIRich 做终端美化FastAPI 做 Web APIPydantic v2 做数据校验httpx 做 HTTP 客户端TUI 用了 Textual交互体验比 curses 方案好不少代码规范 ruff构建 hatchling前端React 18 TypeScript Vite 5TanStack React Query 5 做数据获取和缓存实时通信走 SSE构建产物直接嵌在 Python 包里不用额外配 Node 环境工程188 个以上测试用例CI 跑 GitHub ActionsDocker 多阶段构建Node 20 编译前端 Python 3.12 运行后端PyPI 已发布 v0.4.1 AlphaWeekly downloads 稳定增长一起搞VulnClaw 目前是 MIT 协议开源完全免费。三步安装上车跌丝袜# 1. 安装pipinstallvulnclaw# 2. 配置vulnclaw configsetllm.api_key sk-your-key-here vulnclaw configsetllm.provider deepseek# 3. 开搞vulnclaw solve target.example.comGitHub 上搜VulnClaw就能找到全部代码和文档。有问题提 Issue有想法提 PR我都看。说人话打漏洞。来试试。链接地址GitHubhttps://github.com/Unclecheng-li/VulnClawPyPIhttps://pypi.org/project/vulnclaw/官网https://unclecheng-li.github.io/vulnclaw.com/