【AI自动化渗透】大模型支持的自动化渗透测试,看蚂蚁和浙大的

参考文章:

https://mp.weixin.qq.com/s/WTaO54zRxtNMHaiI1tfdGw

最近,美国西北大学,浙江大学,蚂蚁集团的一些专家学者联手发表了一篇论文,介绍了一个PentestAgent的方案,实现了渗透测试自动化。

01 技术方案

图的字体有点小,每块后边都会拆开看。

PentestAgent由四大组件组成:侦察代理、搜索代理、规划代理、执行代理,这些代理相互协作,完成渗透测试的三个主要阶段。大体过程如下

1.情报收集: 侦察代理在收到用户指定目标的输入后,通过收集有关目标主机的环境信息来启动渗透测试过程。侦察代理生成并执行侦察命令,旨在从目标主机收集全面的环境数据。 然后,侦察代理分析执行结果并汇编目标环境摘要,该摘要存储在指定的环境信息数据库中。图中①②

2.漏洞分析: 接下来,搜索代理和规划代理协同进行漏洞分析。 搜索代理查询环境信息数据库以检索目标主机上公开的服务和应用程序列表。 在这些服务和应用程序的指导下,搜索代理搜索潜在的攻击面和程序,并将它们保存在单独的数据库中。 规划代理首先利用 RAG 技术找到潜在攻击面列表。 随后,规划代理使用这些已识别的攻击面来确定适合目标环境的漏洞利用。③④⑤⑥

3.漏洞利用: 最后,执行代理尝试在目标主机上执行这些攻击计划。 执行代理与环境信息数据库通信以获取执行漏洞利用所需的信息。它还通过修改代码或执行其他命令来调试任何执行错误,以收集更多信息。 所有执行历史记录都存储在数据库中,可用于生成全面的渗透测试报告。⑦⑧⑨

这个结构化和自动化的框架旨在简化渗透测试流程,提高效率并减少所需的手动工作量。

02 各代理说明

侦察代理

侦察代理将指定目标作为输入,并与其交互以收集详细信息,最终生成环境信息摘要作为输出。如下图所示,当向侦察代理提供目标时,该过程开始。代理以自迭代循环运行,生成侦察命令以从目标收集信息,并分析这些命令的结果,直到尽最大努力。侦察循环结束后,代理会总结其发现并将其存储在数据库中。

嗯,这个就跟PentestGPT几乎是一样的,唯一的区别是手动变成了自动,这个就是多点代码量,没什么难度。

搜索代理

搜索代理将目标服务和应用程序作为输入,并将相关攻击知识存储到数据库中作为输出。如下图所示,搜索代理对相关信息进行两轮分层在线搜索。在第一轮中,它搜索并分析结果以提取与目标相关的潜在攻击面。在后续轮中,它使用已识别的潜在攻击面作为指导,搜索和分析过程级攻击知识。潜在攻击面和过程级攻击知识存储在两个单独的数据库中以供将来使用。

这个是利用了一些RAG的技术。

执行代理

执行代理将漏洞利用详细信息作为输入,并尝试自动对目标执行漏洞利用,最终生成漏洞利用摘要作为输出。执行代理遵循规划代理建议的顺序。如图 6所示,每次漏洞利用执行可分为两个阶段:准备阶段和漏洞利用阶段

03 测试效果

选择 VulHub 作为基准数据集,制了一个包含 67 个渗透测试目标的基准测试,涵盖 32 个 CWE(常见弱点枚举)类别,有 50 个目标具有易利用难度,11 个目标具有中等可利用难度,6 个目标具有高可利用难度。

渗透测试成功率为

GPT-4 模型在完成自动化渗透测试任务方面表现出 74.2% 的总体成功率,优于 GPT-3.5 模型,后者的成功率为 60.6%。两种模型的成功率均持续超过 60%,这证明了PentestAgent在建立自动化渗透测试管道方面的有效性。

04 与PentestGPT的比较

我们对PentestAgent和PentestGPT的有效性和效率进行了比较。与PentestAgent不同,PentestGPT需要在整个渗透测试过程中进行人工参与,以提供反馈和决策。因此,我们使用案例研究来比较它们的性能。为了进行公平的评估,我们随机选择了五个漏洞,其中两个归类为简单,两个归类为中等,一个归类为困难。我们招募了一名渗透测试经验有限的本科生,担任PentestGPT所需的人工组件。学生遵循PentestGPT的指导,而无需应用外部知识进行决策或完成任务。

