AutoPentest-DRL:使用深度强化学习的自动渗透测试工具

2021-07-03 00:23:10 浏览数 (1)

关于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的命令:
代码语言:javascript复制
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/目录下运行:

代码语言:javascript复制
$ sudo -H pip install -r requirements.txt

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

工具使用

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

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

代码语言:javascript复制
$ python3 ./AutoPentest-DRL.py logical_attack

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

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

项目地址

AutoPentest-DRL:【点击阅读原文】

参考资料

https://github.com/crond-jaist/AutoPentest-DRL/blob/master/user_guide.md

https://github.com/risksense/mulval

https://github.com/DanMcInerney/pymetasploit3

https://www.metasploit.com/

https://www.jaist.ac.jp/misc/crond/index-en.html

https://www.jaist.ac.jp/english/

0 人点赞