Notepad++: Analisi del Malware RedLine – Parte 2

Pubblicato da u883 il

Come descritto nel precedente articolo, è stata identificata una campagna Malware che sfrutta GoogleAds per pubblicizzare il download di una falsa installazione Notepad++. Analizzando il codice è stato possibile identificare la presenza del RedLine Stealer.

Eseguendo il download dal falso sito internet, si ottiene il file ZIP (npp.8.4.1.Installer.x64.zip):

Evidenza del file di installazione Notepad++
SHA-256: 9F7B0E7B7254DF1F1F723F5F048C7D5A864CBED4BB875732BEFD33ECDA645E54

1- File di installazione

file di installazione
SHA-256: D7CD49477AD1B8C676DC3507372CA774A69AF98280DB45A1C9AD0C5F0A4C309E

2- Avvio della compromissione

Avviando il file di installazione viene lanciato il processo di compromissione del sistema affiancato dalla reale installazione del software Notepad++. Viene scritto su disco il file DRIVER~1.exe, scritto utilizzando il framework .NET.

MD5:     215f71b938daacad9625b251c880264a
SHA-1:   22689156e4318332f2560f1a4909febc19226582
SHA-256: f2394824fcf883e783347ca22f5c610c65e6168e428d382e89fff96b70ae7dc2
Entrypoint

La presenza di numerose istruzioni goto, veicolate da controlli e operazioni sulla variabile num e l’utilizzo di nomi per variabili, funzioni e classi non attinenti alla semantica del programma ha dato evidenza dell’applicazione di procedure di offuscamento e virtualizzazione del codice.

3- Analisi Dinamica

Eseguendo attività di analisi dinamica, è stato possibile identificare la prima istruzione del Malware Redline:

getApplicationManifestBytesSerialize.AccessRuleFactoryMda,

la quale a sua volta richiama il metodo IsEnumSourceLength dalla stessa classe.

Caricamento della dll contenuta nell’eseguibile
Decodifica della dll contenuta nell’eseguibile

La funzione esegue la decodifica e carica un array di byte in memoria. Questi vengono estratti e salvati in un file (Sbpxsycujbk.dll):

Sbpxsycujbk.dll 6903D034420A0FA693EFF7E32B8837567C4E7E2E60FD4197C663CCDA3331FD38
Sbpxsycujbk.dll,
SHA-256: 6903D034420A0FA693EFF7E32B8837567C4E7E2E60FD4197C663CCDA3331FD38

Il programma prosegue costruendo il nome di un metodo della dll appena importata che verrà successivamente invocato. Il metodo coinvolto è Xxgynyqprkwmjd.Wulxsfeuvyfwxzwxcdyric().

Costruzione del nome del metodo da invocare
Caratteristiche del metodo da invocare

La dll fa uso del framework .NET, le cui caratteristiche relative all’offuscamento e alla virtualizzazione del codice risultano essere simili a quelle dell’eseguibile principale. Nello specifico si tratta di Eazfuscator.NET che permette diversi livelli di offuscamento e virtualizzazione di codice .NET.

La dll è stata importata in un programma C# che ne invoca il metodo. In questo modo è stato identificata l’utilizzo della configurazione del Malware RedLine estratta da una sequenza di byte e successivamente trasformata in oggetto C#:

Configurazione del malware
Utilizzo della configurazione del malware

4- Comportamento e configurazione del Malware

Il comportamento del Malware (RedLine) può essere riassunto in una serie di step:

  • Attesa di 10 secondi per rallentare l’esecuzione: viene lanciato un processo avente come comando “cmd /c timeout 10”
Esecuzione del processo
Dettagli sull’esecuzione
  • Enumerazione dei moduli del processo: vengono enumerati i moduli caricati dal processo e controllata la presenza di SbieDll.dll tra gli stessi
Enumerazione dei moduli caricati dal processo
  • AntiVM: vengono effettuate query WMI per cercare la presenza di valori riconducibili a sistemi virtualizzati
Query WMI per il riconoscimento di sistemi virtualizzati – Pt.1
AntiVM basata sulla ricerca di parole chiave all’interno di informazioni di sistema – Pt.1
  • Ulteriore ricerca di parole chiave per il riconoscimento di sistemi virtualizzati
Query WMI per il riconoscimento di sistemi virtualizzati – Pt.2
AntiVM basata sulla ricerca di parole chiave all’interno di informazioni di sistema – Pt.1
  • Scrittura su disco ed esecuzione dell’effettivo installer del software Notepad++: l’installer del software Notepad++ viene salvato in una cartella temporanea e successivamente eseguito
Costruzione del path dell’installer
Scrittura ed esecuzione dell’installer
  • Decodifica ed injection di un ulteriore eseguibile: un array di byte viene decodificato e successivamente iniettato nel processo relativo al software.
Controllo dell’esistenza di InstallUtil prima dell’injection

5- RedLine Beacon

L’eseguibile iniettato in memoria, che è stato estratto ed analizzato, risulta essere un beacon di RedLine la cui configurazione è codificata in una struttura dati ed il cui contenuto degli attributi è stato cifrato tramite l’utilizzo di una chiave segreta (anch’essa contenuta nella configurazione).

Configurazione del beacon

I valori vengono decifrati da specifici metodi presenti nell’eseguibile. Il metodo di decifratura identificato risulta essere relativo ad un semplice cifrario basato sull’operazione di XOR

Metodo utilizzato per la decifratura delle stringhe

La configurazione del Beacon RedLine è la seguente:

  • IP = “194.36.177.124:39456”
  • ID = “Notepad_2”
  • Message = “”
  • Key = “Bloodheat”
  • Version = 2
Entrypoint del beacon
  • Il beacon effettua alcuni controlli sulla lingua del sistema e termina se identifica lingue appartenenti ai paesi del CIS (Commonwealth of Independent States)
Controlli sulla lingua del sistema

Il beacon RedLine si compone di alcune funzionalità caratteristiche di certo genere di programmi, dall’esecuzione di codice alla ricerca di componenti specifiche del sistema (processi, RAM, file, etc…). Le attività da svolgere (task) vengono richieste al server di comando e controllo ed eseguite dal programma.

Alcune funzionalità del beacon

5- Riferimenti esterni – RedLine