大家读完觉得有帮助记得关注和点赞!!!
摘要
渗透测试(pentest)对于评估计算机系统的安全性至关重要,然而,使用机器学习(ML)、深度学习(DL)或强化学习(RL)的传统自动化方法仍然受到简化动作空间、高计算成本以及在侦察、漏洞分析和利用的多阶段过程中弱推理能力的限制。最近的框架如 PentestGPT、VulnBot 试图利用大型语言模型(LLMs),但在复杂工作流中面临高成本、可扩展性和适应性的挑战。这推动了从单体模型向智能体AI系统的转变,其中多个 specialized agents( specialized agents)协作以更高效率和准确性完成渗透测试任务。这项工作介绍了 xOffense,一个 AI 驱动的多智能体渗透测试框架,它将流程从劳动密集型、专家驱动的手动工作转变为完全自动化、机器可执行的工作流,能够与计算基础设施无缝扩展。其核心是,xOffense 利用一个经过微调的中等规模开源 LLM (Qwen3-32B) 来驱动渗透测试中的推理和决策。该框架将 specialized agents 分配给侦察、漏洞扫描和利用,并通过一个编排层确保各阶段之间的无缝协调。在思维链(Chain-of-Thought)渗透测试数据上进行微调进一步使模型能够生成精确的工具命令并执行一致的多步推理。我们在两个严格的基准测试上评估 xOffense:AutoPenBench 和 AI-Pentest-Benchmark。结果表明,xOffense consistently outperforms 当代方法,实现了 79.17% 的子任务完成率, decisively surpassing 领先系统如 VulnBot 和 PentestGPT。这些发现凸显了领域适应的中等规模 LLMs,当嵌入到结构化的多智能体编排中时,能够为自主渗透测试提供卓越、成本效益高且可复现的解决方案。
关键词: 渗透测试,大型语言模型,智能体AI,多智能体系统,检索增强生成
1 引言
渗透测试(pentest)仍然是评估现代信息系统真实世界安全态势的最有效方法之一。不幸的是,主流方法——由人类专家小团队进行的手动测试——无法跟上当今快速扩展的攻击面。仅在 2024 年,美国国家漏洞数据库(NVD)就列出了超过 29,000 个新的 CVE,同比增长 38% [1] [2]。随着网络规模和复杂性的增长,新漏洞的出现与安全专业人员检测和修复它们的能力之间的差距正在扩大。这种日益增长的不平衡凸显了对自动化智能渗透测试解决方案的迫切需求。
早期缩小这一差距的尝试集中在完全确定性或启发式自动化上。著名的例子包括 DeepExploit [3] 和基于 Metasploit 的脚本框架 [4],它们将横幅抓取、版本映射和漏洞利用调用链接起来。尽管效率高,但这些系统依赖于僵化的专家规则,并且难以处理未见过的配置或不完整信息。
第二条更自适应的研究方向利用强化学习(RL)。诸如 IAPTS [5] 和 HA-DRL [6] 之类的系统将渗透测试建模为部分可观察环境中的顺序决策问题,使智能体能够通过交互和基于奖励的学习自主探索和学习有效的攻击策略。RL 智能体原则上可以发现新的攻击路径,但在实践中面临两个关键障碍:(i) 它们的动作空间必须被严重简化(例如,“扫描端口”、“利用 CVE-xxx”),(ii) 训练需要大量的环境交互,这些交互获取成本高昂且很少在真实网络之间迁移。因此,即使是最先进的基于 RL 的渗透测试工具也只能实现有限的覆盖率,并且需要大量工程工作来集成新工具或协议。
这些局限性说明,纯粹基于深度学习(DL)或 RL 的自动化对于渗透测试固有的多阶段和动态性质是不够的。为了克服这一点,最近的工作转向了基于 AI 智能体的范式,其中多个 specialized agents 协作以模拟人类红队的工作流。在此类系统中,每个智能体承担不同的角色:侦察智能体专注于主机和服务发现,漏洞分析智能体将发现与 CVE 和 CWE 知识库关联,利用智能体生成并测试候选有效载荷。这种面向智能体的分解实现了模块化、跨阶段的上下文保留,以及扩展到传统 ML/DL/RL 管道无法处理的复杂攻击路径的可能性。
大型语言模型(LLMs)的最新进展为自动化渗透测试开辟了新的可能性。利用其强大的推理和代码生成能力,LLMs 已被用于多个研究原型,如 PentestGPT [7]、PentestAgent [8] 和 VulnBot [9],其中模型协助或自主进行侦察、扫描和利用。特别是,VulnBot 代表了一个重大进步:它通过由渗透任务图(PTG)指导的 specialized LLM agents 之间的协作工作流来构建渗透测试,实现了在有限或无人干预的情况下模拟专家级渗透测试。来自 AutoPenBench [10] 和 AI-Pentest-Benchmark [11] 等基准测试的实证结果验证了 VulnBot 在结构化测试环境中优于其他自动化方法的能力。
然而,这些系统大多数严重依赖极大或商业的 LLMs,例如 GPT-4o、LLaMA3-70B 或 DeepSeek-V3。尽管功能强大,这些模型带来了显著的操作障碍——包括高资源消耗、昂贵的 API 依赖以及对领域特定微调的有限适应性。此外,它们的通用性通常会导致幻觉、跨阶段上下文丢失或在复杂渗透工作流中产生糟糕的命令翻译。因此,迫切需要探索是否更小、经过微调的开源模型可以作为更高效、专门的替代方案——提供更好的可控性、更低的成本和 targeted reasoning。
这项工作的动机源于两个核心观察。首先,虽然大型 LLMs 在安全领域展示了强大的潜力,但规模本身并不能保证有效性,特别是当模型部署在结构化、多步骤的任务(如渗透测试)中时。尽管规模很大,大规模 LLMs 仍然遭受跨阶段上下文丢失、生成不正确的工具使用以及需要大量人工监督的问题。其次,大多数当前系统采用 LLMs 作为黑盒助手或指令跟随者,而没有集成更深层的任务特定指导或领域适应。为了解决这些局限性,我们探索了一种替代范式:利用一个中等规模、领域适应的 LLM,该模型经过明确训练用于渗透测试任务。我们提出了 xOffense,它是 VulnBot 框架的一个 refined evolution,用经过微调的 Qwen3-32B [12](一个 320 亿参数的开源语言模型)替代了对大型通用模型的依赖。通过对渗透测试工作流(包括漏洞扫描、漏洞利用编写和安全工具交互)的专门训练,xOffense 实现了更 sharp 的任务对齐、增强的操作保真度以及在细微或低可见性环境中更强的适应性。
beyond simply replacing the core language model, xOffense 还 incorporates 了一个上下文感知的提示方案,我们称之为灰盒提示(grey-box prompting)。在这种设置中,智能体配备了部分系统洞察,例如协议提示、观察到的服务或先前的扫描摘要,使它们能够做出更明智的决策,而无需依赖完整的系统披露。这种策略在保持黑盒测试的操作约束的同时,提供了最小的结构化指导,在现实主义和智能体有效性之间取得了平衡。通过保留 VulnBot 的三阶段管道——侦察、扫描和利用——xOffense 确保了与现有工作流的兼容性,促进了直接基准测试,并为比较评估提供了 robust 的基础。
在本文中,我们介绍了 xOffense 的设计、实现和评估,这是一个轻量级、领域自适应且高效的自主渗透测试系统。我们的主要贡献如下:
-
一个 AI 驱动的多智能体渗透测试系统。 我们提出了一个新颖的基于智能体的框架,其中 specialized agents 协作覆盖渗透测试的所有关键阶段——侦察、漏洞分析和利用。这种设计模拟了人类红队的工作流,确保了跨任务的模块化,并能够以自主方式连贯地编排复杂攻击路径。
-
一个领域适应的中等规模 LLM。 我们系统的核心是 Qwen3-32B,一个经过思维链渗透测试数据微调的 320 亿参数开源模型。这种适应使模型具有精确的多阶段推理、准确的工具命令生成以及在复杂利用工作流中的强大适应性。
-
灰盒阶段提示。 我们引入了一种上下文感知的提示机制,选择性地将环境线索——如观察到的协议、发现的服务和先前的扫描输出——整合到智能体推理过程中。这种策略在黑盒和白盒测试之间取得了平衡,减少了上下文丢失并改善了跨阶段的连续性。
-
广泛的实证验证。 我们在 AutoPenBench 和 AI-Pentest-Benchmark 上对 xOffense 进行了 rigorous 评估,证明了在合成和真实世界渗透测试场景中的最先进性能。与先前方法相比,该系统实现了卓越的任务和子任务完成率,证实了多智能体编排和领域适应 LLMs 的有效性。
本文的其余部分组织如下。第 2 节回顾了关于渗透测试和自动化方法的先前研究,而第 3 节介绍了支撑自动化系统的基本概念。第 4 节描述了所提出的 xOffense 框架的架构,包括其微调的 Qwen3-32B 模型、灰盒提示策略和多智能体编排。我们在第 5 节描述了实验设置、基准数据集、评估指标。第 6 节报告和分析了两个基准测试和真实世界利用场景的实证结果。第 7 节讨论了有效性的潜在威胁及其对泛化性的影响。最后,第 8 节总结了论文并概述了未来研究的方向。
2 相关工作
2.1 前LLM自动化和RL
确定性编排器,如 DeepExploit,集成了扫描器和漏洞利用框架(例如,Metasploit、Nmap、Nikto、WPScan),但依赖于僵化的规则和浅层的证据融合,限制了对动态攻击场景的适应性 [3, 4, 13, 14, 15]。基于 RL 的智能体将渗透测试表述为具有奖励塑造的部分可观察马尔可夫决策过程(POMDP),为自动化攻击策略提供了一种原则性方法 [5, 6, 16]。值得注意的是,Raiju 框架通过利用 RL 算法,特别是优势行动者-评论者(A2C)和近端策略优化(PPO),在自动化后期利用任务方面取得了重大进展 [17]。与 Metasploit 集成,Raiju 训练 specialized agents 在真实世界环境中执行权限提升、hashdump 收集和横向移动等任务,在四个测试环境中跨不同攻击类型实现了超过 84% 的成功率。然而,基于 RL 的方法,包括 Raiju,面临两个主要挑战:(i) 需要大量的状态和动作空间工程,以及 (ii) 没有昂贵的重新训练,跨目标可转移性有限。这些局限性凸显了对更自适应方法的需求,例如 LLMs,以增强渗透测试的效率和泛化能力。
2.2 LLM 单/少智能体管道
PentestGPT 展示了一个模块化的、自我交互的支架,其中 LLM 计划、解析工具输出并合成命令;这通过摘要缓解了上下文丢失,从而闭合了感知 ↔ 动作循环 [7]。AutoAttacker 专注于具有 shell/Metasploit 控制的跨 Windows/Linux 的突破后现实主义,执行多步攻击 [18]。两者都强调,基于语言的合成和 disciplined 工具使用可以自动化网络杀伤链的相当大部分,但通常依赖于大型主干网络和临时接地(ad-hoc grounding)。
2.3 LLM 多智能体编排
PentestAgent 采用基于 RAG 接地的、基于角色的协作(侦察、分类、利用)来减少幻觉并改进下一步选择 [8]。此外,VulnBot 通过渗透任务图(PTG)构建协作以保持阶段顺序(侦察 → 扫描 → 利用)并约束分支;报告的结果包括在 AutoPenBench 上 30.3% 的整体和 69.05% 的子任务完成率,以及在 AI-Pentest-Benchmark 上的强劲性能 [9, 10, 11]。RefPentester [19] 引入了与阶段识别相关的知识 informed 自我反思,改进了对 Hack The Box 目标上失败操作的恢复。RapidPen 以 ReAct 风格的循环和漏洞利用知识检索为目标初始立足点(IP-to-shell),在几分钟内以 modest 成本展示了在 HTB 上的完全自主入侵 [20]。Weber 等人的工作 [21] 提出了 Perses,一个显著的努力,通过一个可扩展的、角色 specialized 的多 LLM 架构使小语言模型(SLMs)能够执行自动权限提升。Perses 表明,异质性——将轻量级模型分配给规划器、指挥官、总结器和领域特定的监督者——可以 substantially improve 对简单错误配置的利用。重要的是,Perses 中的评估范围狭窄:实验主要在 FreeBSD 目标上进行,使用有限且大部分手工制作的权限提升漏洞集,并使用针对配置错误而非广泛端到端攻击量身定制的威胁模型。因此,Perses 证明了 SLM 异质性在受限环境中的可行性,但留下了关于向完整渗透管道(侦察、扫描、多阶段利用)、复杂真实世界服务和异构网络拓扑的可转移性的开放性问题。
2.4 聚焦漏洞利用研究(单日、零日)和 CTF 风格智能体。
Fang 等人 [22] 表明,给定 CVE 描述,GPT-4 可以利用 15 个单日漏洞集中的 87%,而其他 LLMs 和扫描器 achieve 0%;没有描述,成功率显著下降(7%)。Zhu 等人 [23] 将范围扩展到用于零日 Web 漏洞的智能体团队(HPTSA),报告在 14 个真实世界案例上使用 GPT-4 达到 42% pass@5 和 18% pass@1。为了进行更广泛的技能评估,HackSynth 提出了一个双模块智能体和两个基于 CTF 的基准测试(PicoCTF/OverTheWire;200 个任务)[24],而 NYU CTF Bench (NeurIPS D&B) 贡献了一个可扩展的开源数据集和自动化框架(200 个 CSAW CTF 任务)[25]。
2.5 基准测试和方法论
AI 驱动的渗透测试的出现伴随着旨在衡量自主性、工具集成和受控条件下端到端性能的评估套件的快速激增。虽然该领域仍处于初期阶段,但一些基准测试已开始主导实验协议。值得注意的是,AutoPenBench 和 AI-Pentest-Benchmark 在最近的研究中出现最频繁,反映了它们与现实的、多阶段渗透测试工作流的一致性以及它们在自主性级别和子任务上分级性能的能力。相反,更专业的测试平台,如 CVE-Bench,针对特定的可利用性维度(例如,Web 环境中的真实世界 CVE),因此被专注于漏洞利用而非全周期编排的工作所采用。以夺旗赛(CTF)为导向的资源,如 NYU CTF Bench 和 HackSynth 引入的数据集,也获得了关注,特别是对于技能粒度或任务分解的评估,尽管它们的场景通常在范围和现实主义上与操作渗透测试不同。
在此背景下,AutoPenBench 提供开放的、分级的任务,涵盖 Web、网络和密码目标,具有可配置的自主模式,以支持编排策略和模型主干之间的比较 [10]。AI-Pentest-Benchmark 提供基于 VM 的目标,实现可重复的端到端渗透测试 [11],从而支持在发现、利用和后期利用阶段的性能归因。CVE-Bench 将评估建立在真实世界的 Web CVE 基础上,报告即使对于最先进的智能体,典型的成功率也较低,仅为百分之十几,突显了研究原型与鲁棒自主性之间的差距 [26]。这些工作中的方法论建议 increasingly emphasize 标准化预算约束、清晰标记自主性级别以及报告详细的错误模式,以防止高估能力 [27]。
2.6 我们工作的定位
相对于单智能体 PentestGPT [7] 和突破后 AutoAttacker [18],我们保留了类似于 PentestAgent/VulnBot [8, 9] 的多智能体/PTG 纪律,但在三个方面有所不同:(i) 优先考虑中等规模、开放主干网络,以实现成本效益高的本地部署;(ii) 采用灰盒阶段提示以保持阶段连续性同时限制漂移;以及 (iii) 在固定预算和子任务分解下,使评估与开放基底(AutoPenBench、AI-Pentest-Benchmark,以及在适用情况下的 CVE-Bench)对齐 [10, 11, 26, 27]。
表 1:代表性自动化渗透测试系统和基准测试的比较(网格线)。标准强调架构、范围、接地、工具、自主性和评估。
|
工作/系统名称 |
架构 (Arch.) |
范围/阶段 (Scope/Phase) |
基础/内存 (Grounding/Memory) |
工具使用 (Tool Use) |
评估与亮点 (Evaluation & Highlights) |
|---|---|---|---|---|---|
|
PentestGPT [7] |
SA (单智能体) |
Web+网络 (多阶段) |
SUM (模块摘要) |
解析扫描 → 命令合成 |
USENIX'24 案例/基准测试;模块化管道 |
|
AutoAttacker [18] |
SA (后渗透) |
突破后,操作安全现实主义 |
CTX (会话中) |
Shell, Metasploit |
模拟组织(Windows/Linux);多步攻击 |
|
PentestAgent [8] |
MA (多智能体) |
Web焦点 (外部评估) |
RAG + MEM |
扫描器, PoCs |
基准测试 + HTB;通过RAG减少幻觉 |
|
VulnBot [9] |
MA + PTG |
全周期 (侦察 → 利用) |
Phase SUM (PTG状态) |
Nmap, Nikto, Metasploit |
AutoPenBench (整体30.3%;子任务69.05%),AIPB best-of-six |
|
RefPentester [19] |
MA + RFL |
阶段感知分类/利用 |
反思 + 知识 |
标准工具链 |
HTB “Sau”: 相比GPT-4o基线提升+16.7% |
|
Perses [21] |
MA (多LLM) |
权限提升 |
HET (异构模型/任务) |
工具接地 (详见论文) |
FreeBSD 系统;小LLM焦点 |
|
RapidPen [20] |
SA (单智能体) |
IP → Shell (初始立足点) |
MEM + 漏洞利用检索 |
扫描 → 利用循环 |
HTB: 几分钟内获得自主shell;低成本 |
|
One-Day Agent [22] |
SA (单智能体) |
Web (单日CVE) |
CVE引导的CTX |
浏览器, 工具 |
87% (GPT-4, 带CVE描述);7% (无描述) |
|
HPTSA (Teams) [23] |
MA (分层/团队) |
Web (零日) |
规划器 + 专家 |
浏览器, 任务智能体 |
在14个真实漏洞上达到42% pass@5;18% pass@1 |
|
HackSynth [24] |
SA (2模块) |
CTF (200任务) |
规划器 + 总结器 |
沙盒工具 |
PicoCTF/OTW 基准测试;GPT-4o最佳 |
|
AutoPentest [28] |
MA (LangChain) |
黑盒 (枚举 → 利用) |
提示 + MEM |
标准扫描/利用 |
基于GPT-4o的原型;开放代码 |
|
CVE-Bench [26] |
Bench (基准测试) |
真实Web CVE |
– |
– |
SOTA (最先进) 智能体的成功率最高达13% |
|
AutoPenBench [10] |
Bench (基准测试) |
混合 (Web/网络/密码学) |
– |
– |
33个任务;自主性和里程碑评分 |
|
NYU CTF Bench [25] |
Bench (基准测试) |
CTF (CSAW; 200) |
– |
工具集成 |
NeurIPS D&B;开放数据集+自动化 |
|
本研究工作 |
MA + PTG |
全周期 (Web+网络) |
GBP + MEM |
广泛扫描/利用 |
APB, AIPB, (可选) CVEB;中等规模开源LLM |
2.7 要点。
结果取决于 (i) 接地质量(RAG/摘要/验证器)和 (ii) 编排纪律(角色/PTG/反思)。单智能体管道设定了基线;角色结构化的多智能体系统提高了可靠性;反思性和 IP-to-shell 变体在杀伤链末端推动自主性;单日/零日研究量化了发现与利用的局限性 [22, 23]。我们的方法强调在开放、可重复协议下 [10, 11, 26, 27],使用中等规模开放模型、PTG 结构和灰盒提示实现成本效益高、可重复的部署。
3 背景
3.1 自动化渗透测试
渗透测试旨在通过模拟在侦察、漏洞枚举、利用和权限提升等阶段的对抗行为来评估目标系统的安全性。手动执行是有效的,但受限于人力资源和可扩展性。自动化渗透测试(APT)通过智能体和机器学习模型编排这些阶段来解决这些局限性。
形式上,让 T 表示一个具有配置空间 𝒞 和攻击面 𝒮 的目标系统。一个自动化渗透测试操作可以表示为一个管道:
f: T ↦ {R, V, E, P} ↦ O
其中 R 是侦察结果(资产发现、服务映射),V 是检测到的漏洞,E 表示漏洞利用模拟结果,P 代表权限提升尝试,O 是结构化输出(报告、风险评分或攻击路径)。
此类管道类似于 MLOps 工作流,其中数据收集、模型推理和结果验证被持续编排。在这个类比中,侦察和漏洞扫描充当数据摄取,利用是模型推理,报告充当“评估”阶段。通过自动化此操作,APT 实现了可重复性、可扩展性以及与 CI/CD 安全管道的集成。
3.2 多智能体AI系统
多智能体系统(MAS)通过将每个渗透测试阶段分配给一个 specialized agent,为自动化渗透测试提供了一个自然的架构。例如:
-
侦察智能体: 枚举主机、端口和服务(类似于 VulnBot 的 'Recon Agent' [9])。
-
漏洞分析智能体: 将扫描数据与 CVE / CWE 知识库关联。
-
利用智能体: 生成并测试候选有效载荷。
-
报告智能体: 总结结果、攻击图和修复建议。
智能体通过任务管理器或内存模块进行通信,允许模块化和容错。像 CAMEL [29] 这样的框架表明,角色条件化的 LLM 智能体可以在复杂目标上有效协作。在我们的系统 xOffense 中,MAS 设计确保每个攻击任务由角色 specialized 的模型处理,同时保持全局协调。
3.3 基于LLM的攻击性智能体
在 MAS 内部,LLMs 提供推理、上下文理解和代码合成能力,这些与渗透测试工作流非常契合。核心问题是,给定攻击上下文 C(系统描述、日志、CVE),生成可操作的步骤或有效载荷 A,以最大化成功利用的可能性:
g: C ↦ A
尽管专有 LLMs(例如,GPT-4, Claude)提供了强大的性能,但它们引入了成本、可重复性和安全控制方面的限制。因此,我们采用开源模型,如 Qwen3,它支持本地部署、微调 and quantization (AWQ/INT4),使它们适用于敏感数据不能离开基础设施的攻击性研究环境。
为了减轻诸如幻觉或不安全输出等风险,LLM 智能体被沙盒化,并在结果被接受之前针对受控执行环境进行验证。
3.4 攻击性LLMs的微调方法
使 LLMs 适应攻击性安全任务需要超越一般预训练知识的专业化,并且已经探索了几种参数高效的微调方法,包括 Prefix-Tuning、基于 Adapter 的方法、低秩适应(LoRA)及其扩展 QLoRA。
Prefix-Tuning 或 P-Tuning v2 将任务特定的连续向量或令牌附加到输入提示。其优点在于简单性和非常低的内存占用,因为只有前缀嵌入被优化。然而,这种方法通常难以捕获更深层次的结构知识,并且当其推理需要多步工具交互或长上下文规划时,其有效性会减弱,这两者对于渗透测试都是必不可少的。
基于 Adapter 的方法在 transformer 层内插入小的可训练模块, enabling modular adaptation to new tasks。它们提供了良好的任务隔离,并且可以在不同领域重用相同的主干网络,而只需最少的额外参数。尽管如此,这些方法由于添加的模块而引入了额外的推理延迟,并且其有限容量使它们在嵌入高度领域特定的程序性知识(如漏洞利用推理或漏洞链)方面效果较差。
LoRA 及其扩展 QLoRA 将权重更新分解为低秩矩阵,显著减少了可训练参数的数量,同时保留了基础模型的表达能力。LoRA 在效率和性能之间取得了平衡:它比全微调所需的资源少得多,增加了可忽略的推理开销,并且可以有效地嵌入专业化知识而不擦除原始模型的通用推理能力。概念上,权重更新 ΔW 位于一个低秩子空间中:
ΔW = A B, A ∈ ℝ^(d×r), B ∈ ℝ^(r×k), r ≪ min(d,k)
并且在推理期间的有效权重是
W' = W + α A B
其中 α 是控制适应幅度的缩放因子。
考虑到在现实硬件约束下适应 32B 参数模型(如 Qwen3)的需要,本工作采用 LoRA 微调。这种方法可以有效地嵌入攻击性知识——涵盖漏洞模式、漏洞利用推理和有效载荷生成——同时保留基础模型的通用能力。详细的数据集构建和训练过程在第 4 节描述。
4 方法论
4.1 proposed framework概述
xOffense 是一个创新的、轻量级的自主渗透测试框架,设计用于在资源受限的环境中复制人类安全团队的协作动态。通过利用大约 320 亿参数的紧凑大型语言模型(LLMs),xOffense 消除了对商业 API 的依赖,实现了在标准硬件上的部署。该框架将复杂的渗透测试过程分解为三个精心设计的阶段——侦察、扫描和利用——通过 sophisticated 多智能体架构进行协调。包含五个核心组件——任务编排器、知识库、命令合成器、动作执行器和信息聚合器——xOffense 确保无缝的任务进展、鲁棒的信息管理和精确的执行。本节阐明了系统的架构、角色划分、任务协调、智能体间通信和执行机制,强调了其在以最小计算开销应对网络安全挑战方面的功效。
xOffense 的操作工作流,如图 1 所示,当用户提交渗透测试目标时启动,例如“识别 IP 192.168.X.X 上的漏洞并检索 root 级别标志”。此任务描述作为初始上下文传递给任务编排器以生成全面计划。编排器构建一个任务协调图(TCG),将渗透目标分解为具有明确定义依赖关系的结构化任务序列。为了增强上下文准确性,它通过检索增强生成(RAG)机制查询知识库——一个基于向量的数据库(取自 Langchain-Chatchat [30]),根据输入(如初始任务描述、当前任务的指令或最近的任务结果)检索相关的渗透知识。
TCG 中的每个任务都通过一个迭代循环进行处理,该循环涉及命令合成、执行、反馈分析和动态计划更新。使用轻量级 LoRA 技术微调的命令合成器将任务指令转换为精确的、工具特定的命令,由动作执行器使用 MemAgent 增强的上下文管理系统有效处理冗长输出来执行。执行后,任务结果被评估并 relayed 回编排器,编排器将任务标记为已完成或在失败时触发反思和重新计划。在完成一个阶段(例如,侦察)内的所有任务后,信息聚合器将输出合并为后续阶段(例如,扫描)的简明指令,确保上下文连贯性并最小化 token 开销。这种编排-执行-反馈循环一致地应用于所有三个阶段,每个阶段根据任务结果和环境反馈迭代地 refined 攻击路径。包括执行和重新计划的整体工作流稍后在算法 1 中形式化。工作流在成功达到定义的成功标准(如权限提升或标志检索)时终止。
(图 1 标题:xOffense 框架的整体架构)

