freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

AutoPentest-DRL:使用深度强化学习的自动渗透测试工具
2021-05-24 16:38:33

关于AutoPentest-DRL

AutoPentest-DRL是一个基于深度强化学习(DRL)技术的自动化渗透测试框架。该框架可以针对给定的网络确定最合适的攻击路径,并可以通过渗透测试工具(如Metasploit)对该网络执行模拟攻击。

该框架可以使用网络扫描工具,如Nmap,来发现目标网络中的漏洞,也可以允许研究人员自行输入参数执行渗透测试。该工具使用了MulVAL攻击图生成器来确定潜在的攻击树,然后以简化的形式将其输入到DQN决策引擎中。作为输出生成的攻击路径可以输入到渗透测试工具(如Metasploit)中,以对真实的目标网络进行攻击,或者与逻辑网络一起使用,例如用于教育目的。此外,AutoPentest-DRL还使用了拓扑生成算法生成用于训练DQN的多个网络拓扑。

工具依赖

该工具的正常使用需要以下几个额外的工具组件:

  • MulVAL:AutoPentest-DRL所使用的攻击图生成器,可以针对给定的网络生成潜在的攻击路径。MulVAL需要安装在AutoPentest-DRL文件夹中的repos/mulval目录下。
  • Nmap:AutoPentest-DRL使用Nmap网络扫描器来扫描真实网络中的安全漏洞,下面给出的是在Ubuntu中安装nmap的命令:
sudo apt-get install nmap
  • Metasploit:AutoPentest-DRL所使用的渗透测试工具,可以直接针对真实的目标网络并利用DQN引擎来执行攻击。要安装Metasploit,可以使用Metasploit网站上提供的安装程序。另外,我们使用pymetasploit3作为RPC API与Metasploit进行通信,该工具需要安装在Penetration_tools/pymetasploit3目录下。

工具安装

AutoPentest-DRL主要是在Ubuntu 18.04 LTS操作系统上开发的,理论上可以在其他系统平台上正常使用。广大研究人员可以直接访问该项目的【Releases页面】获取最新的工具版本。

AutoPentest-DRL基于Python开发,它还需要几个额外的工具包才能运行。可以使用项目中提供的requirements.txt文件和下列命令来安装必要的软件包,该命令需要在 AutoPentest-DRL/目录下运行:

$ sudo -H pip install -r requirements.txt

最后一步就是安装数据库,其中将包含关于真实主机和漏洞的详细信息。请从该项目的【Releases页面】下载名为database.tgz的文件,并将其提取至Database/目录中。

工具使用

AutoPentest-DRL最简单的使用方式就是以逻辑攻击模式运行,该模式可以针对给定的逻辑网络判断最优的攻击路径。

如需在示例网络拓扑上使用逻辑攻击模式,请从终端窗口运行以下命令:

$ python3 ./AutoPentest-DRL.py logical_attack

MulVal_P/logical_attack.P文件中描述了此攻击模式中使用的逻辑网络拓扑,其中包括有关服务器、服务器连接及其漏洞的详细信息。可以按照MulVAL文档中描述的语法修改此文件。

在逻辑攻击模式下,不进行实际攻击,只提供最优攻击路径作为输出。通过参考文件mulval_results/AttackGraph.pdf中MulVAL生成的攻击图的可视化,您可以详细研究攻击步骤。

项目地址

AutoPentest-DRL:GitHub传送门

参考资料

# 渗透测试 # 机器学习
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录