在这种测试条件下,PentestGPT无法完全利用这 5 个漏洞中的任何一个。相比之下,PentestAgent在五种情况中的三种中成功完成了利用。为了进一步比较,我们检查了PentestGPT在各个渗透测试阶段的性能。PentestGPT仅在五种情况中的一种中能够识别目标应用程序,而PentestAgent在五种情况中的四种中正确识别了目标应用程序。在信息收集阶段,PentestGPT平均花费 826.25 秒,需要测试人员和系统进行 7.4 轮交互。相比之下,PentestAgent平均在 400 秒内完成信息收集,无需人机交互。在给定正确的目标应用程序信息的情况下,PentestGPT仅成功引导利用一个漏洞。另一方面,一旦识别出目标应用程序,PentestAgent就会自动利用包括困难情况在内的四个漏洞。

这些结果表明,PentestAgent在有效性和效率方面都明显优于PentestGPT,可以自主完成渗透测试任务,而无需人工协助。

05 总结

本文参考了PentestGPT的思想,在之上实现了更好的自动化,从结果上看,效果非常理想。可惜的是,该项目未开源。

在查找中,看到另一个开源软件,可以用来参考。

https://github.com/osgil-defense/TARS

论文地址:

https://arxiv.org/html/2411.05185v1

参考阅读

PentestGPT,用大模型辅助渗透测试,已开源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/952229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探秘block原理

01 概述 在iOS开发中,block大家用的都很熟悉了,是iOS开发中闭包的一种实现方式,可以对一段代码逻辑进行封装,使其可以像数据一样被传递、存储、调用,并且可以保存相关的上下文状态。 很多block原理性的文章都比较老&am…

【Java】-- 利用 jar 命令将配置文件添加到 jar 中

目录 1、准备 2、目标 3、步骤 3.1、安装 jdk 3.2、添加配置文件 3.3、校验 1、准备 java 环境hadoop-core-1.2.1.jar 和 core-site.xml 2、目标 将 core-site.xml 添加到 hadoop-core-1.2.1.jar 中。 3、步骤 3.1、安装 jdk 3.2、添加配置文件 jar -cvf hadoop-core-…

概率论与数理统计总复习

