《LLM渗透测试对比实验:单Agent与多Agent协作的模式差异》
大语言模型(LLM)在渗透测试领域的自动化应用正受到广泛关注,但单一Agent模式在多步骤、多分支的攻击链中常因路径选择偏差或上下文丢失而陷入低效循环。为探索更优的自动化方案,本文设计并实现了一种“主控Agent + 策略参谋”的双LLM协作架构,以DeepCode(deepseek-v4-pro)为执行者、千问API为参谋,在本地VMware环境中对Vulnhub靶机DC-2(中低难度)和DC-
【重要声明】
本项目/本文档所有测试均在本地私有靶机环境(如Vulnhub、DVWA)中进行,未对任何公网或第三方系统进行未经授权的扫描。本文旨在探讨LLM Agent的任务协作能力与成本优化,不提供一键化的自动化攻击脚本,所有执行命令需人工复核确认。使用者需遵守当地法律法规,因滥用导致的一切法律后果与作者无关。
本文为原创,遵循CC 4.0 BY-SA版权协议
【一、背景与动机】
近年来,大语言模型(LLM)的快速发展显著提升了人工智能在代码生成、代码审计、工具调用等复杂任务上的表现。以GPT,Claude,DeepSeek等为代表的模型,已能够在无需人工干预的情况下完成多步推理、编写可执行脚本、调用系统命令等操作。这一进展引发了安全社区的广泛关注——一个自然延伸的设想:能否利用LLM辅助甚至部分替代渗透测试中的重复性劳动,从而降低对人工经验的依赖、提升测试效率?目前,LLM在安全领域的应用主要集中在漏洞分析、日志解读、报告生成等辅助环节,而将其直接用于执行渗透测试任务的研究仍处于早期探索阶段。现有工作多聚焦于“单Agent”模式——即一个LLM独立完成从信息收集到漏洞利用的完整攻击链——但其在面对多步骤、多分支的渗透场景时,常因路径选择偏差或上下文丢失而陷入低效循环。为克服这一局限,本文将尝试“多Agent协作”模式:让多个LLM分别承担不同角色(如侦察、攻击、策略规划),通过分工协作完成更复杂的渗透任务
【二、协作架构与实验设计】
架构说明:
agent协作渗透测试方法为一个主流窗口叠加窗口里的其他agent API,以执行者deepcode(V4-pro)叠加千问API举例
整体的结构用户指令 → 主控Agent(DeepCode) ⇄ 辅助模型(千问API)
↓
本地靶机环境
实验环境:
Windows 11 + DeepCode (deepseek-v4-pro)
靶机:VMware Workstation Pro DC-2/DC-5
辅助API:千问3.7
变量控制:
1.每次测试前回滚快照
2.不同窗口、提示词完全一致
3.每窗口对话仅两轮
4.时间计算于命令agent进行测试开始
5.Token包含共两轮对话
6.只使用当前windows物理机及所带工具进行渗透测试
(结束后均提示清除本次测试所造成的记录,此行为不计入Token及时间)
Agent定义:
单Agent仅使用DeepCode独立完成
多Agent为DeepCode叠加千问
一次渗透测试按每次token平均100k左右的消耗大概是2元。该方法目前通关的有:DC系列1,2,5,Mr-Robot
【三、实验结果与数据分析】
(1) DC-2靶机测试(中低难度)
表1:DC-2靶机测试结果(中低难度)
测试模式 | 轮次1 | 轮次2 | 轮次3 | 轮次4 | 平均token | 平均耗时 |
多agent | 60.2k 10min | 64k 12min5s | 77.3k 12min20s | 60.8k 11min3s | 65.6k | 11min22s |
单agent | 82.3k 13min45s | 58.9k 11min15s | 67.2k 8min38s | 59.6k 9min10s | 67k | 10min42s |
表格注:从方差(17.1K vs 23.4K)可以看出,多Agent的Token消耗波动更小,行为更可预测,军师的策略框架起到了一定的锚定作用
表2:DC-5靶机测试结果(中等难度)
测试模式 | 轮次1 | 轮次2 | 轮次3 | 平均token | 平均耗时 | 备注 |
多agent | 116.3k 24min55s | 139.0k 19min30s | 132.0k 22min23s | 129.1k | 22min16s | 全部成功,路径稳定 |
单agent | 165.4k 75min | 70.0k 14min | 90.8k 17min | 108.7k | 35min20s | (1)中途因扫描过长触发人工额外提示,且未完成(结果作废) |
表格注:单Agent的(1)案例耗时75分钟未完成,呈现“全有或全无”的两极分化。虽然其平均Token较低,但若剔除未完成的极端值,单Agent成功案例均值为80.4k,多Agent的成本属于“买稳定性”的溢价
因篇幅限制,仅展示关键轮次数据与两种模式对于dc-2靶机各一幅攻击链:
多agent:(2)
单agent:(1)
针对更高难度靶机(Symfonos6v2)的初步测试显示,参谋模型出现幻觉干扰,该现象表明多Agent模式存在适用边界,相关深入分析我们将另行独立撰文探讨于下一篇文章
【四、深度讨论与成本分析】
LLM接入进行渗透测试:
共性优势:
1.对中文的渗透测试术语以及报告的理解较好
2.技术门槛低,除了对deepcode的下载外只要会自然语言即可极大程度的降低人工干预
3.在低级渗透测试上效率高
单Agent劣势:
1.大部分内容推理过程不可视
2.同一对话窗口内Token耗费叠加,后期呈指数级上升,甚至一个问题四五块钱。
多agent优势:
1.多Agent对人工干预依赖度更低,自动化完成度上限更高
2.稳定性显著较高
多Agent劣势:
1.测试靶机Token成本高于单Agent。
2.千问API为无状态模型,每次调用均为独立会话,不具备上下文记忆能力
(注:如若不进行协议或工程化接入,千问在协作中仅被动响应DeepCode的主动调用,自身不发起任何交互,会进一步加剧了Token的重复消耗与整体协作效率的低下,同时意味着每一轮无意义的重复前提都在消耗实际API调用成本)
注: 在高消耗场景下,多Agent平均消耗(129.1K)低于单Agent失败案例(165.4K),但高于单Agent成功案例的均值(约80K)。多Agent的Token成本表现为“买稳定性保险”的溢价
改进方法:
- 利用Webhook模式,每当context.json变更时自动触发千问,需本地HTTP服务,只要提示词得当可直接让Deepcode自己做
- 每次测试过后让Deepcode保存关于对话的日志摘要文件,并在新窗口读取日志摘要文件,开启新窗口不叠加以往耗费、
【五、结论、局限性及未来方向】
结论:在针对中低难度靶机场景下,多Agent协作模式是行得通的,且门槛不过于夸张;多Agent协作模式更稳定,但成本略高,表现为“买稳定性的溢价”。
局限性:由于个人算力与API额度限制,本次仅测试了固定温度参数下的表现,未涵盖思维链调优或不同采样策略的影响,暂且协作两个agent;上文提及针对更高难度靶机(Symfonos6v2)的初步测试显示,参谋模型出现幻觉干扰,表明多Agent模式存在适用边界
注:目前测试内容未经真实漏洞挖掘,只局限于靶机渗透测试,实战可靠性尚且存疑,但胜在门槛极低,利用其作为智能攻防渗透测试方面练手也是极为不错的
未来方向:下一步计划引入第三个Agent负责日志审计与合规检查,验证三Agent架构在更复杂靶机上的表现,并测试Webhook状态持久化方案对Token成本的优化效果
以下是之前测试时关于此agent交互行为产生的audit.log部分截图:
推理虽不可视,但行为可审计,关键抉择点需要人为复核确认,同时具备会话级信任机制,大多情况下普通请求在用户同意一次后就会自动确认,工具调用的完整时间线也可追溯
【六、复现环境附录】
主机环境:
Windows 11 + DeepCode (deepseek-v4-pro)
靶机:VMware Workstation Pro DC-2/DC-5
辅助API:千问3.7版本
工具清单:
系统自带:curl, ssh, ping, Python 3.12.10, Node.js v24.18.0, requests, paramiko
工具目录:gobuster.exe v3.8.2, sqlmap-master, node-sqli.js, port-scan.ps1, fast-tcp.ps1, scan-net.ps1
千问协作协议:
qianwen.mjs, bridge.mjs(含--consult / --report / --status / --reset参数), bridge-webhook.mjs, context.json
免责声明:本工具链在本地内网测试使用
提示词模板:https://github.com/lyyee0/deepcode-qianwen
附件是单agent(1)进行dc-5渗透测试给环境玩坏的实例图(^_^)