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 -h
la 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.