Info Stealing: Anatomia di un keylogger

A cura di: Matteo Brandi

Se esiste il detto “le apparenze ingannano”, questo vale sicuramente anche per i file.

In questo articolo vediamo come un file che apparentemente sembra un file PDF, magari recapitato via e-mail, in realtà non è un PDF.

Questo per ricordare di non aprire i file che riceviamo senza prima aver verificato il mittente e sulla necessità di avere e mantenere aggiornato un antivirus che possa prevenirne l’apertura nel caso fossimo distratti.

Il PDF che vedremo, in realtà è un piccolo eseguibile che scarica, attiva e avvia in automatico ad ogni accensione del Pc un keylogger, un programma che registra ed invia all’attaccante tutti i tasti battuti con la tastiera, quindi anche password o email scritte.

Preparazione dello scenario

Abbiamo utilizzato un Pc con sistema operativo Windows 11 Home aggiornato, senza alcun antivirus installato e con Windows Defender attivo.

Il codice sia del downloader che quello del keylogger è stato scritto in C++ v.20 con Visual Studio 2022.

Analisi

Vediamo la possibile strategia attuata da un attaccante: mandare direttamente il keylogger, un pdf che una volta aperto non mostrerebbe un PDF, non sarebbe la scelta migliore in quanto sarebbe cancellato.

Meglio allora inviare, mascherato da PDF, il downloader, che provvederà a scaricare il keylogger, eseguirlo ed a far si che si attivi ad ogni accensione del PC scrivendo una chiave di registro di Windows.

Il downloader, come si vede in figura 1, chiamato “fattura_pagamento”  è visualizzato con l’icona di un PDF.

fig.1 il downloader

STEP 1 il downloader 

fig.2 Codice del downloader

Come vediamo in figura 2, il downloader scarica da un URL il keylogger.

Fig.3 codice del downloader

Mentre in figura 3, il codice crea la stringa da scrivere nella chiave di registro di Windows per far si che il keylogger parta ad ogni accensione della macchina.

La stringa è composta dal nome del percorso dove il file sarà scaricato (la cartella dell’utente) ed il nome del file eseguibile.

La chiave di registro che viene scritta è “HKEY_CURRENT_USER/Enviroment/UserInitMprLogonScript”  la quale, leggendo dalla documentazione del sistema operativo, serve a far girare un software a nostra scelta ad ogni login di un utente.

Che questa chiave di registro sia sfruttata da molti malware per attivarsi in modo automatico ad ogni accensione, è documentato anche nel sito web di mitre.org (si puo’ trovare a questo link https://car.mitre.org/analytics/CAR-2020-11-001/ ).

Una volta che il keylogger è stato scaricato e la chiave di registro aggiunta, il keylogger viene lanciato.

A questo punto la vittima avrà capito che il PDF non era un PDF e lo avrà buttao nel cestino, ma ormai il software è attivo e pronto ad attivarsi nuovamente ad ogni accensione.

Vediamo adesso l’analisi del ¹keylogger.

STEP 2 il keylogger

fig 4 codice del keylogger

Il keylogger (fig.4) prende il nome dell’utente corrente e stabilisce il percorso del file dove scrivere i dati “dati.txt”.

fig 5 codice del keylogger

fig 6 codice del keylogger

fig 7 codice del keylogger

fig 8 codice del keylogger

Le figure 5,6,7 e 8 è rappresentato la parte di codice che identifica il keylogger vero e proprio, la scrittura dei dati nel file dati.txt, e l’esfiltrazione di tale file verso un host controllato dall’attaccante via FTP ogni circa 2 minuti.

Una volta che la vittima ha cliccato il finto PDF ed innescato il codice, controllando la directory dell’utente possiamo trovare il file key.exe ed il file dat.txt come si vede in fig.9.

fig 9 directory dell’utente

Inoltre controllando i processi attivi di Windows, possiamo trovare il keylogger che corrisponde al file key.exe attivo (fig.10).

fig 10 processi di Windows, Inoltre abbiamo caricato il file con il downloader sul sito web  VirusTotal per una analisi e sembra che pochi antivirus lo rilevino come sospetto come si vede in fig.11.

fig 11 risultato di VirusTotal

Conclusioni e hardening

Mascherare un file eseguibile da PDF per Windows è molto semplice ed il fatto che default Windows non mostri le estensioni dei file, non aiuta a riconoscerli.

Poi da quanto abbiamo rilevato , Windows Defender non sembra essere di aiuto per la sicurezza in quanto non è mai intervenuto per bloccare i file (sia il downloader che il keylogger).

Come proteggerci allora?

Oltre i classici consigli di non aprire mai file che non ci si aspetta, nel contattare il mittente anche telefonicamente, nel caso vi sia un recapito, per assicurarci che abbia intenzionalmente inviato i file e non sia anche lui vittima di un attacco, queste sono le azioni che mitigano il rischio delle vostre macchine contro questo tipo di attacchi:

  1. abilitare la visualizzazione delle estensione dei file in Windows in modo da vedere il “.exe” nonostante l’icona del PDF
  2. avere un antivirus aggiornato
  3. bloccare tutte le connessioni in uscita sul firewall di Windows ed abilitarle solo per i software legittimi 

È un lavoro un po’ noioso,bisogna fare una regola per ogni software utilizzato che necessita di una connessione ad internet, ma qualora l’antivirus non rilevasse il downloader, il firewall consentirebbe di scaricare il keylogger.

Il finto PDF sarebbe stato cestinato e l’avvio del software non sarebbe andata a buon fine.

Inoltre è buona pratica controllare i processi attivi, specialmente se si nota un consumo di risorse anomalo (o anche una ventola che parte piu’  spesso del normale) e se sono state scritte chiavi di registro.

In ambito aziendale poi un SIEM che faccia una baseline del sistema e che rilevi ogni cambiamento su elementi critici come le chiavi di registro di tutti gli endpoint, consentirebbe di rilevare tempestivamente questo tipo di attacchi. 

Comments are closed