我用AI Agent打了一个内网渗透,这是踩过的所有坑

写在前面

2026年了,AI Agent早就不是"聊天机器人"那个层面的东西了。

我们团队从去年Q4开始尝试用AI Agent辅助红队渗透测试工作。从最初的"这玩意儿能写个POC就不错了",到现在的"Agent可以独立完成信息收集+漏洞探测+初步利用",走了不少弯路。

今天把真实踩过的坑——以及在实战中真正能用的配置方案——一次性写出来。

第一步:选对Agent框架,别在基建上浪费时间

当前市面上能跑渗透任务的AI Agent框架,我实际用过的有三个:

AutoGPT(已淘汰)

  • 优点:开源生态大,社区插件多
  • 缺点:上下文窗口太小,稍微复杂的多步渗透就"失忆"
  • 实战体验:打到第三步就忘记第一步发现了什么,属于玩具

LangChain Agent + 自定义Tool

  • 优点:灵活性高,可以自定义任何工具
  • 缺点:配置地狱。你需要在prompt里手写每个工具的使用方法,写少了Agent乱调用,写多了token烧得飞快
  • 实战体验:可用,但需要很强的工程化能力,不适合小团队

自研专用Agent(我们现在用的方案)

  • 基于ReAct模式 + 长上下文模型(128K以上)
  • 内置10+渗透工具的知识库,Agent按需调用
  • 自动维护"作战地图"——每步操作的结果自动更新全局状态

结论:如果只是想试试水,直接找个二次开发好的Agent框架;如果想上生产,必须走自研路线,通用框架在渗透场景下效率太低。

第二阶段:信息收集阶段的血泪教训

教训1:AI太容易相信"看起来对"的信息

第一次实战测试,Agent做子域名枚举时调用了Subfinder得到一批结果,然后自作主张用httpx探测存活。

问题出在哪?Agent看到 sub.api.example.com 返回了200,就在"作战地图"里标记为"确认存活"。但实际上那是CDN的200——真实源站根本没扫到。

解决方案:信息收集的所有结论必须附置信度评分,Agent不能自己做"确定判断"。

# 我们后来在prompt里加的限制
规则:
1. 子域名枚举结果统一标记为 "未验证"
2. 只有端口扫描+HTTP响应双重确认的,才标记为 "存活(高置信度)"
3. CDN/云防护的IP,自动分流进 "CDN列表",不能进"目标列表"
4. 每个结论必须带来源证据(命令+输出摘要)

教训2:Agent"过度扫描"导致被封IP

第二次测试,Agent拿到一个C段后,二话不说调用了masscan全端口扫描。

结果扫描到一半,目标WAF直接封了出口IP。后续所有操作全部失效,整个Agent session报废。

教训很朴素:扫描策略必须由人制定,Agent只能执行,不能决策扫描范围。

# 我们加入的限速策略
- 单个目标:最多同时扫5个端口
- C段扫描:必须使用随机的源IP(通过代理池)
- 扫描间隔:每次请求后sleep 2-5秒(随机)
- 如果连续3次连接被RESET,立即暂停该目标并记录日志

第三阶段:漏洞利用——Agent最擅长的部分,也是最大的坑

当你以为信息收集阶段的坑踩完了,利用阶段会给你更大的"惊喜"。

能用的场景:已知漏洞的自动化利用

这是Agent真正的强项。

举个例子:一次测试中发现目标存在Log4j漏洞(CVE-2021-44228)。传统流程是:手工查POC → 改payload → 尝试利用 → 换payload → 再尝试。

Agent来做:

1. 收到"Log4j漏洞可利用"的结论
2. 自动检索本地POC库 + CVE数据库
3. 提取5种不同绕WAF的payload模板
4. 按顺序尝试:JNDI注入 → RMI → LDAP → DNS外带
5. 每种payload换不同编码(base64/hex/unicode)
6. 成功执行命令后自动截图+记录回显

整个流程5分钟完成,比人手动快10倍。而且Agent不会累,200次尝试和2次尝试对它来说没区别。

不能能的场景:需要"灵光一现"的利用

比如一个Web应用,常规SQL注入测试全失败。但一个有经验的渗透测试人员会注意到某个参数在特定条件下触发了时间延迟——这可能是盲注的一个窗口。

