我搭了一条 AI 渗透流水线:从域名到报告全自动

每个新目标都是同一套重复劳动:信息收集一小时、查情报开五六个网页、挨个验证、再写报告。我把这套流程全自动化了。

这不是"AI 全自动渗透"的标题党——是"AI 干活、人做判断"的工程实录。

前 7 篇的踩坑全沉淀成了 Skill(01/03 子域枚举 → 02 Actuator → 04 JS 凭据 → 05 OSS → 07 流媒体),这条流水线跑的就是这七篇的沉淀。

一、为什么搭这条流水线

做 SRC 挖洞的都知道,每个新目标都是同一套流程:

  • 信息收集:查子域名、查端口、查指纹——一小时起步
  • 漏洞情报:查到指纹后,去 NVD 查 CVE、去 GitHub 翻 PoC、看有没有现成利用——五六个网页来回切
  • 漏洞验证:按套路挨个试——Actuator、JS 凭据、云密钥、流媒体
  • 写报告:把过程整理成 SRC 报告格式——又是一小时

这四个环节,除了"验证"需要一点判断力,其余全是重复劳动。而重复劳动,正是 AI Agent 最该干的活。

所以我搭了这条流水线:域名丢进去,初筛报告出来,中间全自动,人只做判断题。

先划个边界,定全文基调:不是"AI 全自动渗透",是"AI 干活、人做判断"。后面你会看到为什么这个边界必须存在。

二、整体架构(先看总账)

域名 → ①资产收集 → ②漏洞情报 → ③漏洞验证 → ④初筛报告 → 人审
        fofa/tscan/argus   cve-mcp     pen+skill   pentest-assets+模板

先放总耗时对比(这是全文第一张命门表,数字是真实实测):

环节

人工

流水线

提升

资产收集

60 分钟

5 分钟

12x

漏洞情报

20 分钟

2 分钟

10x

漏洞验证

40 分钟

15 分钟

2.7x

初筛报告

30 分钟

3 分钟

10x

合计:25 分钟流水线 + 10 分钟人工复核 = 35 分钟,相对纯人工的 150 分钟是 4 倍以上提升。验证环节提升最小(2.7x),因为它需要真刀真枪发请求、看响应——这正好印证了边界:越需要判断力的环节,自动化收益越低。

三、阶段 1:资产收集怎么自动化

工具链:fofa-mcp 拉资产 → tscan 子域枚举/端口扫描 → argus 补 Google Dork。

给 Agent 下指令:

# 触发:hermes 里输入"收集 example.com 的资产"
# Agent 依次调:
fofa_search("domain=example.com")     # 资产测绘
tscan_domain_enum(domain)             # 子域枚举
tscan_port_scan(host)                 # 端口扫描
argus_search("site:example.com inurl:admin")   # Google Dork 找后台

这一步能跑通,全靠 01/03 篇沉淀的 Skill:prescreen 预筛(先判断域名值不值得跑)、dig +tcp 严格验证(防假阳性)、泛解析过滤(医院/云厂商域名跳过爆破)。Agent 不是从头发明流程,它翻 Skill 笔记照做。

本节耗时:人工 60min → 5min

四、阶段 2:漏洞情报实时查询

拿到指纹后,Agent 调 cve-mcp(41 个工具直连 NVD/EPSS/KEV/GitHub Advisory/OSV):

# 假设指纹出 Struts2,Agent 自动聚合:
cve_enrich("CVE-2024-xxxxx")    # 漏洞详情
epss_score("CVE-2024-xxxxx")    # 利用概率评分
nuclei_check("CVE-2024-xxxxx")  # 有没有现成检测模板
exploit_search(cve)             # 有没有公开 PoC
msf_check("CVE-2024-xxxxx")     # 有没有 Metasploit 模块

以前这套要开五六个网页来回翻,现在一条命令聚合完,Agent 还会按 EPSS 评分排序告诉你"这个洞被利用的概率 80%,优先打"。

本节耗时:人工 20min → 2min

五、阶段 3:漏洞验证 + Skill 指导(红线最硬的一节)

验证环节 Agent 用 pen/http_request 当 Repeater 用,验证顺序由 Skill 决定——按价值排序:Actuator(02)→ JS 凭据(04)→ 云密钥(05)→ 流媒体(07)。

