原文标题:PentestAgent: Incorporating LLM Agents to Automated Penetration Testing

原文作者:Xiangmin Shen, Lingzhi Wang, Zhenyuan Li, Yan Chen, Wencheng Zhao, Dawei Sun, Jiashui Wang, Wei Ruan

发表会议:ACM Asia Conference on Computer and Communications Security (AsiaCCS’25)

笔记作者:焦宇彤@安全学术圈

主编:黄诚@安全学术圈

编辑:谷雨@安全学术圈

1、引言

随着网络攻击日益复杂与频繁,渗透测试作为主动识别安全漏洞的关键手段,其重要性不言而喻。然而,传统的手动渗透测试高度依赖安全专家的经验,平均耗时超过80小时,且成本高昂,难以规模化部署。尽管已有自动化渗透测试工具(如Nmap、Metasploit)和基于机器学习的方法,它们往往缺乏灵活性、适应性,且难以实现端到端的自动化流程。

近年来,大型语言模型(LLM)的快速发展为提升渗透测试的智能化和自动化水平带来了新的机遇。然而,现有的LLM辅助渗透测试系统(如PentestGPT、AutoAttacker)仍面临两大挑战:一是渗透测试知识覆盖有限,依赖预训练模型中的通用知识,难以应对实时、多变的漏洞环境;二是自动化能力不足,仍需大量人工介入进行验证、调试和决策。

为应对上述挑战,本文提出了PentestAgent,一个基于LLM的多代理自动化渗透测试框架。PentestAgent通过集成检索增强生成(RAG)、链式思考(CoT)和角色扮演等LLM技术,构建了一个覆盖情报收集、漏洞分析与利用的全流程自动化系统。该框架不仅提升了漏洞检测的覆盖率与准确性,还通过自研的基准测试集(基于VulHub与HackTheBox)验证了其在实际场景中的高效性与实用性。

2、方法论

PentestAgent采用多代理协作架构,将渗透测试流程分解为四个核心代理:侦察代理、搜索代理、规划代理与执行代理,分别对应PTES标准中的三个阶段:情报收集、漏洞分析与利用。

2.1 系统概览

  • 侦察代理:接收目标输入,通过自迭代循环执行侦察命令(如Nmap),收集环境信息并存储至数据库。

  • 搜索代理:基于侦察结果,进行两级层次化在线搜索,识别潜在攻击面并提取漏洞利用细节,存储为结构化知识库。

  • 规划代理:利用RAG检索知识库,生成针对目标环境的攻击计划,包括攻击面排序与漏洞利用建议。

  • 执行代理:负责自动执行攻击计划,包括参数填充、代码调试与错误处理,最终生成渗透测试报告。

2.2 关键技术应用

  • 检索增强生成(RAG):用于增强代理的上下文记忆与知识检索能力,解决LLM的“短期记忆”问题。

  • 链式思考(CoT):将复杂任务分解为子任务,引导代理逐步推理,减少幻觉输出。

  • 角色扮演(Role-playing):让代理扮演“渗透测试助手”,绕过LLM的安全策略限制,执行敏感操作。

  • 结构化输出:强制代理以JSON格式响应,确保输出可解析、可集成,提升流程自动化程度。

2.3 知识库构建与优化

PentestAgent构建了层次化渗透测试知识库,将攻击面与漏洞利用信息以树状结构组织,支持高效检索与版本匹配。知识库通过在线搜索(Google、GitHub、ExploitDB等)持续更新,确保其覆盖范围与时效性。

3、实验验证与分析

3.1 基准测试集构建

研究团队基于VulHub(100+预建Docker漏洞环境)与HackTheBox CTF挑战构建了一个包含67个目标的渗透测试基准集,涵盖32种CWE类型与OWASP Top 10中的8类风险。目标按漏洞利用难度分为简单(50个)、中等(11个)与困难(6个),并引入EPSS(漏洞利用预测评分系统)评估其现实性。

3.2 性能评估

  • 整体成功率:使用GPT-4时,PentestAgent在完整渗透测试流程中的成功率达74.2%,显著高于GPT-3.5的60.6%。

  • 阶段完成度:GPT-4在简单任务中实现情报收集与漏洞分析100%完成,利用阶段完成81.8%;在困难任务中表现有所下降,尤其在情报收集阶段(50%)。

  • 效率对比:与PentestGPT相比,PentestAgent在情报收集与利用阶段耗时显著更短(如情报收集:220秒 vs. 1199秒),自动化程度更高。

3.3 消融实验

  • 不同LLM骨干对比:GPT-4与Qwen-2.0在情报收集与漏洞分析中表现优异,Qwen-2.0在利用阶段领先。

  • 成本与时间权衡:GPT-3.5成本最低但性能较弱;Llama 3.1-8B虽免费但时间开销大,实用性受限。

3.4 失败案例分析

主要失败集中在:

  1. 情报收集阶段:难以识别非独立组件(如PHPMailer、Ghostscript),需集成更细粒度的指纹识别工具。

  2. 利用阶段

    • 需领域专业知识(如Samba凭据、JBoss工具链)

    • 需用户交互(如文件上传)

    • LLM幻觉导致错误传播

应对策略包括:人机协同设计、集成智能代理(如AutoGPT)以及设置执行停止条件。

4、总结

PentestAgent是一个创新的、基于LLM多代理的自动化渗透测试框架,成功实现了从目标侦察到漏洞利用的全流程自动化。其核心贡献在于:

  1. 设计了端到端的自动化渗透测试流水线,通过多代理协作与RAG技术显著提升了漏洞检测的覆盖率与实时性。

  2. 构建了公开可用的渗透测试基准集,基于VulHub与HackTheBox,涵盖多难度、多漏洞类型,为后续研究提供了标准化评估平台。

  3. 实验验证了框架的高效性与实用性,在多项指标上优于现有系统(如PentestGPT),尤其在自动化程度与执行效率方面表现突出。

尽管PentestAgent在复杂攻击链(如红队模拟)与未知漏洞检测方面仍存在局限,但其展示的“多代理+RAG+结构化知识库”架构为未来构建更智能、更自主的网络渗透测试系统奠定了重要基础。未来工作可进一步拓展其支持的工具集、增强对抗幻觉的能力,并在更复杂的网络环境中验证其扩展性。

安全学术圈招募队友-ing

有兴趣加入学术圈的请联系 secdr#qq.com

声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。