
Funcionalidade principal do A2P2V (baseada em linha de comando)
O A2P2V (Automated Attack Path Planning and Validation) é uma ferramenta de planejamento e ciberataque que oferece a capacidade para os usuários determinarem um conjunto de sequências de ataque ranqueadas, dado um objetivo específico do atacante. O objetivo da ferramenta é simplificar o processo para que não especialistas em segurança possam gerar inteligência clara e acionável a partir de entradas básicas, utilizando o máximo de automação possível e gerando relatórios de fácil interpretação.
O sistema utiliza informações de topologia de rede conhecida e vulnerabilidades do sistema para determinar todos os conjuntos de sequências de ataque para alcançar o objetivo do atacante e gera os passos necessários (como comandos do Metasploit) para a sequência selecionada.
A entrada do sistema inclui:
O A2P2V possui os seguintes pré-requisitos além do que é instalado via requirements.txt durante a configuração:
Para instalar o python tk no Ubuntu (assumindo python 3.9):
sudo apt install python3.9-tk
Para iniciar o daemon RPC do Metasploit, recomendamos executar em um contêiner docker, usando o script fornecido:
$ cd scripts/
$ ./run_msfrpcd.sh
Recomenda-se instalar em um virtualenv.
Primeiro crie um diretório venvs:
mkdir $HOME/.venvs/
Crie o ambiente virtual:
python3 -m venv ~/.venvs/a2p2v
Ative o ambiente virtual:
source ~/.venvs/a2p2v/bin/activate
Instale:
pip install -r requirements.txt
pip install .
Na primeira execução da ferramenta, as definições de capacidades precisam ser importadas. Por exemplo, para carregar as definições de capacidade padrão fornecidas:
a2p2v --cpdb [caminho_do_arquivo_yml]
O sistema é executado no modo de planejamento usando os seguintes argumentos de linha de comando:
$ a2p2v --plan
As seguintes seleções são exibidas:
TREE#|SCORE|HOPS |FINAL CAPABILITY OPTIONS |GOALS
-----|-----|-----------------------------------|--------------------------------------------------|---------------
0| 6.24|GW(1)>HMI(4)>OPC(4)>PLC(1) |action=WRITE_REGISTERS |change_temp
-----|-----|-----------------------------------|--------------------------------------------------|---------------
1| 6.24|GW(1)>HMI(4)>EWS10(4)>PLC(1) |action=WRITE_REGISTERS |change_temp
------------------------------------------------------------------------------------------------------------------
Select an attack tree to execute (or any other value to exit):
Um relatório detalhado e o conjunto correspondente de árvores de ataque podem ser encontrados no diretório reports/.
A ferramenta também pode ser executada contra um único alvo, assumindo conectividade de rede com o alvo.
O sistema é executado no modo de host único especificando um alvo nos argumentos da linha de comando:
a2p2v --target USER1
A lista de todos os exploits conhecidos é exibida na seleção. Você pode escolher um exploit específico para usar, ou todos eles.
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
O relatório correspondente é semelhante ao gerado para o caso de uso do sistema.
Copyright (C) 2018-2023 Toshiba Corporation and Peraton Labs, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
O arquivo lab_config/capabilities_metasploit.yml é baseado nas informações de módulos do Metasploit Framework.
Este arquivo não contém nenhuma informação sobre o módulo de ataque além da licença BSD.
A licença do Metasploit Framework é mostrada abaixo.
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://www.metasploit.com/
Files: *
Copyright: 2006-2020, Rapid7, Inc.
License: BSD-3-clause
# The Metasploit Framework is provided under the 3-clause BSD license provided
# at the end of this file.
#
# The copyright on this package is held by Rapid7, Inc.
#
The Original Code and all software distributed under the License are
distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
Please see the License for the specific language governing rights and
limitations under the License."