CATSploit: Una Herramienta de Pruebas de Penetración Automatizada Utilizando la Evaluación de Técnicas de Ataque Cibernético (CATS)

CATSploit es una herramienta automatizada de pruebas de penetración que utiliza el método de Evaluación de Técnicas de Ataque Cibernético (CATS).

A diferencia de los pentesters tradicionales, CATSploit utiliza información de configuración del sistema, como el sistema operativo, puertos abiertos y versiones de software recopiladas por el escáner, para calcular valores de puntuación de captura (eVc) y detectabilidad (eVd) de cada técnica de ataque para el sistema objetivo.

NOTA: Toda la información y los códigos se proporcionan únicamente con fines educativos y/o para probar sus propios sistemas.

Esto permite seleccionar la técnica de ataque más apropiada sin depender exclusivamente de las habilidades del pentester profesional.

Exploits Soportados por CATSploit

CATSploit automatiza las pruebas de penetración en la siguiente secuencia:

1. Recopilación de Información

En esta fase, se recopila información sobre los sistemas objetivo. CATSploit es compatible con herramientas como nmap y OpenVAS para obtener información de los sistemas objetivo. También admite información previa sobre los sistemas objetivo, si está disponible.

2. Cálculo del Valor de Puntuación de Técnicas de Ataque

Utilizando la información recopilada y la base de datos de técnicas de ataque, se calculan los valores de evaluación de captura (eVc) y detectabilidad (eVd) de cada técnica de ataque para cada computadora objetivo.

3. Selección de Técnicas de Ataque y Creación de Escenario

Se seleccionan las técnicas de ataque utilizando los puntajes calculados, y se crean escenarios de ataque de acuerdo con políticas predefinidas. Por ejemplo, para una política que prioriza la dificultad de detección, se seleccionarán las técnicas de ataque con el valor eVd más bajo.

4. Ejecución del Escenario de Ataque

CATSploit ejecuta las técnicas de ataque según el escenario construido en la fase anterior. Utiliza Metasploit como marco y la API de Metasploit para realizar ataques reales.

Requisitos Previos

CATSploit tiene los siguientes requisitos previos:

  • Kali Linux 2023.2a
  • Metasploit, Nmap y OpenVAS instalados con la Distribución Kali.

Instalación de CATSploit

Para instalar la última versión de CATSploit, utiliza los siguientes comandos:

$ git clone https://github.com/catsploit/catsploit.git
$ cd catsploit
$ git clone https://github.com/catsploit/cats-helper.git
$ sudo ./setup.sh

Configuración de CATSploit

CATSploit utiliza un archivo de configuración JSON para la configuración del servidor-cliente. Ajusta los campos necesarios en config.json según tu entorno.

  • DBMS
    • dbname: database name created for CATSploit
    • user: username of PostgreSQL
    • password: password of PostgrSQL
    • host: If you are using a database on a remote host, specify the IP address of the host
  • SCENARIO
    • generator.maxscenarios: Maximum number of scenarios to calculate (*)
  • ATTACKPF
    • msfpassword: password of MSFRPCD
    • openvas.user: username of PostgreSQL
    • openvas.password: password of PostgreSQL
    • openvas.maxhosts: Maximum number of hosts to be test at the same time (*)
    • openvas.maxchecks: Maximum number of test items to be test at the same time (*)
  • ATTACKDB
    • attack_db_dir: Path to the folder where AtackSteps are stored

Uso de CATSploit

Para iniciar el servidor, ejecuta el siguiente comando:

$ python cats_server.py -c [CONFIG_FILE]

Luego, en otra consola, inicia el programa cliente y establece una conexión con el servidor:

$ python catsploit.py -s [SOCKET_PATH]

Después de conectarte al servidor e inicializarlo, la sesión comenzará.

catsploit>

El cliente puede ejecutar una variedad de comandos. Cada comando se puede ejecutar con -hla opción de mostrar el formato de sus argumentos.

usage: [-h] {host,scenario,scan,plan,attack,post,reset,help,exit}

positional arguments:
  {host,scenario,scan,plan,attack,post,reset,help,exit}

options:
  -h, --help       show this help message and exit 

También publiqué los comandos y opciones a continuación como referencia.

host list:
 show information about the hosts
 usage:  host list [-h] 
 options:
  -h, --help       show this help message and exit

host detail:
 show more information about one host
 usage:  host detail [-h] host_id 
 positional arguments:
  host_id          ID of the host for which you want to show information
 options:
  -h, --help       show this help message and exit

scenario list:
 show information about the scenarios
 usage:  scenario list [-h]
 options:
  -h, --help       show this help message and exit

scenario detail:
 show more information about one scenario
 usage:  scenario detail [-h] scenario_id
 positional arguments:
  scenario_id      ID of the scenario for which you want to show information
 options:
  -h, --help       show this help message and exit

scan:
 run network-scan and security-scan
 usage:  scan [-h] [--port PORT] targe   t_host [target_host ...]
 positional arguments:
  target_host      IP address to be scanned
 options:
  -h, --help       show this help message and exit
  --port PORT      ports to be scanned

plan:
 planning attack scenarios
 usage:  plan [-h] src_host_id dst_host_id
 positional arguments:
  src_host_id      originating host
  dst_host_id      target host
 options:
  -h, --help       show this help message and exit

attack:
 execute attack scenario
 usage:  attack [-h] scenario_id
 positional arguments:
  scenario_id      ID of the scenario you want to execute

 options:
  -h, --help       show this help message and exit

post find-secret:
 find confidential information files that can be performed on the pwned host
 usage:  post find-secret [-h] host_id
 positional arguments:
  host_id          ID of the host for which you want to find confidential information
 op   tions:
  -h, --help       show this help message and exit

reset:
 reset data on the server
 usage:  reset [-h] {system} ...
 positional arguments:
  {system}         reset system
options:
  -h, --help  show this help message and exit

exit:
  exit CATSploit
  usage:  exit [-h]
  options:
   -h, --help  show this help message and exit

Comandos y Ejemplos

En este ejemplo, utilizamos CATSploit para escanear la red, planificar el escenario del ataque y ejecutar el ataque.

catsploit> scan 192.168.0.0/24
Network Scanning ... 100%
[*] Total 2 hosts were discovered.
Vulnerability Scanning ... 100%
[*] Total 14 vulnerabilities were discovered.
catsploit> host list

catsploit> host detail h_exbiy6

[IP address]

[Open ports]

[Vulnerabilities]

[Users]

catsploit> plan attacker h_exbiy6
Planning attack scenario...100%
[*] Done. 15 scenarios was planned.
[*] To check each scenario, try 'scenario list' and/or 'scenario detail'.
catsploit> scenario list

catsploit> scenario detail rmgrof

[Steps]

catsploit> attack rmgrof
> ~> ~
> Metasploit Console Log
> ~
> ~
[+] Attack scenario succeeded!


catsploit> exit
Bye.

Conclusión

CATSploit proporciona una forma automatizada y basada en evaluaciones para la selección de técnicas de ataque en pruebas de penetración.

Al utilizar la Evaluación de Técnicas de Ataque Cibernético, permite a los profesionales de seguridad seleccionar las tácticas más efectivas para un sistema objetivo. Esta herramienta es una adición valiosa a la caja de herramientas de seguridad cibernética.

Vistas: 0