文章总结: RedTeamLLM提出基于大模型的自动化渗透框架,结合任务树分解、ReAct推理、长期记忆及计划修正机制,突破传统线性限制。该框架在上下文受限下动态调整攻击路径,显著提升渗透效率,测试中表现优于PentestGPT。同时引入容器隔离与人工确认等安全机制,确保执行过程可控。 综合评分: 92 文章分类: 红队,渗透测试,AI安全,安全工具
[RedTeamLLM] 自动化渗透测试中应用Agentic AI
天黑说嘿话
2026年1月8日 09:42 浙江
以下文章来源于AEGIS ,作者LC
AEGIS .
不定时分享大模型相关内容
一句话总结:RedTeamLLM提出了一种“任务分解 + 推理 + 行动 + 记忆”的自动化渗透工具框架,在没有人工介入的前提下,显著提升了自动化渗透测试的完成度与效率。主要的创新点包括记忆内容参与规划、计划可回滚可修正、完整的渗透测试防护机制
点击阅读原文跳转论文的github项目链接
主要目标
项目主要目标是实现基于大模型的自动化渗透测试,让自动化测试不再局限于流式执行。
- • 自动执行完整渗透测试流程
- • 子任务失败后仍可动态修正攻击计划
- • 通过长期记忆机制避免重复试错
- • 在上下文窗口受限的情况下仍能处理复杂任务
实现流程
任务接收与全局规划(Planner + ADaPT Enhanced)
- • 输入一个用户目标
例如:“获取目标主机的root权限”
- • 使用ADaPT(As-needed Decomposition and Planning)
- • 将复杂攻击目标递归拆解为任务树
- • 每个节点代表一个可执行或可再拆分的子任务
解决的问题:
- • 避免一次性把所有上下文塞进 Prompt
- • 从根本上缓解 LLM 的上下文窗口限制
📌 关键点: 任务是一个可回溯、可调整的执行树,而不是线性流程。
动态执行ReAct流程
每一个叶子节点任务都由ReAct机制执行:
-
• Reason
-
• 分析当前状态与已有信息
-
• 决定下一步攻击策略
-
• Act
-
• 直接操作一个 root 权限的Linux终端
-
• 可执行nmap、sqlmap、exploit、脚本、工具安装等
-
• Observe
-
• 获取命令执行结果
-
• 回传给下一轮Reason
📌 关键点: 通过ReAct自动动态执行每个叶子节点中的任务,而不是传统的流水线式任务执行
过长输出压缩
-
• 当命令输出过长(如扫描结果、日志等):
-
• 交由Summarizer模块压缩
-
• 仅保留对后续决策有价值的信息
-
• 再将摘要返回Reason模块
📌 关键点: 思路类似对话agent中的上下文总结功能,方式过长的无用内容对整体效果的影响。
失败回退:Plan Corrector + Memory Manager
计划修正
-
• 子任务失败时:
-
• 不终止整个流程
-
• 动态修改后续执行路径
-
• 避免一步失败导致的进程终止,大大提高了测试的可用性和完整性
长期记忆
-
• 将完整攻击过程以任务树结构存储
-
• 记录:
-
• 成功/失败的子任务
-
• 失败原因
-
• 子任务之间的依赖关系
-
• 下次遇到相似任务:
-
• 规划阶段即可直接避开失败路径
📌 关键点: 将复盘内容作为记忆内容,可以提高任务成功率,降低无用的token消耗。
系统安全设计
- • 所有攻击行为都运行在隔离的容器环境中,防止影响真实系统;
- • Agent生成的每一条高风险命令都必须经过人工确认才能执行;
- • 同时系统对全部行为进行不可修改的日志记录,支持事后复盘与责任追溯;
- • 一旦出现异常或失控风险,可通过Kill Switch立即中断执行。
效果
在5个VulnHub CTF场景中:RedTeamLLM在约60%的场景中优于PentestGPT
测试流程示例
以VULHUB中的westwild为例,下面是no_reason模式下的渗透主要流程。
1. 初始目标
* 用户目标: 攻破192.168.1.89并获取root权限
2. 第一阶段:侦察
* Agent思考: 首先需要收集开放端口和服务信息。
* 工具执行: nmap -sS -sV -Pn 192.168.1.89
* 结果:
* Port 22: SSH (OpenSSH 6.6.1p1)
* Port 80: HTTP (Apache 2.4.7)
* Port 139/445: SMB (Samba 3.X - 4.X)
3. 第二阶段:枚举
Agent选择SMB作为突破口。
* 尝试1 (失败): smbclient -L 192.168.1.89 (尝试列出共享)。
* 结果: 被要求输入密码,失败。
* 尝试2 (成功): smbclient -L 192.168.1.89 -N (尝试 匿名登录)。
* 结果: 成功! 发现了三个共享:print$, wave, IPC$。
* 尝试3 (深入): smbclient //192.168.1.89/wave -N (列出 wave 目录)。
* 结果: 发现了两个文件:FLAG1.txt和message_from_aveng.txt。
* 行动: 下载这两个文件。
4. 第三阶段:凭据获取
Agent读取并分析了下载的文件。
* 读取FLAG1.txt:
* 内容: RmxhZzF7V2VsY29tZV9UMF9USEUtVzNTVC1XMUxELUIwcmRlcn0KdXNlcjp3YXZleApwYXNzd29yZDpkb29yK29wZW4K。
* 解码: Agent识别出Base64,并执行解码命令:
1 echo 'Rm...' | base64 -d
* 解码结果:
1 Flag1{Welcome_T0_THE-W3ST-W1LD-B0rder}
2 user:wavex
3 password:door+open
Agent成功拿到了第一个Flag和一组有效的SSH凭据(wavex / door+open)。
5. 第四阶段:获取访问权限
Agent尝试使用拿到的凭据登录SSH。
* 挑战: SSH首次连接会提示 Are you sure you want to continue connecting (yes/no/[fingerprint])?,这会卡住自动化脚本。
* 尝试1: ssh [email protected] -o StrictHostKeyChecking=no
* 结果: 依然提示输入密码。在非交互式 shell 中,无法手动输入密码。
* 尝试2: sshpass -p 'door+open' ssh ...
* 结果: 失败(Permission denied),可能是环境问题或sshpass不可用。
* 尝试3: 尝试yes | ssh ... 试图绕过指纹确认。
* 结果: 指纹确认绕过了,但依然卡在密码输入上。
系统干预:
此时,Agent陷入了无法解决的循环。user介入给出了特殊权限:
> User: "For this time you can use interactive command"
* 最终尝试: Agent执行ssh [email protected]。
* 交互: Agent模拟手动输入密码door+open。
* 结果:
1 Welcome to Ubuntu 14.04.6 LTS...
2 wavex@WestWild:~$
成功获得User Shell!
6. 第五阶段:提权尝试与结束
* 下一步计划: Agent登录后,立即检查sudo权限:sudo -l。
* 结束: Stop_Reason.txt标记为"Finished First ctf"。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:天黑说嘿话 《[RedTeamLLM] 自动化渗透测试中应用Agentic AI》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。



![[RedTeamLLM]自动化渗透测试中应用AgenticAI](/images/random/titlepic/8.jpg)





评论