关于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/目录下运行:
代码语言: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/