# 自动化循环测试模式 > 参考自实战经验:用 AI agent 循环驱动渗透测试,实现半自动化 SRC 漏洞挖掘。 --- ## 核心思路 让 AI 不断问自己三个问题,形成循环: ```text 1. 这个漏洞是否是高危漏洞? 2. 这个漏洞是否利用成功? 3. 这个目标是否还存在其他漏洞? ``` 只要第 3 个问题的答案是"可能",循环就继续。 --- ## 循环架构 ```text ┌─────────────────────────────────────────┐ │ 初始化:确定目标、范围、工具链 │ └─────────────────┬───────────────────────┘ ▼ ┌─────────────────────────────────────────┐ │ Step 1: 信息收集(Nmap/子域名/目录) │ └─────────────────┬───────────────────────┘ ▼ ┌─────────────────────────────────────────┐ │ Step 2: 漏洞检测(Nuclei/SQLMap/手动) │ └─────────────────┬───────────────────────┘ ▼ ┌─────────────────────────────────────────┐ │ Step 3: 验证利用(PoC/截图/证据) │ └─────────────────┬───────────────────────┘ ▼ ┌─────────────────────────────────────────┐ │ Step 4: 记录发现 → 判断是否继续 │ │ - 还有未测试的接口?→ 回到 Step 2 │ │ - 还有未测试的子域?→ 回到 Step 1 │ │ - 全部测完?→ 生成报告,结束 │ └─────────────────────────────────────────┘ ``` --- ## 实现方式 ### 方式 1:Claude Code /loop 命令 ```text /loop "对目标 https://target.com 进行渗透测试。每轮测试一个接口或功能点。 测试完成后判断: 1. 是否发现漏洞?如果是,记录并继续 2. 是否还有未测试的攻击面?如果是,继续下一轮 3. 如果全部测完,生成报告并停止" ``` ### 方式 2:planning-with-files 使用 [planning-with-files](https://github.com/othmanadi/planning-with-files) skill: - 创建一个 `plan.md` 文件记录测试计划 - 每完成一步就更新计划状态 - AI 读取计划文件决定下一步 ### 方式 3:自定义循环 prompt 在 RULES.md 或 skill 中写入循环逻辑: ```markdown ## 自动化测试循环 当进入渗透测试模式时,按以下循环执行: 1. 读取当前测试计划(如果没有则创建) 2. 选择下一个未测试的目标/接口/功能点 3. 执行测试(信息收集 → 漏洞检测 → 验证) 4. 记录结果到测试计划 5. 判断: - 发现高危漏洞 → 立即通知用户 - 还有未测试项 → 回到步骤 2 - 全部完成 → 生成报告 ``` --- ## 关键经验 ### 1. 工具不要太多 > "太多的工具不仅会影响模型的判断,还会将大量的时间重复在一个点上" 建议每个测试类型只保留 1-2 个核心工具: - SQL 注入 → SQLMap(不要再加 FFUF 做注入) - 目录爆破 → FFUF(不要再加 Gobuster + dirsearch) - 漏洞扫描 → Nuclei(不要再加 Nikto + OpenVAS) ### 2. Skill 要写具体场景 不要只写"测试 SQL 注入",要写: - 遇到 WAF 怎么绕过 - 遇到参数加密怎么处理 - 遇到 JSON body 怎么测试 - 什么时候用时间盲注 vs 联合查询 ### 3. 循环时间会越来越短 实测第 7 轮循环只需要 2 分钟——因为 AI 已经熟悉了目标结构,不需要重复信息收集。 ### 4. 代理池防封 批量测试时必须走代理池,否则 IP 会被封: ```text 所有扫描流量 → ProxyCat 代理池端口 → 目标 ``` 推荐:[ProxyCat](https://github.com/honmashironeko/ProxyCat) — 将静态代理 IP 变成隧道 IP --- ## 配合 BurpSuite MCP BurpSuite 有 MCP 扩展(通过扩展市场安装),可以让 AI 直接: - 查看 Burp 拦截的请求 - 重放修改后的请求 - 读取扫描结果 - 操作 Intruder/Repeater 工作流: ```text 浏览器手动操作 → Burp 拦截流量 → AI 通过 MCP 读取请求 → AI 分析并构造攻击 → 通过 Burp 重放 ``` --- ## 与我们系统的集成 在我们的行为链中,循环测试对应步骤 10(执行任务)的内部循环: ```text 8. 如果缺工具 → bootstrap 自动补齐 9. 如果补齐失败 → 引导用户 10. 进入 skill 工作流 → 执行任务 └── 内部循环:测试 → 记录 → 判断 → 继续/停止 11. 任务完成 → 生成报告(含图表) 12. 回写经验 ``` 每次循环发现的漏洞都应该实时记录,不要等全部完成才记录。