Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Portable Executable Infection con Shellter

Guida all'uso di Shellter, uno strumento per iniettare codice in un file eseguibile: ecco come usarlo per ottenere una reverse shell a prova di antivirus.
Guida all'uso di Shellter, uno strumento per iniettare codice in un file eseguibile: ecco come usarlo per ottenere una reverse shell a prova di antivirus.
Link copiato negli appunti

Shellter
è un tool che consente l'iniezione di shellcode in un file eseguibile in maniera dinamica (operazione conosciuta anche con il nome di PE - Portable Executable - Infection). In questo articolo lo utilizzeremo per nascondere una reverse shell
all'interno di un eseguibile innocuo, che nel nostro caso sarà putty.exe – scaricabile tramite questo link – senza che tale modifica venga rilevata dai moderni antivirus.

Preparazione

Shellter è disponibile per tutti i sistemi operativi. Nativamente creato per Windows, ne è stata poi scritta una versione compatibile al 100% con Wine. L’ultimo rilascio è disponibile sul sito ufficiale del progetto.

Una volta scaricato il file .zip, è sufficiente estrarne il contenuto in una cartella e Shellter sarà pronto per l’uso, senza la necessità di
installazioni né ulteriori dipendenze da soddisfare. In questo articolo useremo un sistema Windows (vittima - dal quale avvieremo l'eseguibile infetto) ed
una macchina Kali Linux (attaccante - dal quale creeremo la shellcode ed useremo Shellter per iniettarla all'interno di putty.exe). Per prima cosa
generiamo una reverse shell usando metasploit come in esempio:

Figura 1. (click per ingrandire)


In fase di generazione, abbiamo specificato l'encoding x86/shikata_ga_nai per aggiungere un ulteriore strato di sicurezza che eviti la rilevazione
dagli Antivirus, ed è sempre consigliato usarne uno. Altro punto importante è che la shellcode deve essere generata in formato “raw” (tramite il parametro -t). Spostiamo ora il file shellcode appena generato all'interno della cartella di Shellter, e fate lo stesso per putty.exe.

Per finire la nostra preparazione dobbiamo tenere un listener su metasploit, in attesa che la vittima apra il file infetto. Per avviarne uno, è
sufficiente seguire le istruzioni specificate nell'immagine seguente:

Figura 2. (click per ingrandire)


Iniezione della shellcode

Avviamo Shellter utilizzando Wine sulla nostra macchina Linux. Ci verrà chiesto in quale modalità lavorare, per il momento useremo la modalità Auto (A).

Come target inseriamo il nome del nostro eseguibile: putty.exe.

Figura 3. (click per ingrandire)


A questo punto, Shellter esegue diversi controlli fra cui:

  • Backup
    - Crea una copia del file originale, prima di iniettarvi la shellcode.
  • PE Compatibility
    – Serve all'attaccante per conoscere la compatibilità dell'eseguibile con il sistema vittima. Estrae le informazioni dell'header PE.
  • Packed PE
    – Controlla su quale sezione si trova l'entry point dell'eseguibile. In genere è nella prima sui binari non “paccati” (cioè non “oscurati” per la
    decompilazione).
  • PE Info Elimination
    – Una delle più importanti operazioni in cui viene eliminata la digital signature dall'eseguibile per evitare che l'antivirus si accorga che un file
    conosciuto – come può essere putty.exe - sia stato modificato.
  • Tracing mode
    – In modalità Auto, Shellter traccia un numero casuale di istruzioni per un massimo di 30 secondi, in modo da stimare il flusso di esecuzione
    dell'eseguibile.

Il prossimo dato che ci verrà richiesto è il payload da iniettare, ovvero il contenuto del file shellcode generato precedentemente tramite metasploit.

Figura 4. (click per ingrandire)


  • Payload Info
    – Legge il payload, ne mostra la dimensione e verifica se è stato usato un encoding in generazione.
  • C.T.A. PolyMorphic Code
    – Funzionalità introdotta solo nella versione 3.0, che aumenta il livello di polimorfismo nell'eseguibile, inserendolo in un blocco di istruzioni che
    non interferirà con il flusso di esecuzione.
Figura 5. (click per ingrandire)


  • PolyMorphic Junk Code
    – Questa fase corrisponde alla generazione del codice “spazzatura” polimorfico, che servirà a confondere gli Antivirus.
  • Injection Stage
    – Viene inserita all'interno dell'eseguibile originale la shellcode.
Figura 6. (click per ingrandire)


  • PE Checksum Fix
    – Modifica il checksum del Portable Executable all'interno dell'eseguibile.
  • Verification Stage
    – Verifica che la prima istruzione del codice iniettato sia raggiungibile.

Eseguire l’attacco

Ora che abbiamo il nostro eseguibile con una shellcode iniettata, possiamo testarlo sul computer vittima. Trasferiamo ed apriamo quindi putty.exe
sulla macchina vittima – che ha un Antivirus aggiornato installato – e vedremo comunque aprirsi, sul sistema dell'attaccante, una sessione meterpreter:

Figura 7. (click per ingrandire)


Ora sappiamo che l'offuscamento della shellcode ha funzionato, ma per quanto riguarda gli Antivirus? Siamo certi che non venga rilevato facilmente sia da
questo che da altri Antivirus?

Per avere un quadro chiaro di quali antivirus rilevino o meno il nostro eseguibile come dannoso, possiamo usare il sito di VirusTotal, che effettua una scansione di un file utilizzando circa 56 differenti
Antivirus.

Carichiamo quindi putty.exe (quello con all'interno la shellcode) ed analizziamo i risultati:

Figura 8. (click per ingrandire)


Con un sorprendente 0 rilevazioni su 56 Antivirus vendors, possiamo ritenerci più che soddisfatti dei risultati ottenuti grazie a Shellter.

Conclusioni

In questo articolo abbiamo visto come utilizzare la modalità automatica di Shellter, ma questo tool è molto di più! La versione 3.0 ha introdotto molte
innovative funzioni, di cui la più importante è lo IAT polimorfico (che lo rende un tool unico nel suo genere). Un’occhiata al sito ufficiale consentirà ai lettori più interessati di avere un quadro più generale delle potenzialità di
questo tool.

Questo è un esempio di come la tecnologia sia riuscita a trovare un modo per bypassare, sempre più efficacemente, meccanismi per garantire la sicurezza di
un computer (in questo caso gli Antivirus). Trucchi di questo genere sono stati utilizzati per anni da blackhats (gli “hacker cattivi”), governi e security
vendors per ottenere informazioni e dati più o meno segreti. Per questo è bene tenere sempre a mente una massima ben nota agli esperti di sicurezza:

L’unico computer sicuro è un computer spento.

Ti consigliamo anche