Trojan:Win32/Trickbot – Analisi dinamica (parte 2)

Tempo di lettura: 7 minuti

Nella seconda parte del presente articolo viene descritta un’analisi del processo maligno del malware Trickbot mediante l’utilizzo di Process Monitor di Sysinternals e un assessment del file eseguibile. Process Monitor è un tool gratuito che permette di visualizzare con un altissimo livello di dettaglio tutte le operazioni e gli handles dei processi che sono attivi all’interno del sistema operativo. Una funzione molto interessante di Process Monitor è quella che permette di effettuare un’analisi mirata attraverso dei filtri, che permettono di filtrare tutti gli eventi e i processi a seconda di diversi parametri specifici, come ad esempio il PID, il nome del processo, ecc.
Una volta avviato quindi il processo dell’artefatto possiamo subito notare come esso esegua un’operazione di “Process Start”, “Thread Create” e “Load Image”, che punta direttamente all’eseguibile; ma anche una copiosa quantità di operazioni relative al registro (ad esempio RegOpenKey, RegQueryValue, RegCloseKey che sono funzioni utilizzate per interagire con le chiavi del registro di sistema) ma anche operazioni relative a file, in particolare “CreateFile”, “ReadFile”, “CloseFile”.

Molto interessante anche il fatto che il processo effettui una lettura del registro delle policies di crittografia, in particolare del seguente path: “HKLM\SYSTEM\CurrentControlSet\Policies\Microsoft\Cryptography” ma anche ad esempio “HKLM\System\CurrentControlSet\Control\WMI\Security”. È importante anche notare che il sample richiami la libreria “C:\Windows\SysWOW64\rsaenh.dll” che, ovviamente si riferisce all’algoritmo di crittografia RSA.

Analisi dinamica del processo 1
Analisi dinamica del processo 1
Analisi dinamica del processo 2
Analisi dinamica del processo 2
Analisi dinamica del processo 3
Analisi dinamica del processo 3
Analisi dinamica del processo 4
Analisi dinamica del processo 4
Analisi dinamica del processo 5
Analisi dinamica del processo 5
Analisi dinamica del processo 6
Analisi dinamica del processo 6
Analisi dinamica del processo 7
Analisi dinamica del processo 7

Ad un certo punto dell’esecuzione del malware possiamo vedere come esso interagisca anche con la cartella AppData, dimostrato dal fatto che effettua un’operazione di RegQueryValue relativo al path “HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData”. Successivamente si possono visualizzare le tracce fondamentali dell’infezione: la cartella “CmdValidate” situata in “C:\Users\IEUser\AppData\Roaming"; è possibile visualizzare anche un’operazione di tipo “CreateFile” realtiva al path “C:\Users\IEUser\AppData\Roaming”.

Modifiche al registro di sistema
Modifiche al registro di sistema
Analisi del processo 8
Analisi del processo 8
Modifiche in AppData\Roaming
Modifiche in AppData\Roaming
Modifiche della cartella CmdValidate
Modifiche della cartella CmdValidate

Il Trickbot accede anche, come sarà possibile vedere dai prossimi screenshots, a “HKCU\Software\Classes.exe” (quindi al tipo di file eseguibile), alle impostazioni di internet attraverso il path del registro “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\0” con le operazioni “RegQueryKey”, “RegOpenKey” e “RegSetInfoKey”.

Modifiche al registro di sistema 2
Modifiche al registro di sistema 2
Analisi del processo 9
Analisi del processo 9

Attraverso l’analisi con Process Monitor è possibile visualizzare anche l’interazione con la cartella “C:\Users\IEUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”, utilizzata come cartella per le applicazioni impostate in avvio con il sistema operativo, identificata come traccia di persistenza da parte dell’artefatto.

Startup folder
Startup folder

È possibile anche analizzare l’accesso da parte del malware sample al registry path “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\filename”

Analisi del processo 10
Analisi del processo 10

Successivamente all’esecuzione del Trickbot per effettuare l’analisi malware dinamica ho notato che Microsoft Edge non funzionava più correttamente e, una volta aperto il browser per navigare sull’homepage, veniva aperta questa pagina per poi chiudersi immediatamente:

Edge crashed
Edge crashed

Dalla schermata, che appare solo per pochissimi secondi, possiamo visualizzare l’indirizzo della pagina d’errore: ms-appx-web:///assets/errorpages/acr_error.htm?NTPUrl=about:start

Se siete in una situazione in cui Microsoft Edge non riesce ad aprirsi consiglio di seguire questa guida per resettare le impostazioni del browser da zero:

Dopo aver analizzato il processo maligno del Trickbot ho effettuato una fase di assessment; il compilatore dell’eseguibile è Microsoft Visual C/C++ e il linker è Microsoft Linker.

EXE assessment
EXE assessment

Siamo in una condizione di packed malware con una percentuale di entropia di circa dell'89 %.

Entropia del malware
Entropia del malware

Come accennato nella prima parte dell’articolo questo malware ha un metodo molto specifico per mascherarsi: finge di essere uno strumento per proteggere i propri files eseguibili attraverso una password, per questo motivo, infatti, è possibile notare alcuni riferimenti contenuti nelle stringhe estratte dall’artefatto che riconducono a funzione di crittografia, ad esempio: “CryptEncrypt”, “CryptImportKey” (per importare la chiave usata per la crittografia in un Crypto Service Provider), “CryptAcquireContextW” (per inizializzare il context di crittografia), “\PwdFile.exe”, “Passwords are not equal!”, “Password is empty!”, “File Protector”, “File To Protect”, “Protect”, “Enter Password”, “Confirm Password”;

Stringhe estratte 1
Stringhe estratte 1
Stringhe estratte 2
Stringhe estratte 2
Stringhe estratte 3
Stringhe estratte 3

ma anche l’interessante stringa “IsDebuggerPresent” (riferimento di antidebugging utilizzato dal sample).

Anti-debugging 1
Anti-debugging 1
Anti-debugging 2
Anti-debugging 2

Di seguito una parte del codice esadecimale dell’artefatto che può essere utilizzata per identificare lo stesso:

Codice esadecimale dell'artefatto
Codice esadecimale dell'artefatto

L’entrypoint dell’assembly è associato all’indirizzo 00406755 dove viene richiamato, tramite una call, l’indirizzo 0040E5DD al quale è associata un’istruzione push ebp per salvare il valore della funzione chiamata nel registro ebp, che rappresenta il base pointer del frame pointer.

Entrypoint del malware
Entrypoint del malware
Istruzione assembly push ebp
Istruzione assembly push ebp

Per concludere questo articolo consiglio altri due strumenti gratuiti che possono essere molto efficienti per predisporre un’analisi malware dinamica: Autoruns e Regshot.

Autoruns può essere utilizzato per analizzare possibili interazioni da parte di un malware sample per autoavviarsi con il sistema operativo, mentre Regshot può rilevare modifiche e, in generale, interazioni con il registro di sistema; sostanzialmente è come fare una “fotografia” del registro prima e dopo l’avvio di un artefatto e salvare il log delle modifiche applicate.