Agent目前做不到这种"直觉性"的判断。它严格按照指令执行,不会"突然想到"换个角度看问题。

我们的解决办法:让Agent做"穷举劳动",人做"判断决策"。Agent负责把所有能试的组合试完,人负责从结果中发现异常。

第四阶段:横向移动——AI最容易"翻车"的环节

横向移动是内网渗透中最考验经验和判断力的环节,也是Agent翻车最惨重的地方。

实际翻车案例

测试网络拓扑:Web服务器(已突破) → 应用服务器 → 数据库服务器 → 域控

Agent在Web服务器上拿到了一个本地管理员密码(明文),然后:

  • Agent判断这个密码可以复用 → 尝试用同一密码登录应用服务器
  • 登录成功 → Agent标记"应用服务器已控"
  • Agent继续用同一密码尝试登录域控
  • 连续5次登录失败 → 触发了域控的账号锁定策略
  • Web服务器上的本地账号被锁定 → 已经拿到的入口丢了

这就是没有"风险评估"机制的后果。 一个有经验的渗透人员会在尝试域控之前先确认密码策略、测试预期锁定阈值、甚至先用低敏感账号做试探。

我们加的"安全刹车"机制

横向移动规则(Agent侧强制执行):
- 跨主机登录尝试:每台主机最多3次
- 账号锁定风险评估:每次使用凭据前,先查询目标主机的账户策略
- 敏感操作隔离:域控/核心数据库的操作必须由人确认
- 备选通道:每个入口保留2个以上备选通道,防止入口丢失

第五阶段:报告生成——Agent真正完胜人类的部分

打了半天,最终产出是什么?是一份报告。

传统渗透测试最痛苦的部分是什么?是写报告。打一周的测试,写三天的报告,而且80%是重复劳动。

Agent在这件事上简直开挂:

# 自动化报告模板(部分)
## 漏洞详情
- 漏洞名称:Apache Log4j Remote Code Execution (CVE-2021-44228)
- 发现时间:{扫描时间}
- 受影响资产:{受影响的服务器列表} 
- 危害等级:严重(CVSS 10.0)
- 利用状态:{成功/失败}
  - 成功命令执行:{命令及输出}
  - 提取凭据:{类型及数量}
- 复现步骤(可重放):
  {Agent自动记录的每一步操作 + 执行结果}
- 修复建议:
  {自动匹配对应CVE的官方修复方案}

Agent完成一次测试后,可以直接输出完整的渗透测试报告草稿,包含每个漏洞的时间线、技术细节、复现步骤、修复建议。

人只需要做一件事:审阅、润色、添加"洞见"。

总结:AI Agent做渗透测试,到底能提效多少?

我们内部做了个对比实验:

环节纯人工(单任务)人+Agent协作提效倍数信息收集6-8小时30-45分钟8-12x漏洞扫描4-6小时20-30分钟8-10x漏洞利用(已知)2-4小时5-10分钟12-24x漏洞利用(未知)4-8小时仍需人主导—横向移动4-8小时仍需人决策—报告撰写8-16小时1-2小时8x

结论很明确: AI Agent在重复性高、规则明确的环节(扫描、已知漏洞利用、报告生成)效率碾压人工;但在需要经验判断、直觉推理的环节(未知漏洞发现、横向移动策略),还远远不如一个有经验的安全从业者。

最正确的使用姿势:让Agent做100%的体力活,让人做100%的判断活。 这样团队的整体产出至少翻3-5倍,而且人的精力只用在最有价值的地方。


这套方案我们内部已经跑了三个多月,大大小小的测试打了二十多次,Agent独立完成率大约在65%左右。剩下35%需要人工介入的环节,基本都集中在"需要对业务逻辑有理解"的场景。

如果你想看完整的Agent配置方案和prompt模板,后续可以单独出一篇。或者,你踩过什么有趣的Agent渗透坑?评论区聊聊。


关注「安全值班室」公众号

每天网络安全实战攻防案例 + 安全干货

关注安全值班室

posted on 2026-07-03 08:29  明.Sir  阅读(10)  评论(0)    收藏  举报

导航