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.
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”.
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”.
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.
È possibile anche analizzare l’accesso da parte del malware sample al registry path “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\filename”
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:
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.
Siamo in una condizione di packed malware con una percentuale di entropia di circa dell'89 %.
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”;
ma anche l’interessante stringa “IsDebuggerPresent” (riferimento di antidebugging utilizzato dal sample).
Di seguito una parte del codice esadecimale dell’artefatto che può essere utilizzata per identificare lo stesso:
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.
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.