南洋理工大学|PENTESTGPT:评估与利用大语言模型实现自动化渗透测试

admin 2026-02-06 01:44:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文研究了大语言模型在渗透测试中的应用,发现其擅长工具使用但受限于记忆丢失和指令幻觉。为此提出的PenTestGPT框架,通过推理、生成与解析三模块协作及渗透测试任务树(PTT)机制,有效维持了测试的全局策略。实验显示该框架大幅优于原生LLM,显著提升了自动化渗透测试的成功率与连贯性。 综合评分: 95 文章分类: 渗透测试,AI安全,安全工具


cover_image

南洋理工大学 | PENTESTGPT:评估与利用大语言模型实现自动化渗透测试

原创

焦宇彤 焦宇彤

安全学术圈

2026年2月5日 11:02 四川

原文标题:PENTESTGPT: Evaluating and Harnessing Large Language Models for Automated Penetration Testing 原文作者:Gelei Deng, Yi Liu, Victor Mayoral-Vilches, Peng Liu, Yuekang Li, Yuan Xu, Tianwei Zhang, Yang Liu, Martin Pinzger, Stefan Rass 发表会议:USENIX Security ’24 笔记作者:焦宇彤@安全学术圈 主编:黄诚@安全学术圈 编辑:谷雨@安全学术圈

1、引言

渗透测试是确保系统安全的关键工业实践,但传统上因其对人工专家经验和大量手动操作的依赖而难以自动化。大语言模型(LLMs)在各领域展现出巨大潜力,其涌现能力有望革新包括网络安全在内的众多行业。现有工作虽探讨了LLMs在渗透测试中的应用前景,但缺乏对其能力的系统性、量化评估。因此,核心问题在于:LLMs能在多大程度上自动化渗透测试?

现有渗透测试基准存在局限性,例如覆盖漏洞类型单一、仅评估最终成功率而忽略过程中的阶段性进展。这阻碍了对LLMs能力的准确衡量。

为此,本文首先构建了一个全面的渗透测试基准,并利用其对主流LLMs进行探索性研究。研究发现,LLMs虽擅长执行特定子任务(如使用工具、解析输出),但存在长上下文记忆丢失过度关注最近任务以及命令生成不准确等问题,难以维持对整体测试场景的连贯把握。基于这些发现,本文提出了PenTestGPT,一个受现实世界渗透测试团队协作模式启发的LLM增强自动化渗透测试框架。它通过模块化设计分离关注点,有效应对了上述挑战。

2、全面渗透测试基准的构建

为系统评估LLMs在渗透测试中的能力,本文构建了一个覆盖广泛、可评估渐进成果的基准。

  • 基准设计目标

  • 任务多样性:涵盖多种操作系统和场景。

  • 挑战层次性:包含从易到难的不同难度级别。

  • 进度可追踪:能评估测试过程中的每一步进展,而非仅看最终成功与否。

  • 基准构建过程

  1. 任务选择:从HackTheBox和VulnHub两个主流渗透测试训练平台,筛选出覆盖OWASP Top 10漏洞的13个目标机,并按难度分为简单、中等、困难三类。
  2. 任务分解:依据NIST 800-115指南和CWE分类,将每个目标的完整渗透流程分解为一系列原子性子任务(共182个),覆盖26个类别、18个CWE条目。
  3. 基准验证:由三位获得认证的渗透测试员独立测试并撰写报告,确保基准的合理性和解决方案的可重现性。

该基准首次实现了对渗透测试过程中阶段性成果的公平评估与比较。

3、LLMs在渗透测试中的能力探索性研究

本研究采用人机交互循环策略(人类严格按LLM指令执行并反馈结果),在构建的基准上对GPT-3.5、GPT-4和Bard进行了评估,旨在回答两个问题:LLMs的能力边界,以及其与人类专家策略的差异。

3.1 LLMs的渗透测试能力(RQ1)

  • 整体表现:所有LLM均能完成至少一个端到端的简单目标测试,证明了其基础能力。其中GPT-4表现最佳,成功完成了4个简单目标和1个中等目标。但在困难目标上,所有模型均表现不佳,难以利用已识别的独特漏洞。

    结论1:LLMs能够执行端到端渗透测试,但在面对更困难的目标时遇到挑战。

  • 优势子任务:LLMs在使用常见测试工具(如nmap)、识别常见漏洞类型以及代码分析与生成方面表现出色。特别是GPT-4在代码解释和生成方面优于其他模型。

    结论2:LLMs能高效使用渗透测试工具,识别常见漏洞,并通过解释源代码来定位漏洞。

3.2 LLMs与人类策略的对比分析(RQ2)

通过分析LLM生成的冗余操作和失败原因,揭示了其与人类专家的关键差异:

  • 冗余操作模式:LLMs倾向于频繁建议暴力破解、研究已知CVE、尝试SQL注入和命令注入,即使这些策略在特定场景下无效。这反映了其训练数据中常见攻击模式的泛化。
  • 失败原因分析
  1. 会话上下文丢失:这是最主要的失败原因。受限于固定长度的token窗口,LLMs在复杂的多步骤测试中容易遗忘早期的关键发现,无法有效关联漏洞并制定连贯的攻击策略。

    结论3:LLMs难以维持长期记忆,而这对于关联漏洞和制定开发策略至关重要。

  2. 过度聚焦最近任务(深度优先倾向):LLMs倾向于严格遵循深度优先搜索策略,过度沉浸于解决最近提到的任务,而忽略其他可能更具潜力的攻击面。结合上下文丢失问题,导致它们常常“钻进死胡同”。

    结论4:LLMs强烈偏好最近任务和深度优先搜索方法,常导致过度关注某一服务而遗忘先前发现。

  3. 不准确的命令生成与幻觉:LLMs经常能选对工具,但生成的具体命令参数错误,甚至编造不存在的工具或模块。

    结论5:LLMs可能生成不准确的操作或命令,这源于其固有的不准确性和幻觉问题。

