Individuato malware FickerStealer veicolato tramite campagna Hancitor

21/07/2021

fickerstealer hancitor

La scorsa settimana il CERT-AGID ha osservato una campagna Hancitor il cui fine era quello di scaricare e compromettere il sistema della vittima con il malware FickerStealer. La medesima campagna, questa volta tramite l’uso di allegato XLS, è stata veicolata in data odierna ma il sample FickerStealer risulta essere ancora lo stesso.

FickerStealer è l’ennesimo malware as a service sviluppato e mantenuto da un gruppo di criminali che ne ha pubblicizzato il servizio nella seconda metà del 2020 su forum russi e messo a disposizione account e canali telegram per ottenere informazioni sul prodotto e ricevere supporto.

Gli autori vantano il fatto che FickerStealer è stato scritto da zero, in Rust, senza scopiazzare codice da altri malware e che, una volta acquistato il servizio, verrà messo a disposizione uno script bash che si occuperà di installare e configurare in automatico il pannello di gestione sul proprio server. I criminali spiegano inoltre ai clienti che non è necessario disporre di una architettura complessa o di server performanti bensì è sufficiente una macchina con 2GB di RAM e una CPU.

Insieme allo script bash viene fornito il builder che configurerà e rilascerà l’eseguibile pronto per essere distribuito.

I prezzi variano da 90$ per una settimana fino a 900$ per sei mesi di attività. Nello specifico:

  • 1 settimana – $ 90
  • 1 mese – $ 200
  • 3 mesi – $ 500
  • 6 mesi – $ 900

Nel prezzo è anche compreso il supporto per individuare un hosting dove installare la console per la gestione dei dati e delle macchine compromesse.

Analisi di FickerStealer

Come riportato nella documentazione, ogni sample generato dal builder provvede a cifrare le stringhe con una chiave calcolata randomicamente così da ottenere un campione del tutto differente per ogni campagna.

In effetti, tutte le stringhe risultano cifrate ma questo non impedisce di individuarle durante l’analisi dinamica poiché queste vengono caricate e decifrate in memoria offrendo la possibilità di rilevarle in chiaro, bloccando l’esecuzione nei punti giusti.

La prima azione che possiamo osservare riguarda la creazione di un mutex denominato “serhershesrhsfesrf” tramite la chiamata alla funzione CreateMutexA.

A questo punto, è sufficiente impostare un breakpoint su memcpy e memcmp per individuare le stringhe cifrate mentre vengono elaborate per riportarle in chiaro.

Al pari di tanti altri MaaS sviluppati e mantenuti da criminali russi, anche FickerStealer non opera contro paesi della Comunità degli Stati Indipendenti. Infatti, la prima operazione eseguita dal malware dopo aver generato il mutex è proprio quella di verificare la lingua del sistema in cui è stato eseguito.

Nello specifico, la lingua rilevata sul sistema viene confrontata con i seguenti paesi in questo esatto ordine:

ru-RURussia
be-BYBielorussia
uz-UZUzbekistan
ua-UAUcraina
hy-AMArmenia
kk-KZKazakistan
az-AZAzerbaigian

Qualora la macchina compromessa rientri in uno di questi paesi, il malware termina l’esecuzione senza eseguire ulteriori azioni.

Mantenendo attivo il breakpoint su memcpy e aggiungendo una ulteriore interruzione alla chiamata LoadLibraryA è possibile osservare il nome in chiaro delle librerie che vengono caricate in memoria. La prima libreria caricata è Urlmon.dll che, come visibile dagli step successivi, viene utilizzata per effettuare una chiamata a http://api.ipify.org/?format=xml tramite la funzione URLDownloadToFileA.

Il risultato ottenuto dalla query al servizio “ipify.org”, ovvero l’indirizzo IP con cui viene esposto su internet il client compromesso, viene quindi salvato su un file nel seguente percorso C:\ProgramData\kaosdma.txt

Anche questa operazione può essere osservata in chiaro impostando un breakpoint su URLDownloadToFileA.

Il malware continua quindi a conservare in memoria le informazioni raccolte sul sistema. Queste prevedono:

  • Processor
  • Product name
  • Computer’s Name
  • CPU count
  • EXE path
  • RAM MB
  • Time Zone
  • Keyboards
  • HWID
  • Processess

A questo punto, per monitorare l’accesso ai file che FickerStealer ricerca sul disco ed ai processi da enumerare, è sufficiente impostare i breakpoint su Process32First e FindFirstFileW.

Terminata la raccolta delle informazioni relative al sistema, vengono decifrate in memoria le stringhe riguardanti il server C2. In particolare, vengono decifrati indirizzo IP, dominio e porta.

Il malware prosegue quindi con l’enumerazione della cartella C:\Users\<NomeMacchina>\AppData\Roaming per verificare i software installati sulla macchina. La ricerca di FickerStealer è focalizzata verso specifici file e percorsi esatti per rilevare cookie dei browser Mozilla (il cookies.sqlite per primo) e Chromium, cronologia e credenziali di acceso di vari software presenti sul sistema, in particolare: WinSCP, FileZilla, Steam, Discord e ThunderBird.

È possibile osservare inoltre la ricerca di wallet sempre all’interno della cartella Roaming:

  • \AppData\Roaming\Bitcoin\wallets
  • \AppData\Roaming\com.liberty.jaxx
  • \AppData\Roaming\Exodus\exodus.wallet
  • \AppData\Roaming\atomic\Local Storage\leveldb\
  • \AppData\Roaming\Electrum\wallets
  • \AppData\Roaming\Zcash
  • \AppData\Roaming\bytecoin
  • \AppData\Roaming\Ethereum\keystore
  • \AppData\Roaming\Ethereum\keystore

FickerStealer non si occupa di esfiltrare le singole credenziali: il suo compito è quello di inviare al C2 i file di suo interesse, cifrandoli con una funzione XOR.

Conclusioni

Esistono diverse varianti di FickerStealer e le funzionalità variano in base alla tipologia di abbonamento contratto. Ad esempio, è possibile ottenere una versione che consente al malware di scaricare ulteriori strumenti o malware da remoto e quindi ulteriormente configurabile per l’esecuzione di nuove istruzioni gestite direttamente dalla console (C2).

Indicatori di compromissione

Il CERT-AGID ha già condiviso gli IoC attraverso la sue piattaforme per favorirne la loro diffusione.

Al fine di rendere pubblici i dettagli di questa campagna, si riportano di seguito gli indicatori rilevati:

Link: Download IoC