复习课本:中科大使用的教辅《概率论和数理统计》缪柏其、张伟平版本 目录 0.部分积分公式 1.容斥原理 2.条件概率 3.全概率公式 4.贝叶斯公式 5.独立性 6.伯努利分布(两点分布) 7.二项分布 8.帕斯卡分布(负二项分布&am…

阿里mod_asr3.0集成webrtc静音算法

alibabacloud-nls-cpp-sdk-master 先到阿里官网下载nls库的源代码,编译生成对应的库文件和头文件。 我编译的放到了以下目录。 /home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/ /home/jp/2025/alibabacloud-nls-cpp-sdk-…

机器人碳钢去毛刺,用大扭去毛刺主轴可轻松去除

在碳钢精密加工的最后阶段,去除毛刺是确保产品质量的关键步骤。面对碳钢这种硬度较高的材料,采用大扭矩的SycoTec去毛刺主轴,成为了行业内的高效解决方案。SycoTec作为精密加工领域的领军品牌,其生产的高速电主轴以其卓越的性能&a…

iOS 逆向学习 - Inter-Process Communication:进程间通信

iOS 逆向学习 - Inter-Process Communication:进程间通信 一、进程间通信概要二、iOS 进程间通信机制详解1. URL Schemes2. Pasteboard3. App Groups 和 Shared Containers4. XPC Services 三、不同进程间通信机制的差异四、总结 一、进程间通信概要 进程间通信&am…

音视频入门基础:RTP专题(1)——RTP官方文档下载

一、引言 实时传输协议(Real-time Transport Protocol,简写RTP)是一个网络传输协议,由IETF的多媒体传输工作小组1996年在《RFC 1889》中公布的。 RTP作为因特网标准在《RFC 3550》有详细说明。而《RFC 3551》详细描述了使用最小…

qt-C++笔记之自定义继承类初始化时涉及到parents的初始化

qt-C笔记之自定义继承类初始化时涉及到parents的初始化 code review! 参考笔记 1.qt-C笔记之父类窗口、父类控件、对象树的关系 2.qt-C笔记之继承自 QWidget和继承自QObject 并通过 getWidget() 显示窗口或控件时的区别和原理 3.qt-C笔记之自定义类继承自 QObject 与 QWidget …

《图解HTTP》 学习日记

1.了解WEB以及网络基础 1.1使用HTTP协议访问WEB web页面显示:根据web浏览器地址栏中输入指定的URL,web浏览器从web服务端获取文件资源(resource)等信息,从而显示出web页面 1.2网络基础TCP/IP 通常使用的网络(包括 互联网)是在tcp/ip协议族的基础上运作的&#xf…

VSCODE使用Echarts组件库(不是vue)

第一步打开Echarts官网 Examples - Apache ECharts 第二步随便点击一个图形点击我圈的按钮 第三步

道品科技智慧农业与云平台:未来农业的变革之路

随着全球人口的不断增长,农业面临着前所未有的挑战。如何在有限的土地和资源上提高农业生产效率,成为了各国政府和农业从业者亟待解决的问题。智慧农业的兴起,结合云平台的应用,为农业的可持续发展提供了新的解决方案。 ## 一、智…

C++实现银行排队系统

网上看到的设计要求&#xff1a; 基本效果已经实现&#xff0c;希望大家帮忙指点指点。 程序中的一些基本模块 程序处理中的一些流程图 程序运行结果如下图&#xff1a; 程序代码如下&#xff1a; #include <iostream> #include <string> #include <random&g…

新版2024AndroidStudio项目目录结构拆分

如题 下载了最新版的android studio 发现目录结构和以前不一样 自动帮你合并了 如何层层抽丝剥茧呢 按照一下步骤即可解决问题&#xff01;

【Rust自学】11.6. 控制测试运行:并行和串行(连续执行)测试

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.6.1. 控制测试的运行方式 cargo test和cargo run一样&#xff0c;cargo test也会编译代码并生成一个二进制文件用于测试&#xff0c;…

linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包

关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 创建文件 格式&#xff1a; touch 文件名 删除文件 复制文件 移动文件 查看文…

Docker 基础知识

背景 传统的linux的环境部署 命令多步骤多安装版本多 使用docker的话&#xff0c;一个命令就可以全部搞定 安装linux 之前安装过&#xff0c;所以直接使用的开罩进行复制的如果之前配置过静态地址&#xff0c;需要改成IPV4静态地址访问 安装docker 参考连接&#xff1a;https:/…

Docker 从入门到精通

文章目录 Ubuntu 安装Docker步骤前言1. 进入Docker官网&#xff0c;进入开发者页面2. 选择适合自己的安装方式3. 安装 Docker1.更新系统包&#xff0c;安装插件&#xff0c;创建秘钥及目录2.安装 Docker 软件包3.设置开机启动4.通过运行 hello-world 镜像验证安装是否成功 常见…

概率图模型01

机器学习中&#xff0c;线性回归、树、集成和概率图都属于典型的统计学习方法&#xff0c;概率图模型会更深入地体现出‘统计’两字 概率图模型的常见算法 概率图模型中的图 概率图模型如图主要分为两种&#xff0c;即贝叶斯网络和马尔可夫网络&#xff0c;有向图与无向图&…

Vue Router4

Vue Router 是 Vue.js 官方的路由管理器。Vue Router 基于路由和组件的映射关系&#xff0c;页面路径发生改变&#xff0c;就进行对应的组件切换。 安装&#xff1a; npm install vue-router。 基本 使用&#xff1a; // src/router/index.js import {createRouter, create…

深度学习知识点:LSTM

文章目录 1.应用现状2.发展历史3.基本结构4.LSTM和RNN的差异 1.应用现状 长短期记忆神经网络&#xff08;LSTM&#xff09;是一种特殊的循环神经网络(RNN)。原始的RNN在训练中&#xff0c;随着训练时间的加长以及网络层数的增多&#xff0c;很容易出现梯度爆炸或者梯度消失的问…