4、PenTestGPT:LLM赋能的自动化渗透测试框架

基于探索性研究的发现,本文设计了PenTestGPT,其核心思想是模仿人类渗透测试团队的协作模式,通过三个自交互模块来应对LLM的固有缺陷。

4.1 总体架构与设计原理

PenTestGPT包含三个核心模块,每个模块拥有独立的LLM会话和上下文:

  • 推理模块:扮演“测试组长”角色,负责维护全局测试状态和策略。
  • 生成模块:扮演“初级测试员”角色,负责将具体子任务转化为可执行的详细命令。
  • 解析模块:作为支撑接口,负责处理(如总结、提取)测试过程中产生的冗长或非结构化文本输出(如工具输出、网页源码)。

这种分工隔离了整体上下文和具体操作生成的干扰,使每个LLM能专注于其擅长的任务。

4.2 核心模块设计细节

  • 推理模块与渗透测试任务树(PTT)

  • 引入渗透测试任务树(PTT),这是一种基于网络安全攻击树概念、能用自然语言表示和更新的树形结构,用于编码整个测试过程的状态。

  • 工作流程:(1)根据用户目标初始化PTT;(2)接收测试结果并更新PTT(仅更新叶节点);(3)基于当前PTT状态评估并选择下一个最有希望执行的子任务;(4)将该任务发送给生成模块。此设计有效解决了上下文丢失和过度关注最近任务的问题。

  • 生成模块

  • 采用思维链(CoT) 策略,将任务执行分为两步:首先将接收到的子任务扩展为详细的步骤序列,然后将每一步转化为精确的终端命令或GUI操作描述。这显著提高了命令生成的准确性,减少了幻觉。

  • 解析模块

  • 专门处理四类信息:用户意图、安全测试工具输出、原始HTTP网页信息、源代码。通过设计的提示词对其进行总结和关键信息提取,减少冗余信息输入,节省token并提升效率。

  • 主动反馈机制

  • 允许用户直接与推理模块的上下文(PTT)进行交互查询,或在必要时手动指导更新PTT,保持了人类在循环中的监督和修正能力。

5、实验评估

5.1 性能评估(RQ3)

在自定义基准上,PenTestGPT显著优于原生LLMs:

  • 目标任务完成:PenTestGPT-GPT-4解决了7个简单目标中的6个和4个中等目标中的2个。
  • 子任务完成率:PenTestGPT-GPT-4的子任务完成率比原生GPT-3.5提高了**228.6%,比原生GPT-4提高了58.6%**。
  • 结果验证了PenTestGPT设计对提升LLM在渗透测试中表现的有效性。

5.2 策略评估(RQ4)

  • PenTestGPT展现出更接近人类专家的策略:它能够像人类一样在多个服务间切换探索,关联不同阶段的发现(例如,将FTP文件上传漏洞与Web服务文件查看功能关联),形成有效攻击链。而原生GPT-4则可能卡在单一服务上。
  • 局限性:PenTestGPT仍保留了一些非人类策略(如频繁尝试暴力破解),且在图像解析、高级社会工程学技巧、以及需要多次试错的精细化漏洞利用代码构造方面存在不足。

5.3 消融实验(RQ5)

通过禁用各模块进行测试:

  • 禁用解析模块:性能下降很小,表明推理模块的PTT设计足以维持上下文。
  • 禁用生成模块:性能略优于原生GPT-4,但生成具体操作指令的精度下降。
  • 禁用推理模块(即退化为原生LLM用法):性能最差,甚至低于原生GPT-4,证明了模块化设计和PTT对于管理复杂测试上下文的核心必要性。

5.4 实用性评估(RQ6)

在真实世界场景中测试:

  • HackTheBox活跃靶机:PenTestGPT成功解决了10台靶机中的4台(均为简单难度)和1台中等难度靶机,总API成本为131.5美元。
  • picoMini CTF竞赛:在21道题目中解决了9道,获得1500分(总分4200),在248支参赛队伍中排名第24。
  • 结果表明PenTestGPT在处理从易到中等难度的真实世界挑战时具有实用价值和成本效益。

6、总结

本文系统性地探索了LLMs在自动化渗透测试中的潜力与局限。通过构建首个支持渐进式评估的全面渗透测试基准,揭示了LLMs擅长工具使用和漏洞识别,但受困于长上下文记忆丢失、深度优先倾向和命令幻觉等核心问题。

针对这些问题,本文提出了PenTestGPT,一个受人类测试团队协作启发的创新框架。其推理、生成、解析的三模块架构,特别是渗透测试任务树(PTT) 的引入,有效分离了全局策略与局部操作,显著缓解了LLM的固有缺陷。

实验表明,PenTestGPT的性能大幅超越原生LLM,并在真实世界挑战中证明了其实用性。这项工作为利用LLM增强网络安全专业人员的效率提供了重要见解和可行工具,同时也指明了未来在多模态理解、复杂利用链构建等方面仍需结合人类专家智慧的方向。

安全学术圈招募队友-ing 有兴趣加入学术圈的请联系 secdr#qq.com


专题最新征文

  • 期刊征文 | 暗网抑制前沿进展 (中文核心)
  • 期刊征文 | 网络攻击分析与研判 (CCF T2)
  • 期刊征文 | 域名安全评估与风险预警 (CCF T2)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全学术圈 焦宇彤 焦宇彤《南洋理工大学 | PENTESTGPT:评估与利用大语言模型实现自动化渗透测试》

评论:0   参与:  0