这一节的 Agent 规则是全文红线,原话写死:

规则 1:Agent 不得自行判定漏洞成立,必须回传原始请求/响应包,由工程师确认。
规则 2:证据驱动——Agent 输出 = 候选 + 请求包 + 响应包,人只做"成立/不成立"的判断题。

为什么这么定?因为大模型会"自信地错"(第八节细讲)——它可能说"挖到洞了",但请求包是它编的,响应根本对不上。所以验证结果永远不能信 Agent 的结论,只能信它回传的原始请求/响应。

本节耗时:人工 40min → 15min(提升最小,因为要真发请求)

六、阶段 4:报告自动生成

验证完,Agent 把发现写进 pentest-assets(资产/漏洞/凭据/端点台账,干过的活不丢),然后按 SRC 报告模板出报告:

  • 复现步骤:人话(不用模板词)
  • 请求包:Burp 格式
  • 危害:客观陈述
  • 修复建议:具体可操作

数据量克制规则直接写进 Agent 规则(05 篇的经验):报告写"数十万级",不写百万条;手机号打码;TotalItems 留在响应里供审核复现。

本节耗时:人工 30min → 3min

七、实战效果:真实目标跑一遍

一个真实目标从域名到初筛报告的全过程(脱敏):

环节

实际耗时

产出物

① 资产收集

5 分钟

子域列表 + 指纹清单(含非标端口)

② 漏洞情报

2 分钟

CVE 聚合 + EPSS 优先级排序

③ 漏洞验证

15 分钟

2 个候选 + 完整请求/响应包

④ 初筛报告

3 分钟

报告初稿(SRC 报告格式)

实际跑下来,Agent 输出了一份带请求包/响应包的初筛报告,人工复核花了 10 分钟——确认 1 个成立、1 个不成立(Agent 报的第二个"漏洞"其实是它把状态码看错了)。

这 10 分钟复核,就是整条流水线的价值锚点:Agent 把 2.5 小时的活压到 25 分钟(流水线)+ 10 分钟(人工复核)= 35 分钟,但最后那 10 分钟人工判断,才是漏洞成立与否的全部。

八、踩坑与规则(AI Agent 系列延续)

坑 1:大模型"自信地错"

真实案例:Agent 报告"某接口存在未授权访问",附了请求包——但人工复核发现响应包里的状态码和端口对不上,请求包是它编的。

怎么治:第五节那两条规则 + 复核清单强制项(状态码/端口/响应体三对照)。Agent 的结论永远只当"候选",不当事实。

坑 2:MCP 指纹误报

tscan 报"Apache-Struts2"十有八九是 nginx 误报。规则写死:指纹必须手动验证 .do/.action 后缀,别让误报流进报告。

坑 3:上下文管理

每个目标独立 session。跨目标串话会混资产——上一个目标的子域出现在下一个目标的报告里,这种错误很难发现。

坑 4:风控铁律

扫描走 Kali VM、限速、Agent 永不碰未授权目标。自动化是把双刃剑——跑得快也封得快,风控规则和效率规则一样重要。

边界清单:值得 vs 不值得自动化

值得自动化

不值得/危险

信息收集、情报聚合、报告草稿

最终漏洞判断、构造利用请求、越权链设计

九、搭建清单(给想抄作业的人)

环境

Agent 框架:Hermes(开源)
MCP 工具:cve-mcp / tscan / pen / fofa-mcp / argus / pentest-assets
Skill 目录结构:
  skills/
    recon/       子域枚举、预筛、验证
    hunting/     Actuator、JS凭据、云密钥、流媒体
    workflow/    扫描流程、报告模板

规则清单(三条,可复制)

1. 禁爆破、禁破坏性操作、只测授权目标
2. 证据驱动:Agent 输出必须含原始请求/响应包,人做最终判断
3. 脱敏红线:报告数据量克制(数十万级)、手机号打码、真实目标名不出现

一句话总结

流水线压缩的是重复劳动,不是判断力——AI 把 1 小时的信息收集压成 5 分钟,但最后那 10 分钟人工复核,才是漏洞成立与否的全部。