【重要声明】
本项目/本文档所有测试均在本地私有靶机环境(如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成本表现为“买稳定性保险”的溢价

​

改进方法:

  1. 利用Webhook模式,每当context.json变更时自动触发千问,需本地HTTP服务,只要提示词得当可直接让Deepcode自己做
  2. 每次测试过后让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渗透测试给环境玩坏的实例图(^_^)