我搭了一条 AI 渗透流水线:从域名到报告全自动
每个新目标都是同一套重复劳动:信息收集一小时、查情报开五六个网页、挨个验证、再写报告。这篇讲我搭的 AI 渗透流水线——域名丢进去,初筛报告出来,中间全自动,人只做判断题。
我搭了一条 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 分钟人工复核,才是漏洞成立与否的全部。