4.2 角色专业化
为了 navigate 渗透测试的复杂性,xOffense 采用角色专业化策略,减轻信息过载的风险并确保跨阶段的上下文连贯性。通过将智能体分配给不同的角色,该框架优化了资源利用并保持了任务执行的精确性,解决了跨测试阶段的动态推理挑战。
-
侦察阶段: 智能体专注于全面的情报收集,编目网络配置、开放端口和服务详细信息。集成了诸如 Nmap [13](用于网络扫描)、Dirb [31](用于目录枚举)、Gobuster [32](用于暴力破解隐藏目录)和 Amass [33](用于子域发现)等工具。例如,一个任务可能执行
nmap -sV -p- <target-ip>来映射所有开放端口和服务,为后续阶段提供 robust 基础。 -
扫描阶段: 基于侦察洞察,扫描智能体使用诸如 Nikto [14](用于 Web 服务器分析)、WPScan [15](用于 WordPress 漏洞)、sqlmap [34](用于 SQL 注入测试)等工具进行全面的漏洞扫描,以识别漏洞和错误配置。此阶段优先考虑可利用的弱点以简化进展。
-
利用阶段: 智能体利用已识别的漏洞来获得未授权访问或提升权限, employing 诸如 Metasploit [4](用于漏洞利用开发)、Hydra [35](用于凭证暴力破解)、John the Ripper [36](用于密码破解)和 ExploitDB [37](用于获取漏洞利用脚本)等工具。例如,一个任务可能部署一个 Metasploit 模块来利用一个已知的 CVE,随后通过自定义脚本进行权限提升。
这种结构化的划分确保每个阶段都利用先前的发现, fostering 一个 cohesive 测试过程并减轻碎片化分析的风险。
4.3 任务协调与反思
任务协调图(TCG)及其集成的检查和反思机制构成了 xOffense 渗透路径规划的基石, enabling systematic task execution and adaptive plan refinement。这些组件解决了有限上下文窗口和不充分错误处理的挑战,确保了鲁棒和动态的测试工作流。它们的操作逻辑在算法 1、算法 2 和算法 3 中说明。
4.3.1 任务协调图
TCG 是一个结构化的无环有向图,定义为 G = (V, E),其中 V 代表单个任务,E 表示依赖关系,确保逻辑且无冲突的执行。每个任务节点 v ∈ V 封装了诸如下的属性:
-
指令(Directive): 清晰的指令,例如,“枚举 192.168.X.X 端口 80 上的服务”。
-
操作类型(Operation Type): 指定任务是涉及自动化 shell 命令(例如,nmap)还是手动干预。
-
先决条件(Prerequisites): 列出必须在执行前完成的任务,确保顺序完整性。
-
命令(Command): 由命令合成器生成的工具特定指令。
-
结果(Outcome): 执行结果,捕获工具输出或错误。
-
完成状态(Completion Status): 指示任务是已完成还是待处理。
-
成功状态(Success Status): 记录任务是否成功。
任务编排器以 JSON 兼容格式生成 TCG,并根据执行结果动态更新它。例如,一个旨在通过启动 SSH 连接尝试(针对与远程 shell 访问协议相关的特定服务端点)在 192.168.X.X 的端口 22 上执行用户身份验证的任务,取决于先前端口扫描任务的成功完成。后续任务,例如执行可写目录的详尽枚举以通过配置错误的权限或公共可写路径进行权限提升(
find / -writable 2>/dev/null)或列出正在运行的进程(ps aux),都取决于此身份验证。
图 2 说明了一个示例 TCG,左侧的 JSON 任务列表详细说明了指令、依赖关系和命令,右侧的依赖图显示了任务序列,箭头表示先决条件。这种形式主义提供了结构基础,稍后在算法 1 中用于迭代执行和反馈处理。
(图 2 标题:任务协调图(TCG)说明任务依赖关系和执行状态。完成的任务以深色显示,当前任务为橙色,待处理任务为浅蓝色。)

