AutoPentest-DRL 是一个基于深度强化学习(DRL)技术的自动化渗透测试框架。AutoPentest-DRL 能够为给定的逻辑网络确定最合适的攻击路径,并可通过 Nmap 和 Metasploit 等工具在真实网络上执行渗透测试攻击。该框架用于教育目的,以便用户研究渗透测试的攻击机制。AutoPentest-DRL 由日本北陆先端科学技术大学院大学(JAIST)的网络靶场组织与设计(CROND)NEC 捐赠讲座开发,大学位于日本石川县。
AutoPentest-DRL 的概述如下所示。该框架接收用户关于逻辑目标网络的输入,包括漏洞信息;或者,该框架可以使用 Nmap 进行网络扫描,以发现具有已知拓扑结构的真实目标网络中的实际漏洞。然后,使用 MulVAL 攻击图生成器来确定可能的攻击树,这些攻击树以简化形式输入 DRL 引擎。输出的攻击路径可用于研究大量逻辑网络上的攻击机制。或者,该框架可以使用攻击路径与渗透测试工具(如 Metasploit)配合,使用户能够研究如何在真实目标网络上实施攻击。

下面我们提供有关如何设置和使用 AutoPentest-DRL 的简要信息。有关其操作的详细信息,请参阅我们提供的用户指南。
使用 AutoPentest-DRL 需要几个外部工具;对于逻辑网络的基本功能,您需要:
如果您计划将 AutoPentest-DRL 用于真实网络,您还需要:
nmap 所需的命令如下:
sudo apt install nmap
pymetasploit3 作为 RPC API 与 Metasploit 通信,该工具需要按照其作者的说明安装到 Penetration_tools/pymetasploit3 目录中。AutoPentest-DRL 主要在 Ubuntu 18.04 LTS 操作系统上开发;其他操作系统可能也能工作,但尚未经过测试。要设置 AutoPentest-DRL,请使用发布页面下载最新版本,并将源代码存档解压到您打算使用它的主机上的任意目录(例如您的主目录)。
AutoPentest-DRL 使用 Python 实现,需要多个包才能运行。发行版中包含的 requirements.txt 文件可用于通过以下命令安装必要的包,该命令应从 AutoPentest-DRL/ 目录运行:
$ sudo -H pip install -r requirements.txt
通过从 AutoPentest-DRL/ 目录在终端中运行以下命令,可以在示例逻辑网络拓扑上直接使用 AutoPentest-DRL:
$ python3 ./AutoPentest-DRL.py logical_attack
在此逻辑攻击模式下,不会进行实际攻击,AutoPentest-DRL 将仅确定文件 MulVal_P/logical_attack_v1.P 中描述的逻辑网络拓扑的最佳攻击路径。通过将输出路径与 MulVAL 在文件 mulval_results/AttackGraph.pdf 中生成的可视化攻击图进行比较,您可以详细研究逻辑攻击步骤。
有关 AutoPentest-DRL 操作的更多信息,包括在真实网络上进行渗透测试时使用的真实攻击模式,请参阅我们的用户指南。
有关本项目的贡献者列表,请参阅发行版中包含的 CONTRIBUTORS 文件。