跳转至

Autonomous Vulnerability Hunting with MCP

Ch07.038 Autonomous Vulnerability Hunting with MCP

📊 Level ⭐⭐ | 8.5KB | entities/autonomous-vulnerability-hunting-with-mcp.md

-> 原文存档

Summary

Score: 8×9=72

深度分析

MCP架构:从工具调用到自动化工作流

这篇来自安全研究员 Andy (ZephrFish) 的实践分享,揭示了如何利用 MCP (Model Context Protocol) 将整个漏洞挖掘流程自动化。核心架构由8个MCP服务器组成,横跨5台虚拟机,承载300+工具,覆盖从二进制分析到漏洞利用的完整攻击链 。 Lab Controller 负责SSH/WinRM会话管理和Proxmox虚拟机编排;Hunter 提供补丁比对、攻击面枚举、10个模糊测试域、崩溃分类和活动管理;RE Tools 集成Ghidra、radare2、Frida等逆向工程工具链;Exploit Dev 处理shellcode生成、堆喷射、CFG绕过、PoC组装和仿真;Debugger 维护跨工具调用的持久化WinDbg/GDB会话;RAG 对所有活动数据和历史研究进行语义搜索;Infra 按需扩展模糊测试虚拟机;Reporting 自动生成漏洞披露报告、CVE请求和赏金提交 。 这种架构的关键设计决策是"薄包装、厚逻辑":MCP服务器文件仅是 @mcp.tool() 装饰器,真正的业务逻辑在 hunter/re_tools/exploit_tools/debug_tools/ 等子目录中独立维护。这意味着业务逻辑可以独立于MCP管道进行测试和迭代 。

Hallucination Bin:对抗LLM幻觉的核心机制

文章最关键的设计洞见是"发现物从幻觉开始"原则。所有新发现首先进入 hallucinations/ 目录,只有通过四个验证门禁才会升级到 findings/Gate 0: PoC存在且可编译 Gate 1: PoC在干净VM快照中可复现崩溃 Gate 2: 崩溃可利用(非空指针解引用或优雅退出) Gate 3: 漏洞可由标准用户触发(非SYSTEM或管理员) 这一机制直接源于LLM会产生"自信但错误"的分析结论这一基本事实。在一次早期测试中,自主引擎标记了6个"看起来很有希望"的发现,但经人工审查和动态分析验证,这6个全部被证伪。Hallucination Bin在它们进入任何报告之前全部捕获 。

知识环路:持续学习的飞轮效应

每次模糊测试启动前,系统会查询RAG索引了解历史发现。这一知识环路包含五个步骤:Hunt(查询知识库)→ Collect(记录崩溃)→ Enrich(补充上下文)→ Learn(FAISS向量化)→ Repeat(重复) 。 系统还维护一个已知防御数据库。当目标启用AM-PPL(反恶意软件受保护进程光)、SxS保护、严格Authenticode验证等防御机制时,这些信息会乘数降低目标在未来活动中的优先级,防止系统在同一死胡同上浪费周期。经过若干次活动碰到AM-PPL壁垒后,系统完全停止推荐这些目标 。

赏金情报:ROI驱动的目标选择

除了RAG,还有一套追踪100+赏金项目的MCP,根据漏洞类别(RCE、LPE、认证绕过、类型混淆、UAF、堆溢出)进行ROI评分。系统计算保守派发估算/预估狩猎工时,考虑二进制补丁历史、漏洞类别和严重程度层级、项目支付范围和历史接受率、以及目标上已知的防御机制 。 竞争调整是最终乘数。低竞争项目保持90%预期价值;高竞争项目(如主要OS供应商)降至40%;极高竞争项目降至20%。这防止系统执着于最大头条赏金——在那里成为第一报告者的几率很小 。

实战成果:从CVEs到0day

Go标准库多个CVE:针对 golang.org/x/image 包的模糊测试活动在两周内产生两个CVE,均为处理不受信任输入时的OOM漏洞 。

  • CVE-2026-33809 (x/image/tiff): 8字节构造TIFF文件导致约4GB内存分配
  • CVE-2026-33812 (x/image/font/sfnt): 字体文件中GPOS PairPos表的numClass1×numClass2可达~8GiB OEM服务0day:从标准用户到SYSTEM代码执行的完整四阶段链:命名管道认证绕过 → WCF SSRF → 目录注入 → 签名验证绕过(通过有漏洞的WHQL签名驱动) 。 macOS应用分发平台两个发现:浏览器历史窃取(LSQuarantineEvent查询无过滤)+ 调试RSA密钥用于更新框架签名验证绕过 。

成本计算:系统是否值得?

作者构建了 TokenBurn 工具追踪整个系统的代币使用情况。关键数据:前几个活动在每个意义上都很昂贵——构建工具链、学习什么不起作用、用自信的废话填充幻觉箱。最近的活动的得益于所有累积上下文:RAG索引知道哪些二进制文件已加固;赏金情报知道哪些项目值得时间;语法生成器知道哪些文件格式字段有趣 。 成本效益比的趋势比任何单一数字更重要。系统运行第二十个活动时,每个发现的操作成本比运行第一个活动时显著降低,即使订阅成本相同 。

实践启示

架构设计层面

  1. 从第一天开始构建幻觉箱:任何自主漏洞挖掘系统的第一个功能组件应该是对所有发现持怀疑态度的机制。信任LLM输出是新手错误 。
  2. 始终从低权限上下文验证:多个早期发现从SYSTEM上下文看可利用,但从标准用户看无法到达。Gate 3应该在第一天就实现,而不是后来添加 。
  3. 记录负面结果:当目标加固(AM-PPL、SxS保护、严格签名验证)时,记录该防御机制。这会乘数惩罚未来活动中的加固目标,防止重复死胡同 。
  4. 薄MCP包装、厚业务逻辑:将真正的业务逻辑维护在独立于MCP装饰器的模块中,实现独立测试和迭代 。

运营层面

  1. 统一模糊测试接口:每个域使用相同的工具模式(setup/start/status/crashes/stop),自主引擎不需要特定领域的调度逻辑,只需选择正确的域并调用相同的工具序列 。
  2. 共享会话持久化:连接一次,跨所有工具调用保持会话。当链式调用超过10步时,在每步重新连接会消耗大量令牌并丢失上下文完整性 。
  3. 知识环路需要时间积累:前几个活动是最昂贵的,但每个失败的活动仍有助于知识库。系统运行第二十个活动时,对什么值得模糊以及如何处理的推荐明显更好 。

安全研究方法论

  1. ROI驱动目标选择:系统自然倾向于被忽视的软件与可观赏金之间的甜蜜点。第三方系统实用程序、OEM管理代理、企业中间件、装在数百万台机器上但没有吸引与Chrome或Windows内核相同研究员关注的软件 。
  2. 动态验证优于静态分析:macOS平台发现——静态分析找到初始线索,Frida动态分析确认实际查询行为。Frida跟进是将两个发现从"需要更多信息"转为已分类的关键 。
  3. 补丁差异分析:两个Windows 11 VM(最新和N-1补丁版本)专门用于二进制差异分析——枚举Patch Tuesday之间的变化、差异二进制文件、识别安全相关修复以针对特定活动 。

相关实体

原文存档