TCG 通过两个会话运作:
-
计划会话(Planning Session): 任务编排器构建一个针对目标系统特征和用户需求的初始行动计划。它将计划分解为结构化的任务列表,确保逻辑顺序和依赖关系对齐。计划根据执行反馈动态 refined,解决了跨阶段保持连贯上下文的挑战。
-
任务会话(Task Session): 此会话为每个任务生成详细指令,这些指令传递给命令合成器进行命令生成,并传递给动作执行器执行。它还评估执行结果,更新 TCG 的完成和成功状态,如算法 1 所示。
这种结构化方法确保了系统化的进展,减轻了顺序外执行的风险,并提高了资源受限环境中的效率。
4.3.2 检查与反思机制
错误命令的生成和缺乏有效的错误处理机制对基于 LLM 的渗透测试构成了重大挑战。xOffense 通过集成到任务编排器中的检查与反思机制来解决这些问题,实现持续的自我评估和计划优化。完整工作流在算法 1 中详述。
在任务会话期间,动作执行器评估任务结果并使用成功或失败状态更新任务协调图(TCG)。计划会话然后反思这些结果,修订任务指令并相应地更新 TCG。成功的任务被保留,而失败的任务触发重新分析过程,其中 LLM 使用更正的参数或替代策略重新生成命令。更新的计划与先前完成的任务合并以保持执行连续性,如算法 2 和算法 3 所示。
算法 1 检查与反思过程
1: 输入: TCG (任务协调图), 知识库 KR
2: while 并非所有任务都完成 do
3: t ← NextTask(TCG) // 获取下一个待处理任务
4: r ← Execute(t) // 执行任务 t
5: if CheckSuccess(r) then // 检查执行结果 r 是否成功
6: MarkCompleted(t) // 标记任务 t 为已完成
7: StoreEmbedding(t, r, KR) // 将任务 t 及其结果 r 的嵌入存储到知识库 KR
8: else
9: K ← RetrieveSimilar(t, KR) // 从知识库 KR 中检索与任务 t 相似的过去案例 K
10: t′ ← RegenerateTask(t, K) // 利用检索到的知识 K 重新生成任务指令 (得到 t')
11: MergeTasks(t′, TCG) // 将新生成的任务 t' 合并回 TCG
12: end if
13: UpdatePlan(TCG) // 更新整体计划
14: end while
计划更新与合并算法。
UpdatePlan 和 MergeTasks 过程是保持执行连续性的关键。 它们的正式伪代码显示在算法 2 和算法 3 中。
算法 2 UpdatePlan: LLM驱动的计划修订
1: 输入: 当前计划 P, 失败的任务 t, 结果 r
2: S ← 从 P 中成功完成的任务列表
3: F ← 从 P 中失败的任务列表
4: P_new ← LLMUpdatePlan(t, r, S, F) // 调用LLM,基于失败任务t及其结果r,以及已完成任务列表S和失败任务列表F,生成新计划P_new
5: P* ← MergeTasks(P, P_new) // 将旧计划 P 与新计划 P_new 合并得到最终计划 P*
6: return P*
算法 3 MergeTasks: 成功保留集成
1: 输入: 旧计划 P_old, 新计划 P_new
2: C ← 从 P_old 中成功完成的任务集合
3: M ← 空列表 // 用于存储合并后的任务列表
4: for all τ ∈ C do // 遍历所有旧计划中已成功完成的任务τ
5: if τ 的指令不在 P_new 中 then // 如果新计划中没有包含τ相同指令的任务
6: 将 τ(重置其依赖关系后)追加到 M // 保留这个已完成的任务
7: end if
8: end for
9: for all τ^ ∈ P_new do // 遍历新计划 P_new 中的所有任务 τ^
10: if τ^ 的指令与 C 中的某个任务匹配 then // 如果新计划中的任务指令与旧计划中某个已完成任务相同
11: 重用已完成的那个任务(并更新其依赖关系) // 不再重复执行,直接使用旧结果
12: else
13: 将 τ^ 作为一个新任务追加到 M // 添加新计划中的新任务
14: end if
15: end for
16: 更新 M 中的任务序列号
17: return 合并后的计划(包含任务列表 M)
知识库通过在执行计划更新期间协助任务编排器来间接支持此机制。它存储先前成功任务的嵌入和精选的渗透测试知识(例如,来自 HackTricks [38] 和 HackingArticles [39] 等来源的利用技术、权限提升方法和工具使用教程)。当重新计划时,任务编排器查询此知识库,使用向量相似性搜索检索前 k 个最相关的过去案例。检索到的结果被重新排序并集成到修订后的 TCG 中,确保更新受益于先前的成功。这种集成增强了对幻觉命令的恢复能力,改进了错误恢复,并在迭代渗透测试阶段保持了效率。
4.4 智能体间通信机制
智能体之间的无缝协调对于在侦察、扫描和利用阶段保持上下文连贯性至关重要,特别是考虑到紧凑型 LLMs 的有限上下文窗口。xOffense 采用信息聚合器来促进高效的通信,将冗长的输出合并为简洁、可操作的摘要,以优化 token 使用并防止信息过载。整个通信管道在算法 4 中可操作化。
例如,侦察输出——如开放端口(例如,22, 80, 443)、服务版本和系统指纹——被合成为扫描阶段的紧凑指令,使能够使用 Nikto 或 sqlmap 等工具进行 targeted 漏洞检测。类似地,扫描输出,例如由 sqlmap 识别的 SQL 注入漏洞或由 Nuclei 检测到的错误配置,被总结以指导利用阶段优先处理相关的漏洞利用。
信息聚合器维护一个持久化的 shell 状态日志,跟踪访问级别(例如,通过 SSH 获得的低权限用户帐户)和系统上下文(例如,操作系统类型)。此日志确保跨阶段的连续性,减轻上下文丢失的风险,并 enabling 发现的动态集成。通过过滤前驱阶段的输出以专注于关键洞察,该机制最小化了计算开销,确保了在 32B 参数 LLM 上的高效操作。这种简化的通信 foster 了一个 cohesive 测试过程,解决了跨多个阶段合成信息的挑战。
算法 4 通过PlannerSummary进行智能体间通信
1: 输入: 阶段序列 P = {p1, p2, …, pn}, Shell 状态日志 S
2: for i = 1 to n-1 do // 遍历每个阶段直到倒数第二个
3: // 步骤 1: 收集并总结前一阶段的结果
4: history_ids ← GetPlannerIDs(pi) // 获取属于阶段 pi 的所有规划器ID
5: if |history_ids| == 0 then // 如果该阶段没有规划器历史
6: context ← “” // 上下文为空
7: else
8: summary ← "Previous Phase:\n" // 初始化摘要字符串
9: for each id in history_ids do // 遍历该阶段的每个规划器
10: plan ← get_planner_by_id(id) // 根据ID获取规划器对象及其计划
11: for each task in plan.finished_tasks do // 遍历该计划中所有已完成的任务
12: summary ← summary || "Instruction: " + task.instruction // 拼接任务指令
13: summary ← summary || "Code: " + task.code // 拼接任务代码(命令)
14: summary ← summary || "Result: " + task.result // 拼接任务结果
15: summary ← summary || "\n------\n" // 添加分隔符
16: end for
17: end for
18: context, _ ← callLLM(query=write_summary + summary, summary=False) // 调用LLM总结冗长的摘要内容,生成简洁的上下文 context
19: end if
20: // 步骤 2: 将总结后的上下文发送给下一阶段的规划器
21: InitPlanner(p_i+1, context=context, state=S) // 初始化下一阶段 p_i+1 的规划器,传入总结的上下文 context 和当前的 shell 状态 S
22: end for
4.5 生成行为与执行
xOffense 支持三种操作模式——自动、半自动和手动——其中自动模式支持完全自主测试。命令合成器将 TCG 指令转换为精确的、工具特定的指令, tailored to the target system and phase,解决了准确命令生成的挑战。
例如,一个侦察指令可能产生 nmap -sS -p 22,80,443 <target-ip>用于隐形扫描,而一个扫描任务可能产生 sqlmap -u http://<target-ip>/login --batch来测试 SQL 注入漏洞或 nikto -h http://<target-ip>用于 Web 服务器分析。在利用阶段,命令如 Metasploit 中的 use exploit/windows/smb/ms17_010_eternalblue。
动作执行器通过 Python Paramiko 基于的交互式 shell 在 Kali Linux 环境中运行这些命令,以高保真度模拟人类交互。该组件无缝处理由命令合成器生成的工具特定指令, enabling 通过模拟键盘操作与目标系统进行鲁棒交互。动作执行器针对 Qwen3-32B 模型进行了优化,该模型尽管有其受限的 16,384 token 上下文窗口,但集成了创新的 MemAgent [40] 框架来有效处理扩展上下文。利用 MemAgent 的基于片段处理和强化学习(RL)优化的内存机制(如参考文献中所述),动作执行器通过迭代地分块读取命令结果并更新固定长度内存来处理任意长的输出。这种方法确保了线性计算复杂度,允许 xOffense 管理冗长的工具输出而不会性能下降, even beyond the Qwen3-32B’s native context limit。为了应对过多或冗余输出的挑战,一个复杂的过滤机制采用 MemAgent 增强的 LLM 在结果超过 8,000 字符时提取关键信息,仅保留可操作的洞察用于分析。这些洞察被传递给任务编排器进行进一步处理,确保上下文连贯性并最小化计算开销。通过 incorporate MemAgent 选择性保留相关数据同时丢弃干扰物的能力,动作执行器增强了系统的效率和可扩展性, enabling 在资源受限环境中进行鲁棒渗透测试,并 contribute to xOffense’s capability to handle complex, long-context workflows with precision。
5 实验设置与评估
为了全面评估 xOffense 的有效性和实用性,我们设计了一个全面的实验设置,不仅评估任务完成率,还评估系统在现实渗透测试条件下的可扩展性、适应性和效率。本节详细介绍了实验设置、模型、微调方法、基准数据集、评估指标,并提供了实证结果的深入分析。
5.1 实验设置
5.1.1 环境
攻击者环境
所有渗透测试实验都是从一台专用的攻击者机器上执行的,该机器配置为运行 Kali Linux 2025 [41] 的 VMware 虚拟工作站。选择 Kali 是因为其全面的渗透测试工具包和与行业标准工作流的兼容性。该虚拟化攻击者主机配备了 8 个 vCPU、16 GB RAM 和 120 GB 存储,确保了攻击工具和 xOffense 多智能体框架在单一环境中的稳定执行。
受害者环境
部署了两种类型的目标环境,对应于基准数据集:
-
AUTO-PEN-BENCH [10]: 任务被实例化为 Docker 容器,这些容器托管在一个单独的虚拟机上,以避免与攻击者主机的资源争用。该受害者 VM 配置为 4 个 vCPU、8 GB RAM 和 80 GB 存储,并与攻击者机器置于同一 NAT 网络中以确保直接连接。
-
AI-Pentest-Benchmark [11]: 易受攻击的机器直接从官方 VulnHub 发行版导入,并作为 VMware 虚拟机执行,未修改其默认规格,以保留原始利用条件。所有机器都被分配到与攻击者主机相同的 NAT 网络中以保证一致的通信。
5.1.2 模型服务
经过微调的模型,即 Qwen3-32B-finetune,托管在一个专用的计算节点上,该节点配备了一块 NVIDIA A100 GPU(80 GB VRAM)。相同的硬件也在微调过程中使用以加速训练效率。对于推理,模型通过一个经由 ngrok 隧道的 API 端点暴露,允许攻击者机器将模型作为外部服务进行交互。这种分离确保了 LLM 推理不与渗透测试任务竞争系统资源,同时也复制了模型通常被远程服务的现实部署条件。
5.1.3 评估的模型
评估考虑了商业和开源大型语言模型,以提供全面的基线。具体来说,我们包括了 GPT-4o、Llama3.3-70B、Llama3.1-405B 和 DeepSeek-V3。对于开源中等规模模型,我们评估了 Qwen3-32B-base,它在效率和能力之间提供了良好的平衡。在此基础上,我们将模型微调为 Qwen3-32B-finetune,专门用于 xOffense 中的渗透测试任务。所有模型都在温度设置为 0.5 的情况下进行评估,以平衡确定性输出和生成灵活性,确保自动化渗透测试场景中的一致性。
5.2 微调方法
与需要大量计算开销的传统大规模模型适应不同,xOffense 利用 LoRA(低秩适应) 来实现领域专业化。LoRA 通过冻结基础模型的权重并仅训练一紧凑的适配器矩阵集来减少参数占用。这种方法将可训练参数的数量显著降低了超过 99%,即使在标准 GPU 基础设施上也能实现高效微调。
为了进一步解决处理 32B 参数模型的内存瓶颈,我们采用 DeepSpeed ZeRO-3 [42] 优化。ZeRO-3 跨多个 GPU 划分模型状态——包括优化器、梯度和参数——实现线性可扩展性。此外,集成了 FlashAttention v2 [43] 以优化注意力计算,减少内存使用并将训练加速高达 3 倍,与标准注意力实现相比。这些组合技术使我们能够高效地微调 Qwen3-32B 用于渗透测试工作负载,并显著降低硬件需求。微调数据集包含两个主要语料库,如下所述:
-
PentestData: 该数据集经过精心策划,包含领域特定的问答对,每个问答对都丰富了合成的思维链(CoT)推理轨迹。推理步骤封装在
<think>标签内,使模型能够学习结构化的、逐步的逻辑推理过程,专为渗透测试场景量身定制。为了构建 PentestData,我们汇总并标准化了来自领先网络安全平台(包括 TryHackMe [44]、HackTheBox [45] 和 VulnHub [46])的超过 1000 台机器的报告。这些报告经过系统处理,以提取特定任务的推理路径、利用程序和与攻击性安全操作相关的决策序列。此外,我们还从 HuggingFace Datasets Hub [47] 中补充了额外的渗透测试数据集,重点关注网络安全知识库、渗透测试技术以及常用安全工具的实用指南。这种全面的集成确保 PentestData 成为在自主渗透测试工作流中训练模型的强大而多样的资源。 -
WhiteRabbitNeo: 一个高质量的 JSONL 格式数据集,包含指令-响应对,专门为网络安全任务策划。尽管原始数据集缺乏显式的思维链(CoT)推理注释,但在预处理过程中通过为每个样本附加空的
<think>标签进行了标准化。这种结构统一确保了与 CoT 增强训练管道的兼容性,并便于后续微调以获得逐步推理能力。该数据集源自真实世界的攻击性和防御性网络安全场景,涵盖利用技术、有效载荷制作和红队/蓝队交互,来源于 WhiteRabbitNeo 社区贡献 [48]。
5.3 基准数据集
为确保严格且具有实际相关性的评估,我们选择了两个互补的基准测试,涵盖合成漏洞和现实的多阶段利用场景。
AutoPenBench
该基准测试定义了总共 33 个渗透测试任务,涵盖指导性的“体外”练习和真实世界的 CVE。体外集(22 个任务)反映了行业排名(如 OWASP Top 10)中经常强调的基本漏洞类别,包括弱访问控制(例如,配置错误的 sudo、全局可写的 shadow 文件)、Web 应用程序缺陷(例如,路径遍历、SQL 注入、文件上传 RCE)和不安全的网络配置(例如,SNMP 配置错误、ARP 欺骗)。此外,四个密码学任务评估了对不当或弱加密实现的抵抗力,例如暴力破解 Diffie-Hellman 密钥。除了这些教育任务外,该基准还包含了 11 个从 2014 年到 2024 年的真实世界 CVE,其 CVSS 分数在 7.5 到 10.0 之间。这些包括因其影响和普遍性而广受认可的关键漏洞,例如 Log4Shell (CVE-2021-44228)、Heartbleed (CVE-2014-0160)、SambaCry (CVE-2017-7494) 和 Spring4Shell (CVE-2022-22965)。通过结合基础类别和关键 CVE,AUTOPENBENCH 提供了一个结构化且现实的环境,以评估智能体是否能够从基本利用过渡到处理历史上主导真实世界攻击活动的高严重性漏洞。
AI-Pentest-Benchmark.
虽然 AutoPenBench 专注于容器化漏洞,但 AI-Pentest-Benchmark 在从 VulnHub 提取的 13 个真实世界易受攻击机器上评估 AI 智能体的完整端到端利用工作流。这些机器按难度分为简单(例如,Victim1, Library2, Funbox, WestWild)、中等(例如,Cengbox2, Devguru, Symfonos2)和困难(例如,Insanity, TempusFugit)。每台机器定义了一组结构化的侦察、利用、权限提升和通用技术子任务,总共 152 个任务。这些机器中嵌入的漏洞反映了常见的渗透测试场景,包括 Web 应用程序缺陷(SQL 注入、XSS、CSRF/SSRF)、网络服务弱点(FTP/AD 枚举、暴力认证)、代码级问题(反序列化、命令注入)和后利用技术(cronjob 分析、配置错误的系统文件、通过用户访问利用进行权限提升)。值得注意的是,许多这些任务直接映射到 CWE Top 25 和 OWASP Top 10 中反复出现的弱点类别,确保在该基准上的成功对应于实际攻击性安全操作中相关的能力。该基准特别具有挑战性,因为最终目标是获得每台机器的 root 访问权限,这需要跨侦察、利用和权限提升阶段进行连贯的推理。先前的研究表明,即使是大规模的专有模型,如 GPT-4o 和 Llama3.1-405B,在没有人工协助的情况下也无法实现 root 级入侵,这突显了该基准的难度和现实性。
5.4 评估指标
为了评估 xOffense 的性能,我们采用了三个互补的指标,这些指标捕获了高级任务成功和细粒度子任务鲁棒性。
5.4.1 总体任务完成率
该指标衡量在允许的交互预算内成功入侵(即获取标志)的目标机器的百分比。形式化地:
总体率 = (# 被入侵的机器) / (# 总机器)
这提供了一个粗粒度的视图,表明一个智能体是否能够跨类别(如访问控制 (AC)、Web 安全 (WS)、网络安全 (NS)、密码学 (CRPT) 和真实世界任务)实现端到端利用。
5.4.2 子任务完成率 (1 次实验)
为了深入了解渗透测试的中间阶段,我们评估子任务成功率(例如,服务枚举、漏洞检测)。每个基准定义了一组子任务 S。一个子任务如果在其五次独立运行中至少完成了一次,则被认为是成功的:
Subtask-1Exp = |{ s ∈ S | ∃ i ∈ [1,5], success(s,i) }| / |S|
该指标突出了智能体最终解决子任务的能力,即使并非在所有运行中都一致成功。
5.4.3 子任务完成率 (5 次实验)
为了衡量鲁棒性和一致性,我们还计算了所有五次运行的累积完成率。在这种情况下,我们计算所有实验中成功的子任务总数,并除以最大可能的成功数进行归一化:
Subtask-5Exp = (∑_{i=1}^5 successes(i)) / (5 × |S|)
这个更严格的指标奖励那些不仅成功一次而且能在独立执行中重复完成子任务的智能体。
6 评估与结果
6.1 实验场景
我们设计了五个实验场景,以在合成和真实世界设置中全面评估 xOffense:
-
场景 1: 在 AutoPenBench 上的总体任务完成情况,测量跨 AC、WS、NS 和 CRPT 类别的完整机器入侵。
-
场景 2: 在 AutoPenBench 上的子任务完成情况(1 次实验),其中一个子任务如果在五次运行中至少解决了一次则被认为是成功的。
-
场景 3: 在 AutoPenBench 上的子任务完成情况(5 次实验),汇总所有五次运行中成功的子任务以捕获一致性。
-
场景 4: 在没有 RAG 的 AI-Pentest-Benchmark 上进行真实世界利用,使用六台具有代表性的 VulnHub 机器。
-
场景 5: 在有 RAG 的 AI-Pentest-Benchmark 上进行真实世界利用,突出检索对复杂利用链的贡献。
6.2 跨渗透测试类别的任务完成性能
6.2.1 总体任务完成性能
表 2:目标机器上的总体任务完成率。我们的微调模型表现出卓越的性能,尤其是在 AC、NS 和真实世界类别中。
|
类别 |
GPT-4o |
Llama3.3-70B (VulnBot) |
Llama3.1-405B (VulnBot) |
Llama3.1-405B (PentestGPT) |
Qwen3-32B (Base) |
Qwen3-32B-finetune (Ours) |
|---|---|---|---|---|---|---|
|
AC |
1 (20.00%) |
1 (20.00%) |
3 (60.00%) |
1 (20.00%) |
2 (40.00%) |
5 (100.00%) |
|
WS |
2 (28.57%) |
1 (14.29%) |
2 (28.57%) |
0 (0.00%) |
2 (28.57%) |
5 (71.42%) |
|
NS |
3 (50.00%) |
2 (33.33%) |
2 (33.33%) |
2 (33.33%) |
3 (50.00%) |
5 (83.33%) |
|
CRPT |
0 (0.00%) |
0 (0.00%) |
0 (0.00%) |
0 (0.00%) |
0 (0.00%) |
3 (75.00%) |
|
真实世界 |
1 (9.09%) |
2 (18.18%) |
3 (27.27%) |
0 (0.00%) |
3 (27.27%) |
6 (54.54%) |
|
ALL |
7 (21.21%) |
6 (18.18%) |
10 (30.30%) |
3 (9.09%) |
10 (30.30%) |
24 (72.72%) |
表 2 展示了所有评估模型在 AUTO-PEN-BENCH 数据集上的总体任务完成率。经过微调的 Qwen3-32B-finetune 模型实现了显著的 72.72% 完成率, substantially outperforming 其基础变体 Qwen3-32B-base (30.30%) 以及其他最先进的模型,包括 GPT-4o (21.21%)、Llama3.1-405B (Paper) (30.30%) 和 PentestGPT (9.09%)。
Qwen3-32B-finetune 与其基础版本之间的性能差异尤其值得注意。尽管具有相同的模型架构和参数大小(320 亿参数),领域特定的微调使任务完成率提高了 2.4 倍。这验证了我们的轻量级 LoRA 微调管道在使通用模型适应 specialized 渗透测试工作流方面的有效性。
在访问控制 (AC) 类别中,Qwen3-32B-finetune 实现了 100% 的成功率,与 Qwen3-32B-base (40.00%) 和 Llama3.1-405B (Paper) (60.00%) 形成鲜明对比。类似地,在网络安全 (NS) 方面,我们的模型实现了 83.33% 的完成率,超过了所有基线,包括 Llama3.3-70B (33.33%) 和 Qwen3-32B-base (50.00%)。值得注意的是,即使在复杂的真实世界类别中,Qwen3-32B-finetune 也达到了 54.54% 的成功率,优于 Qwen3-32B-base (27.27%) 和 PentestGPT (0.00%)。
这些发现表明,在领域相关的 CoT 数据上进行微调并结合鲁棒的任务编排机制,可以使一个量化的、资源高效的模型在 specialized 场景中匹配甚至超越更大、更通用的 LLMs 的能力。跨类别的持续优异表现进一步验证了我们微调策略的鲁棒性,特别是在计算高效的 AWQ 量化方面。
6.2.2 子任务完成性能 (1 次实验)
为了评估更细粒度的能力,我们在单次运行实验中评估了子任务完成情况(表 3)。术语“1 次实验”指的是五次实验中的总体子任务完成率,其中如果一个子任务在至少一次实验中成功,则被认为是成功的。Qwen3-32B-finetune 实现了 79.17% 的子任务完成率,以 10.12% 的差距优于 Llama3.1-405B (Paper) (69.05%)。这个差距是显著的,特别是考虑到 Llama3.1-405B 是一个更大(405B 参数)且以其原生配置运行的模型。
表 3:子任务完成率 (1 次实验) 。Qwen3-32B-finetune 在所有类别中显示出最高的完成率。
|
类别 |
Llama3.3-70B (VulnBot) |
Llama3.1-405B (VulnBot) |
Llama3.3-70B (Base) |
Llama3.1-405B (Base) |
Llama3.1-405B (PentestGPT) |
Qwen3-32B (Base) |
Qwen3-32B-finetune (Ours) |
|---|---|---|---|---|---|---|---|
|
AC |
25 (11.90%) |
31 (14.76%) |
16 (7.62%) |
21 (10.00%) |
20 (9.52%) |
26 (8.20%) |
46 (14.51%) |
|
WS |
24 (11.43%) |
30 (14.29%) |
22 (10.48%) |
26 (12.38%) |
18 (8.57%) |
28 (8.83%) |
38 (11.98%) |
|
NS |
12 (5.71%) |
11 (5.24%) |
10 (4.76%) |
9 (4.29%) |
6 (2.86%) |
11 (3.47%) |
15 (4.73%) |
|
CRPT |
15 (7.14%) |
18 (8.57%) |
17 (8.10%) |
18 (8.57%) |
12 (5.71%) |
22 (6.94%) |
38 (11.98%) |
|
真实世界 |
49 (23.33%) |
55 (26.19%) |
29 (13.81%) |
29 (13.81%) |
28 (13.33%) |
79 (24.92%) |
114 (35.96%) |
|
ALL |
125 (59.52%) |
145 (69.05%) |
94 (44.76%) |
103 (49.05%) |
84 (40.00%) |
166 (52.36%) |
251 (79.17%) |
在真实世界类别中,Qwen3-32B-finetune 实现了 35.96% 的子任务完成率,是 Qwen3-32B-base (24.92%) 的两倍多,并且优于 Llama3.1-405B (Paper) (26.19%)。类似地,在 CRPT 类别中,微调模型比 Llama3.1-405B (Paper) 提高了 3.41%。
有趣的是,虽然 Qwen3-32B-base 取得了中等结果 (52.36%),但其与 Qwen3-32B-finetune (79.17%) 的性能差距说明了领域适应的关键作用。基础模型虽然能够处理一般安全任务,但在多步推理和上下文连贯性方面挣扎,尤其是在链式利用场景中。微调模型的卓越性能证实了其 CoT 驱动的提示对齐和 RAG 辅助的知识检索机制在执行复杂任务序列方面提供了切实的优势。
6.2.3 子任务完成性能 (5 次实验)
为了评估鲁棒性和稳定性,我们进行了五次运行的汇总实验(表 4)。术语“5 次实验”表示在所有五次实验中完成的子任务数量。Qwen3-32B-finetune 保持了领先地位,子任务完成率为 60.94%,显著优于 Llama3.1-405B (Paper) (49.90%) 和 Qwen3-32B-base (23.03%)。这种鲁棒性在实际的渗透测试工作流中至关重要,其中由于环境噪声和复杂的任务依赖性导致的方差通常会降低模型性能。
表 4:子任务完成率 (5 次实验) 。我们的模型保持了显著领先,证明了鲁棒性和一致性。
|
类别 |
Llama3.3-70B (VulnBot) |
Llama3.1-405B (VulnBot) |
Llama3.3-70B (Base) |
Llama3.1-405B (Base) |
Llama3.1-405B (PentestGPT) |
Qwen3-32B (Base) |
Qwen3-32B-finetune (Ours) |
|---|---|---|---|---|---|---|---|
|
AC |
87 (8.29%) |
107 (10.19%) |
46 (4.38%) |
61 (5.81%) |
27 (2.57%) |
60 (3.78%) |
212 (14.51%) |
|
WS |
106 (10.10%) |
116 (11.05%) |
83 (7.90%) |
66 (6.29%) |
40 (3.81%) |
70 (4.42%) |
173 (10.91%) |
|
NS |
41 (3.90%) |
40 (3.81%) |
36 (3.43%) |
22 (2.10%) |
15 (1.43%) |
10 (0.63%) |
71 (4.67%) |
|
CRPT |
65 (6.19%) |
75 (7.14%) |
68 (6.48%) |
44 (4.19%) |
43 (4.10%) |
70 (4.42%) |
176 (11.10%) |
|
真实世界 |
166 (15.81%) |
186 (17.71%) |
99 (9.43%) |
67 (6.38%) |
56 (5.33%) |
155 (9.78%) |
334 (21.07%) |
|
ALL |
465 (44.29%) |
524 (49.90%) |
332 (31.62%) |
260 (24.76%) |
181 (17.24%) |
365 (23.03%) |
966 (60.94%) |
在访问控制 (AC) 类别中,Qwen3-32B-finetune 取得了显著的 14.51%,比 Llama3.1-405B (Paper) 高出 4.32%。对于 Web 安全 (WS),我们的模型达到 10.91%,以显著优势优于所有基线。值得注意的是,即使在任务链固有波动的类别中——例如真实世界——微调模型也实现了 21.07%,而 Llama3.1-405B (Paper) 为 17.71%,Qwen3-32B-base 仅为 9.78%。
虽然从单次实验运行到汇总运行观察到性能下降了约 18%,但由于任务复杂性增加和自主渗透测试中固有的随机失败,这是预期的。尽管如此,微调模型在这些迭代中的一致性强调了其鲁棒性,特别是与 PentestGPT 在相同设置下 17.24% 的子任务完成率相比。
6.2.4 比较见解
从这些实验中得到的一个关键观察是,通过微调实现的性能飞跃与模型大小不成比例。尽管是一个 32B 参数的模型,Qwen3-32B-finetune 在每一项评估指标上都 consistently outperformed 更大的对手,如 Llama3.1-405B(405B 参数)。这验证了我们的假设,即任务编排、RAG 驱动的上下文增强和参数高效的调优技术(LoRA + ZeRO-3 + FlashAttention)可以弥合传统上与纯粹模型大小相关的性能差距,并在 specialized 场景中超越它。
此外,Qwen3-32B-base 和 Qwen3-32B-finetune 之间的差距 exemplify 了在 specialized 渗透测试工作流中使用通用 LLMs 而无需领域适应的不足。基础模型尽管架构相同,但缺乏进行复杂攻击路径规划所需的推理深度和上下文连贯性,导致任务和子任务完成率较低。
6.3 复杂真实世界利用链的评估
6.3.1 无检索增强生成(无 RAG)的性能
为了评估我们提出的 xOffense 系统在现实攻击性安全场景中的基线能力,我们在与 VulnBot [9] 评估中使用的相同的六台真实世界易受攻击机器上进行了实验:Victim1, Library2, Sar, WestWild, Symfonos2, 和 Funbox。这套机器——最初源自 AI-Pentest-Benchmark——涵盖了多样化的利用挑战,包括错误配置、弱认证、远程代码执行、权限提升和多步攻击链。通过采用这套相同的机器,我们确保了方法上的一致性,并能够与先前的工作进行直接、公平的比较。
实验在完全自主模式下进行,没有任何人工干预或检索增强生成(RAG)支持。每台目标机器进行了五次独立运行,报告的性能代表了每台机器的最佳子任务完成率,遵循 AI-Pentest-Benchmark 评分方法。图 3 展示了多个模型的比较结果,包括 VulnBot-Llama3.1-405B、VulnBot-DeepSeek-v3、它们各自的基础模型以及我们提出的 Qwen3-32B 变体(基础和微调)。
结果揭示了几个值得注意的模式。首先,Qwen3-32B-finetune 在所有六台机器上 consistently surpasses 其基础对手,在 Victim1 (+0.55)、Library2 (+0.30) 和 WestWild (+0.63) 上 improvement 尤为显著。这些收益凸显了领域特定微调在增强模型利用推理和程序鲁棒性方面的有效性。其次,虽然 VulnBot-DeepSeek-v3 仍然具有高度竞争力——在 Victim1 (0.83) 和 WestWild (0.71) 上取得了最高分——但我们微调的 Qwen3-32B 在大多数其他机器上取得了相当或更优的性能,包括在 Sar (0.58) 和 Funbox (0.54) 上领先。
值得注意的是,性能差异与利用链的复杂性 strongly correlated。诸如 Symfonos2 和 Funbox 这样的目标,需要多阶段权限提升和利用非平凡服务配置, clearly benefit from 通过微调引入的增强上下文推理。这一观察强调了模型专业化在应对真实世界渗透测试环境固有不可预测性和多样性方面的关键作用。总之,无 RAG 评估证实了 xOffense-Qwen3-32B-finetune 可以在现实攻击性安全场景中自主实现有竞争力的、在某些情况下是最先进的性能,即使没有外部检索增强。这为后续的 RAG 增强评估建立了一个鲁棒的性能基线。
(图 3 标题:在无 RAG 设置下,六台真实世界易受攻击机器上的子任务完成率比较。)

6.3.2 带检索增强生成(RAG)的性能
当使用知识库模块增强评估时, across the six real-world exploitation targets 出现了显著的性能趋势转变(见图 4)。与基线(无 RAG)相比,Qwen3-32B-Finetune 模型表现出明显的 improvement,在 Victim1 和 WestWild 上实现了完美的完成分数 (1.00),并在 Library2 (+0.20) 和 Symfonos2 (+0.16) 上取得了显著收益。类似地,在 Sar 和 Funbox 上观察到适度增加,反映了模型在得到有针对性的、上下文相关的先验知识支持时,导航多步攻击链的能力增强。
(图 4 标题:在 RAG 设置下,六台真实世界易受攻击机器上的子任务完成率比较。)

对于 Qwen3-32B-Base,收益不太明显,在具有挑战性的目标(如 Symfonos2 (0.13) 和 WestWild (0.25))上性能仍然相对较低。这种差距强调了微调在最大化检索增强效益方面的作用——如果没有与领域特定利用策略对齐,仅检索到的信息不足以确保一致的执行成功。与 VulnBot 基线相比,带有 RAG 的 Qwen3-32B-Finetune 在六分之四的目标上取得了有竞争力或更优的结果,在 Library2 (0.80) 上匹配了最佳基线性能,并在 Victim1 和 WestWild 上超越了它。这表明 RAG 集成不仅缓解了基础模型的局限性,而且使微调变体能够缩小差距——或在某些场景中,超越——人工辅助框架。
这些改进可归因于三个关键因素:(1) 检索器从精选的网络安全语料库中提取高相关性利用程序的能力,(2) 微调模型将外部信息整合成连贯多步推理的能力,以及 (3) 减少了幻觉驱动的死胡同,这在受限的利用环境中尤其有害。总的来说,这些发现强化了这样一种观点,即 RAG 是在复杂真实世界设置中实现可扩展、高保真自动化渗透测试的关键推动力。
7 有效性威胁
7.1 内部有效性
在思维链(CoT)丰富的渗透测试数据集上对 Qwen3-32B 进行微调引入了潜在的内部威胁。某些漏洞类别和利用策略在数据集中比例失调,这可能使模型偏向于特定的攻击向量,同时限制其泛化到代表性不足场景的能力。此外,提示策略和工具链的集成可能嵌入隐含的任务特定启发式方法,这增加了所报告的改进部分反映数据集伪影而非真正推理能力的可能性。在解释结构化基准测试上的性能收益时必须考虑这些因素。
7.2 外部有效性
评估设置——AutoPenBench 和 AI-Pentest-Benchmark——近似于现实的渗透工作流,但不能完全捕捉生产级环境的异构性。运营网络通常在拓扑结构、非标准配置、主动防御和欺骗机制方面表现出更大的可变性,而这些在当前基准测试中仍然缺失。此外,对抗性战术会随时间演变,而基准测试必然是静态的。因此,结果对企业系统、异构基础设施或零日利用场景的泛化性应谨慎看待。
7.3 构建有效性
任务完成率和利用成功率被用作主要评估指标。虽然适用于量化功能有效性,但这些措施忽略了渗透测试实践中核心的其他维度。诸如隐蔽性、资源利用效率、入侵时间以及对检测的弹性等属性对于操作现实主义至关重要,但在采用的基准测试中仍未计入。此外,二元成功度量无法捕捉部分进展或增量入侵,可能掩盖复杂利用链中智能体行为的细微差别。
7.4 可靠性
结果的再现性可能会受到大型语言模型推理和辅助系统工具中固有随机因素的影响。硬件差异、运行时条件、网络延迟以及来自扫描实用程序的非确定性输出即使在相同输入下也可能产生不同的智能体行为。标准化配置和重复试验 mitigate 这些影响,但并不能完全消除它们,这意味着跨平台或长时间段的复制可能会观察到不可忽略的方差。
7.5 总结
总之,尽管报告的结果提供了 xOffense 能力的强有力的证据,但这些有效性 concerns 强调了进行更广泛实证验证的必要性。将评估扩展到涵盖更多样化的基础设施、对抗性自适应防御和更丰富的性能指标,将增强自主渗透测试系统的鲁棒性、可扩展性和实际适用性。
8 结论与未来工作
本工作提出了 xOffense,一个独立的、完全自主的多智能体渗透测试框架,旨在解决现有系统(如上下文丢失、有限的推理连续性以及对大型专有模型的依赖)中的持久局限性。通过集成一个经过微调的中等规模开源 LLM (Qwen3-32B)、一种新颖的灰盒阶段提示机制和一个专门构建的编排架构,xOffense 在整个渗透测试生命周期中实现了准确的多阶段决策和鲁棒的工具集成。
我们在 AutoPenBench 和 AI-Pentest-Benchmark 上的评估表明,xOffense consistently outperforms 更大的商业 LLMs(例如,GPT-4o, LLaMA3-70B)和领先的开源基线(例如,PentestGPT, VulnBot-LLaMA3-405B)。该框架实现了 72.72% 的总体任务完成率和高达 79.17% 的子任务完成率,同时成功利用了复杂的真实世界目标。这些结果突出表明,一个领域专业化的、中等规模的模型——当与 targeted 推理指导配对时——可以匹配或超越最先进的大规模系统的能力,为自主攻击性安全操作提供了一个具有成本效益和可重复的解决方案。
未来的工作将探索三个主要方向。首先,我们旨在优化命令生成模块,可能通过结构化函数调用,以进一步提高执行精度。其次,我们计划增强长时运行进程处理的鲁棒性,并通过从漏洞情报源(如 ExploitDB 和 GitIngest)进行自动更新来加强检索增强生成机制。第三,我们打算扩展 xOffense 的能力,通过浏览器自动化支持高级 Web 和 GUI 交互,使其能够应对更广泛的渗透测试场景。

418

被折叠的 条评论
为什么被折叠?



