AI自主渗透测试机器人设计与实战运用
喜欢常常在Track安全社区浏览大佬分享的实战心得但是发现涉及到AI自动化渗透测试的文章较少于是有了本文。我认为随着模型能力的持续提升和工程架构的日趋成熟自动化渗透测试Agent正从实验室走向真实的攻防战场。虽然它不会取代安全专家但会成为专家手中最锋利的工具——让专业时间聚焦于核心漏洞攻坚而非重复性的扫描和报告撰写。本人参加了2次腾讯安全举办的黑客松智能渗透测试竞赛取得了一定成绩但是跟前几名差距很大于是潜心研究了开源的LuaN1aoAgent、CyberStrikeAI、CAI、Cairn等智能体最终选择在Cairn基础上用claude code进行二次开发属于自己的渗透测试ai agent起名叫Zero并且已经用于实战。今天主要讲讲二开改进思路和实战效果观摩即看看大模型到底是如何进行渗透的。一、设计思想和基本原理我认为Cairn那种“不设边界、自主搜索”的理念可能导致渗透过程和结果不可控于是我增加了一个专家agent来通过“角色分工”来约束LLM行为。核心理念可以总结为一个“专家驱动”的自动化渗透测试代理通过模拟人类专家的思维循环将复杂的攻击决策过程拆解为可计算的协作流程。1.1认知协作框架我构建了一个双人闭环协作框架。它将渗透测试的认知过程串联为独立的、由LLM驱动的角色专家Agent扮演“战略大脑”。它不直接操作工具而是根据当前全局状态如已发现的主机、端口动态生成或修改一个有向无环图形式的攻击计划。它输出的是结构化的“图编辑指令”如添加、更新、弃用节点而非自然语言。最后负责审查执行结果对失败进行分级归因L1-L4级并生成可复用的“攻击情报”同时判断目标是已达到还是任务陷入僵局。渗透Agent扮演“战术手脚”。它专注于完成规划者分配的单个子任务通过MCP协议统一调用各种安全工具如fscan、sqlmap并分析执行结果。它还会维护一个“共享公告板”用于在并行执行的子任务间实时交换高价值发现。将具体任务交由Dispatcher调度容器发送目标侦察或者漏洞利用指令与容器通信获取实时执行状态与结果。1.2逻辑图推理为了支撑上述框架的严谨决策引入了有向图机制系统强制要求所有行动遵循 “证据 → 假设 → 漏洞 → 利用”的严格逻辑链。任何攻击假设都必须有明确的先前“证据”节点支持且每个因果边都带有置信度分数。这旨在从架构层面抑制LLM的“幻觉”确保决策可追溯、可验证。由“规划者”维护的攻击计划是一个动态演进的有向无环图。与传统固定任务列表相比这个图可以根据测试进展实时变形例如发现新端口自动挂载扫描子图、遇到WAF插入绕过节点并能根据拓扑依赖关系自动识别并并行执行独立任务。1.3MCP工具集成在具体实现上我通过MCP协议实现工具调用的标准化和可扩展性。系统还提供了Web可视化界面和人机协同模式允许人类专家实时观察任务图演化、审批或修改计划。总的来说Zero的设计哲学更接近于为AI构建一套结构化的“思维操作规程”通过定义清晰的认知角色和严谨的推理链条来引导LLM在复杂的渗透测试空间中进行相对可靠和可解释的探索。二、实战渗透测试观摩先来一张渗透全过程成果图下面来逐步拆解机器人都干了什么首先当我输入目标地址下达渗透测试目标后侦察子agent开始执行可以看到它先是进行服务器指纹识别和路径爆破来拓展攻击面。它识别出来是Diango框架后去尝试利用已有Nday漏洞进行渗透测试而且能够自动从github下载poc进行CVE-2025-64459测试虽然经过多次尝试后证明该攻击路径走不通但是最后收敛到起点。在上面攻击路径收敛后它采取常规的TCP端口扫描策略再次发起攻击通过8080发现服务器部署有tomcat服务找到了一些API端点并尝试用(tomcat:tomcat, admin:admin, tomcat:s3cret, manager:manager, deployer:deployer, etc.) 这几组口令进行后台管理员口令爆破不成功后回到原有路径。最有意思的部分是它如何在上面失败的尝试后找到正确路径通过观察我发现有几个方面一是搜集到了一些目标相关的用户名/密码组合字典二是端口扫描发现了SSH服务然后它尝试ssh组合口令爆破居然成功了注意这里不是类似admin/admin123/123456这种弱口令因为跟目标相关就没放图。然后进入后是一个低权限的数据库账户。它找到了可以读写的目录最终通过SQL语句写文件方式把shell成功写入网站目录下。总共用时2小时35分钟最终获取了webshell。三、实践总结效率、局限、成本我已经把Zero用于日常参加企业SRC和护网行动中了但是不可否认的是自主渗透在很多方面还有局限性在效率方面AI Agent展现出远超我的渗透测试水平我可以一边打LOL一边渗透爽歪歪但是我算了下2个半小时渗透花费我23美刀啊我用的openrouter平台的API如果没有达成目标岂不是白花了所以成本还是不小的。在复杂场景方面我尝试过多层企业内网横向移动自动化渗透现有基线系统在最优运行情况下也仅能到达第三层子网。域渗透能力还偏弱还有就是C2免杀能力比较弱。最突出的短板是图形界面操作能力缺失。因为无法导航图形界面、无法理解如何点击按钮而完全错失。只是通过浏览器插件自动填写表单、点击交互元素来弥补这一短板但这本质上是在“绕过”而非“解决”GUI理解问题。我觉得多模态是下一步方向。另一大挑战是“幻觉”与误判。由于无法进行视觉验证Zero仅凭HTTP状态码就将登录失败后的重定向HTTP 200错误标记为成功验证。在利用阶段LLM的幻觉可能导致错误传播尤其是在需要领域专业知识如Samba凭据、JBoss工具链或用户交互如文件上传的场景中。谢谢各位大佬浪费时间听我哔哩哔哩哈哈哈申明本公众号所分享内容仅用于网络安全技术讨论切勿用于违法途径所有渗透都需获取授权违者后果自行承担与本号及作者无关请谨记守法.