使用A2P2V针对特定目标生成攻击序列

  • A+
所属分类:安全新闻

关于A2P2V

A2P2V,全称为Automated Attack Path Planning and Validation,即自动化攻击路径计划和验证,它是一个计划工具,也是一个网络公祭工具,可以帮助广大研究人员在给定特定攻击者目标的情况下确定一组排序攻击序列。该工具的目的是简化流程,以便非专业人士能够使用尽可能多地自动化实现任务,并生成易于理解的安全报告。

A2P2V使用已知的网络拓扑和系统漏洞信息来确定所有攻击序列集,以实现攻击者的目标,并为选定的序列输出所需的步骤(Metasploit命令)。

需要输入系统的数据包括:

  • 初始条件:攻击者当前所获取到的所有信息进行建模。

  • 攻击者的目标:指示状态变化(如ICS系统上的温度变化)或对特定目标主机的远程访问。

  • 漏洞信息:Nessus或Nmap扫描结果或数据自定义(CVS)输入格式。

  • 网络拓扑:描述主机信息和网络连接的自定义XML格式。

  • 功能详细信息:一种自定义XML格式,描述一组已知服务和使用PAP(前置条件、操作和后置条件)模型指定的漏洞利用。

工具要求

A2P2V的运行需要下列组件(其余的均包含在requirements.txt文件中):

  • Python >= 3.6

  • Metasploit RPC守护进程(使用55552端口,用户名为msf,密码为welcome1)

  • Python-tk

在Ubuntu中安装python-tk:

sudo apt install python3.9-tk

运行Metasploit RPC守护进程:

msfrpcd -P welcome1 -S -U msf -a 127.0.0.1 -f -p 55552

工具安装

我们建议广大用户在虚拟环境中安装和使用A2P2V。

创建一个虚拟环境目录venvs:

mkdir $HOME/.venvs/

创建一个虚拟环境:

python3 -m venv .venvs/a2p2v

激活虚拟环境:

source .venvs/a2p2v/bin/activate

工具安装:

cd a2p2v/

pip install .

加载功能定义

工具首次运行时,需要导入功能性定义。比如说,加载预置的默认功能定义文件:

a2p2v --importdb lab_config/capabilities.xml

工具使用-计划模式

我们可以使用下列命令行参数以计划模式运行该系统:

$ a2p2v --plan

此时,我们将会看到下列选项:

TREE#|SCORE|HOPS                                              |FINAL CAPABILITY OPTIONS                          |GOALS

-----|-----|--------------------------------------------------|--------------------------------------------------|---------------

    0| 6.17|GW(1)>HMI(4)>OPC(4)>PLC(1)                        |auxiliary/scanner/scada/modbusclient              |change_temp

-----|-----|--------------------------------------------------|--------------------------------------------------|---------------

    1| 6.17|GW(1)>HMI(4)>USER2(4)>PLC(1)                      |auxiliary/scanner/scada/modbusclient              |change_temp

---------------------------------------------------------------------------------------------------------------------------------

Select an attack tree to execute (or any other value to exit):

详细报告和对应的攻击序列树将会存储在reports/目录下。

工具使用:单目标主机

该工具还可以针对单个目标主机运行:

a2p2v --target USER1

此时将会列出可选的漏洞利用模块:

TREE#|SCORE|CAPABILITY

-----|-----|--------------------------------------------------

    0|  8.4|exploit/windows/smb/ms17_010_eternalblue

-----|-----|--------------------------------------------------

    1|  8.4|exploit/windows/smb/ms17_010_psexec

-----|-----|--------------------------------------------------

    2|  8.4|exploit/windows/smb/ms10_061_spoolss

-----|-----|--------------------------------------------------

    3|  8.2|exploit/windows/rdp/cve_2019_0708_bluekeep_rce

----------------------------------------------------------------

Select a capability to execute, 'a' for all, or any other value to skip: a

生成的报告可以在相对应的系统用例下找到。

项目地址

A2P2V:https://github.com/pentest-a2p2v/pentest-a2p2v-core


本文始发于微信公众号(盾山实验室):使用A2P2V针对特定目标生成攻击序列

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: