Elementi importanti dell’analisi:
- Data di compilazione del sample preso in esame
- Analisi delle differenze tra il sample specifico della presente analisi e samples più datati
- Logging dell’infection cycle del ransomware
- Rust scripts execution
- Configurazione di BlackCat Ransomware
- SMB shares e PsExec propagation
- Esecuzione di comandi di terminazione di servizi di servers IIS
- Evidenze di esecuzioni di comandi bcdedit
- Oggetti RSA utilizzati in fase di infezione da BlackCat Ransomware
BlackCat è una gang ransomware di origine russa che ha iniziato le proprie attività di cybercrime nel Novembre 2021.
Il sample specifico sottoposto ad analisi è stato compilato il 23 Gennaio 2023 e possiede alcune caratteristiche differenti rispetto ai samples di BlackCat Ransomware più datati. Nel dettaglio, risulta esserci una maggiore attenzione all’utilizzo di funzioni di access privileges gaining, come per esempio SeSecurityPrivilege, SeTakeOwnershipPrivilege ma anche di caricamento di drivers, ovvero SeLoadDriverPrivilege. Inoltre risultano esserci alcune TLS callbacks all’interno della sezione .text, le quali permettono di eseguire subito il codice di inizializzazione di ogni thread.
Dall’analisi effettuata sembra esserci maggiore attenzione in merito alla fase di logging e “verbose”, ma soprattutto al controllo di files già criptati o di files già utilizzati da altri processi esterni.
Conosciuto anche come ALPHV Ransomware, esso ha sempre mirato ad un contesto di evasion molto efficace, nello specifico il linguaggio e la struttura di programmazione del threat che usa funzioni di Rust scripting. Per quanto riguarda le vittime del ransomware, i settori di riferimento riguardano soprattutto Aviation, Construction, Education, Energy, Entertainment, Fashion, Financial Services, Government, Hospitality, Information Technology, Transportation. I Paesi coinvolti sono: Stati Uniti, Australia, Canada, Cina, Francia, Germania, India, Italia, Giappone, Romania, Spagna, Taiwan e Regno Unito. [0]
Matrice TTPs BlackCat Ransomware:
ANALISI STATICA ED INSPECTION
Nella presente analisi è stato preso in considerazione un sample di BlackCat Ransomware (Hash: 51f8e4c4ff2163b9e1853cf0b7aa5ed8). Il malware è stato sviluppato mediante GNU Binutils. Dalle stringhe estraibili è possibile osservare evidenze di logging associabili a vari moduli contenuti all’interno del threat: ad esempio Logger, Supervisor, Discoverer, File Processing e File Unlocker ma anche BCryptGen, che come vedremo più avanti sarà fondamentale per la generazione di alcuni attributi principali per la fase di crittografia dei files target.
Il sample è stato compilato il 23 Gennaio 2023:
Il ransomware possiede le seguenti sezioni compatibili con un’azione di packing: .text, .rdata e .reloc. È importante sottolineare il fatto che la maggior parte dei riferimenti alle principali funzioni ed ai contesti di Rust scripts execution, sono contenuti all’interno della sezione .rdata, non .text. Ciò denota un affidamento dei contesti d’esecuzione di BlackCat Ransomware a scripts Rust esterni, piuttosto che possedere funzioni interne alla sezione .text e quindi eseguibili direttamente.
A seguire la distribuzione delle sezioni del PE:
La sezione .rdata risulta essere fondamentale dal momento che viene utilizzata come “sezione d’appoggio” al fine di eseguire le funzioni di infezione ed encryption, sono presenti inoltre diverse istruzioni di JE, JB e LOOPNE. L’istruzione LOOPNE può essere utilizzata con lo scopo di costituire un loop d’esecuzione, fintantochè i valori saranno diversi.
BlackCat Ransomware effettua subroutines di encryption basate su configurazioni codificate in JSON, che contengono valori booleani per ogni attributo di configuration. Ad esempio, è possibile visionare opzioni che fanno riferimento a “config_id”, “extension”, “public_key”, ecc. E’ possibile eseguire BlackCat Ransomware mediante un access token e specificare per esempio l’opzione di target per le network shares, la modalità “verbose” oppure se l’attaccante desidera loggare tutti i processi di encryption ed infezione su un file di log. A seguire alcuni riferimenti ad attributi della configurazione in questione, l’operazione di cleaning dell’event log di Windows da parte della minaccia; nonché il dropping del wallpaper del ransomware e le ransomware note, destinate alle vittime.
Qui alcuni riferimenti inerenti all’eliminazione di copie shadow (effettuata mediante il processo vssadmin.exe e wmic.exe, quest’ultimo, tra le altre cose, viene utilizzato anche al fine di ottenere informazioni e dettagli individualizzanti della macchina compromessa e dell’utenza di dominio).
Vi è una struttura della configurazione costruita come segue: ${EXTENSION}${ACCESS_KEY}{NOTE_FILE_NAME}.png, la configurazione in questione prende in considerazione la chiave ACCESS_KEY, che verrà poi utilizzata per il ransom website al fine di identificare in modo univoco l’infrastruttura compromessa. A seguire, inoltre, dettagli in merito all’algoritmo di encryption AES ChaCha20.
Di seguito alcune evidenze di azioni di enumeration sul protocollo NetBIOS e null shares IPC$. All’interno della configurazione del malware è possibile specificare la cancellazione di snapshots delle macchine virtuali e le modalità di interazione ed infezione con le istanze di VM ed ESXi. Nello screenshot sottostante vi è un riferimento preciso all’attributo ACCESS_TOKEN, il quale è fondamentale al fine di permettere l’esecuzione del ransomware ed intraprendere azioni di encryption, logging e configuration.
BlackCat Ransomware effettua UAC bypass raggirando quindi il modulo di protezione di Windows User Access Control, che potrebbe effettivamente prevenire l’esecuzione malevola. Vi è una quantità piuttosto numerosa di funzioni che possono essere utilizzate con lo scopo di ottenere più privilegi d’esecuzione e di caricamento di drivers. Esemplificando, si notano le funzioni SeSecurityPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege e SeSystemProfilePrivilege. E’ presente un contesto di privilege token di threads con l’attributo “elevate_thread_token”.
A seguire alcuni riferimenti ai checks del ransomware in merito ad eventuali files vuoti o già criptati, nonchè la variabile necessaria access_token.
All’interno delle stringhe estratte possiamo notare il richiamo del processo wevtutil.exe che viene utilizzato per eliminare gli event logs di Windows, con lo scopo preciso di rendere più difficoltosa un’eventuale operazione di investigation ed incident response. Vi sono una serie di estensioni di files che vengono “saltate” durante la fase di encryption ma che sono tuttavia prese in considerazione in caso di data extortion, se il pagamento del riscatto non viene effettuato. Un elemento fondamentale dell’esecuzione di BlackCat prevede il richiamo di uno script offuscato in Base64 mediante il processo iisreset.exe che provvede a stoppare tutti i servizi SQL di servers IIS posti come target.
Provvedendo a decodificare il comando eseguito si può osservare il ciclo foreach di enumerazione dei servizi e dell’identificazione del servizio “sql”:
A seguire alcuni riferimenti a UDP Sockets ed a localhost 127.0.0.1, all’interno di tale contesto vi sono attributi associati al client, server e protocol_recv; nonché l’enumerazione dei servizi specificata con l’attributo “enum_services”:
Qui esecuzioni di assertions e checking associabili ad alcune librerie di Rust utilizzate per il modulo locker, fondamentale per l’attività di crittografia dei files. Il comando “bcdedit” viene invece impiegato con tutta probabilità al fine di effettuare Windows Boot Safe Mode per permettere la gestione corretta di files che possono essere potenzialmente usati da altri processi.
Al fine di effettuare connessioni a shares di rete viene eseguito il comando net use /user:
Di seguito evidenze d’esecuzione di comandi di deletion del registro e dei servizi, ovvero “reg delete” (con opzione force “/f”) e “sc delete”. All’interno della configuration del ransomware vi sono riferimenti a “kill_all” e “kill”:
Sono evidenziabili “segnaposti” dell’inizio e la fine della configuration di infezione, nonché ad esecuzioni PsExec e lo script library/locker/src/core/access_key.rs:
BlackCat Ransomware fa uso di alcuni funzioni per gestire la modifica di informazioni e dettagli della configurazione di alcuni servizi (ChangeServiceConfigW), enumerazione di servizi (EnumServicesStatusExW), creazione di processi mediante utenze e tokens (CreateProcessWithTokenW, CreateProcessAsUserW).
L’eliminazione di alcune chiavi di registro è potenzialmente relativa all’azione di corruzione e chiusura di tools specifici, come ad esempio Veeam Backup.
A seguire ulteriori dettagli inerenti alle sockets, comprendenti l’azione di connection, listening ed ottenimento di socket names.
Qui un riferimento alla chiave di registro posta in HKEY_LOCAL_MACHINE inerente a LanmanServer, servizio di istanze di server:
Si osservano richiami a files di tipo .backup, che probabilmente vengono salvati temporaneamente, con tanto di stringa di logging “Skipping couldn’t backup”:
Di seguito sono osservabili alcune stringhe riferibili ad errori di configurazione non valida, chiave pubblica non valida ed access token errato.
Il ransomware provvede inoltre ad effettuare il mounting di partizioni nascoste:
A seguire ulteriori estensioni di files presi in considerazione, come ad esempio BMP e MPG:
All’interno della sezione .rdata sono presenti dettagli che fanno riferimento alla verifica e alla cattura di errori di decryption durante l’esecuzione del threat:
Qui un’evidenza relativa alla struttura della chiave pubblica RSA, utilizzata per la fase di crittografia dei files della vittima. La chiave pubblica è a sua volta criptata.
Mediante una file inspection è possibile notare i seguenti attributi sospetti: la particolarità delle sezioni del PE e di crittografia, ma anche la gestione di tasks inerenti all’amministrazione del desktop, esecuzioni WMI e Base64 encoding.
Qui alcuni dettagli in merito agli imports effettuati da Portable Executable, le librerie vengono utilizzati per molteplici scopi, come ad esempio: gestione dei servizi della macchina, del SID dell’utenza di dominio, generazione randomica BCrypt, creazione di processi mediante specifici process tokens, creazione di Hard Links e Symbolic Links, SMB shares connections, sockets connections, files enumeration loops e ottenimento della cartella del profilo utente e del Desktop Wallpaper.
All’interno del codice esadecimale della minaccia possiamo notare un dettaglio che descrive un errore relativo all’impossibilità di invio dati mediante un oggetto socket.
All’interno della sezione .text vi sono evidenze di TLS callbacks, pertanto sono “chiamate” che permettono di eseguire codice di inizializzazione di ogni thread:
A seguire alcune evidenze raccolte durante una sessione di debugging di BlackCat Ransomware, ove si osserva la presenza di calls a scripts .rs, in particolare alla libreria locker, nonché la configurazione di batchs scripts dropping:
Qui i dettagli d’esecuzione del comando iisreset.exe con parametri offuscati, utilizzati per terminare servizi SQL di servers IIS:
Qui l’eliminazione delle copie shadow mediante il comando “Delete Shadows /all”
Di seguito un dettaglio al parametro di localhost nel contesto d’infezione:
A seguire l’esecuzione del comando “net use /user” per procedere con l’infezione di network shares:
A seguire i dettagli di quella che potenzialmente è la chiave pubblica criptata all’interno di un file cifrato. Il pattern esadecimale individualizzante della chiave risulta essere 19 47 ba 86:
Qui i dettagli di un esempio di log di esecuzione di BlackCat Ransomware, ove si evince la terminazione di diversi processi e servizi specifici, come ad esempio MVArmor, Veeam Backup, ecc.:
Il pattern “Main Loop” identifica una sessione fondamentale dell’infection chain, in quanto è identificabile poco prima dell’inizio della crittografia dei files target:
Contestualmente al “Main loop” viene richiamato lo script stack.rs della libreria locker:
A seguire un tentativo di debugging ed ottenimento della struttura “RsaPrivateKeypubkey_components”. È stato impostato un breakpoint poco prima di un’istruzione di push riferibile alla struttura poc’anzi menzionata.
A seguire un’operazione di dump della memoria dell’esecuzione in questione:
IOCs:
51f8e4c4ff2163b9e1853cf0b7aa5ed8
64e39d15c100e0752e7262df6d45b9fb2ce57e9bd66b63158e5aeb0e96d29f23
psexec.exepsexec_args
runneradmin
Regola YARA:
rule BlackCatRule {
strings:
$black_str = “runneradmin”
$black_hex = { 19 47 BA 86 }
condition: $black_str or $black_hex
}
CONCLUSIONI:
BlackCat Ransomware è stato individuato per la prima volta in wild nel mese di Novembre 2021, tuttavia ancora oggi è protagonista di attacchi su larga scala.
Il threat possiede caratteristiche e peculiarità che sono accomunabili anche ad altri ransomware come l’utilizzo di Cobalt Strike per il deployment e la fase di infezione, l’impiego di PsExec per la commands propagation e la persistenza di scheduled tasks, credential stealing e dumping mediante Mimikatz e Lazagne.
Ciò che differenzia BlackCat da altre tipologie di ransomware è l’utilizzo strutturale di scripts Rust esterni. Dal 2022 in poi vi sono nuove minacce all’interno del threat landscape che sempre di più emulano l’utilizzo cruciale di piattaforme di scripting esterne, al fine di evitare eventuali detections da parte di security solutions. E’ prevedibile quindi l’evolversi di future minacce che utilizzano tecniche di evasion, mettendo a dura prova le soluzioni Antivirus ed EDR più moderne, non solo affidandosi a tecniche di packing e obfuscation, ma anche a modalità sempre più efficaci di fileless infections, nonché multistage malware phase, che preveda il coinvolgimento di una struttura del codice malevolo in più linguaggi. Ciò permette, fra le altre cose, il potenziale utilizzo di un’enorme quantità di librerie che, combinate tra loro, compongono l’esecuzione malevola generale.
Un’ulteriore caratteristica curiosa e particolare di BlackCat Ransomware risiede nel fatto che esso possiede dimensioni piuttosto elevate, tale peculiarità può essere attribuibile al contesto d’esecuzione che fa affidamento agli scripts Rust.
Riferimenti:
[0] (introduzione della ransomware gang): BlackCat Ransomware Gang (picussecurity.com)
[1] (immagine): BlackCat Ransomware Gang (picussecurity.com)