Lo scenario
L’evoluzione del ransomware nell’ultimo quinquennio è stata sicuramente caratterizzata da un rateo di crescita e innovazione senza precedenti. La trasformazione di quelle che erano operazioni quasi “artigianali” e non particolarmente mirate a veri e propri franchise del crime online non ha termine di paragone nel (seppure recente) passato di questo mondo.
Verso la fine del 2022, abbiamo assistito ad una nuova possibile alba su questo fronte. Il giro d’affari generato dalle gang ransomware.
Lockbit 3.0, il gruppo più prolifico in questo mondo, ha infatti subito un data leak del proprio codice sorgente.
L’intero “how to” e il codice del suo ransomware è stato reso pubblico a seguito di probabili dissidi interni ai vertici dell’organizzazione.
Questa spaccatura, inizialmente accolta come nota positiva dagli esperti del settore, ha però generato delle conseguenze inattese. Come un’idra; tagliata una testa ne sono nate due.
Attingendo da questa fonte e aggiungendo qualche linea customizzata, infatti, altri Criminal Hacker hanno dato vita a gruppi di ransomware “clone” o quasi. Da subito attivi e distruttivi.
In questa analisi realizzata dal SoC team di Swascan, sono stati analizzate le particolarità di questi offshoot e cosa li rende efficaci.
Analisi
In questa analisi viene presentata una panoramica di ransomware threats basati sul codice sorgente dei builders di Lockbit 3.0 Ransomware e Babuk Ransomware, i quali sono stati coinvolti in data leaks.
Nei due casi di source code leaking si può notare come le informazioni presenti nel codice siano state utilizzate come base di sviluppo per un nuovo threat behaviour.
Nel caso di Lockbit 3.0, il codice sorgente del builder della minaccia è stato utilizzato al fine di sviluppare la nuova variante “Bl00dy Ransomware”. Nel caso invece di Babuk Ransomware, il leaked source code è stato impiegato per creare una variante che, in termini di nomenclatura, differisce ben poco: una lettera “c” aggiunta all’interno del nome originale del ransomware. Altre varianti di Babuk Ransomware includono Rook Ransomware, PayLoad Bin e Babuk Ransomware (versione Novembre 2022).
Appena dopo il leak del builder di Babuk Ransomware il gruppo ha iniziato lo sviluppo di Babuk V2, mentre un’altra parte del gruppo ha aperto il forum di cybercrime Ramp forums. Ramp forums aveva come obiettivo la divulgazione di informazioni e dettagli in merito a tecniche ed operazioni di RaaS (Ransomware as a Service).
Le vittime inerenti a Babuk Ransomware (e le sue varianti) includono importanti organizzazioni ed istituzioni, ad esempio: Washington DC Metropolitan Police Department, Houston Rockets, Serco, Kazakh financial institution (Rook Ransomware). Con la nuova variante di Novembre 2022 il threat ha colpito un’enorme infrastruttura di oltre 10.000 servers ed endpoints; come primo step è stato infettato il domain controller, per poi procedere con un’infezione propagata in tutta l’infrastruttura.
Di seguito, più nel dettaglio, le minacce ransomware nate dai rispettivi source code e data leaks di Lockbit 3.0 Ransomware e Babuk Ransomware:
BL00DY RANSOMWARE
Al fine di esaminare le caratteristiche principali di Bl00dy Ransomware, prendiamo come esempio il sample avente hash ef0ee6a6a643347082e097f29cd351150b2d4196faef4ce926a307c2ca46f96a. Come è possibile notare le signatures di detection dei vari vendors sono relativi a Babuk; questo per il fatto che con tutta probabilità le firme antivirali identificano i medesimi patterns che si possono rilevare anche per Babuk Ransomware. Tra le vittime degli attacchi perpetrati da Bl00dy Ransomware sono presenti medical practices, denominate nello specifico Primary Care of Long Island e OnCallPractice.
Matrice TTPs Bl00dy Ransomware:
Di seguito i dettagli del Portable Executable e delle sezioni del file, ove è possibile rilevare che il coefficiente d’entropia della sezione .text non risulta essere particolarmente alto:
d’entropia della sezione .text non risulta essere particolarmente alto:
Per quanto riguarda gli imports, il threat richiama alcune librerie per scopi specifici:
- ADVAPI32.dll (al fine di eseguire le funzioni CryptAcquireContextW, CryptGenRandom, CryptReleaseContext per gestire il context di crittografia)
- MPR.dll (con lo scopo di enumerare le shares di rete mediante funzioni come ad esempio WNetCloseEnum, WNetEnumResourceW, WNetGetConnectionW, WNetOpenEnumW)
- KERNEL32.dll (al fine di richiamare funzioni di files gathering loop, ovvero: FindFirstFileW, FindFirstVolumeW, FindNextFileW, FindNextVolumeW e FindVolumeClose)
Bl00dy Ransomware elimina le copie shadow rendendo quindi più difficoltoso il recupero dei files criptati:
L’estensione aggiunta ai files criptati è “.bl00dy” e a seguire sono specificate le regole IDS identificate durante la detonation del malware in questione. Inoltre viene droppato il file di Readme per le victims denominato How To Restore Your Files.txt:
- Shadow Copies Deletion Using Operating Systems Utilities
- Process Creation Using Sysnative Folder
- Wow6432Node CurrentVersion Autorun Keys Modification
- Creation In User Word Startup Folder
- Failed Code Integrity Checks
Un filename spesso utilizzato da Bl00dy Ransomware è “chrome0.exe” che, richiamando il browser Chrome, può facilmente trarre in inganno le potenziali vittime. A seguire una rappresentazione grafica di esecuzione di Bl00dy Ransomware:
Il threat effettua doppia estersione in quanto, non solo cripta i files delle vittime, ma minaccia anche la pubblicazione di dati sensibili in caso di mancato pagamento. L’indirizzo e-mail di contatto della gang risulta essere filedecryptionsupport[@]msgsafe[.]io:
Prendendo ad esempio uno dei files criptati durante la detonation è possibile individuare un pattern che indica il processo di criptazione:
BABUCK RANSOMWARE
Babuck Ransomware (Hash:c94a81fdf688d220827320e88cc0b89af8690142abe5c602131b6659297c7d24) viene identificato dalle fonti OSINT come Trojan.Ransom.Babuk.J a causa della similitudine con i patterns identificativi da firma antivirale ed eredità con il threat originale Babuk Ransomware.
Il PE è stato sviluppato in C++, l’entropia della sezione .text (inerente alle istruzioni CPU eseguite dal malware) è piuttosto alta ma anche il Chi Quadro risulta essere elevato, più nello specifico il valore è 796918.94:
Le altre sezioni del Portable Executable (dati e risorse utilizzate) non presentano un’alta entropia. Questo perché non è nell’interesse dei malcoders rendere tali informazioni packed o offuscate.
All’interno delle funzioni richiamate tramite gli imports è presente anche GetTickCount, la quale può essere utilizzata anche per effettuare Anti-VM. Inoltre viene presa in considerazione la folder di Windows:
Il ransomware può essere diffuso anche tramite dispositivi USB infetti:
Si noti l’evidenza di stackstrings offuscate:
Di seguito i dettagli inerenti a VM detections:
A seguire invece i dettagli del file di readme per le victims e l’estensione aggiunta .babyk:
Il threat rimuove le copie shadow al fine di rendere più difficoltoso il recupero dei files criptati:
Verificando la detonation del ransomware è possibile osservare come esso controlli l’attivazione di Windows Defender mediante l’argomento “-wdenable”:
Alcune stringhe estraibili denotano la presenza di riferimenti a Veeam Backup e a shares e paths:
Di seguito i dettagli di parte del contenuto del readme del ransomware che contiene l’indirizzo e-mail di contatto babuckransom[@]tutanota[.]com3 e il Bitcoin address 1E6cvG6iEbufvYspsDa3XQ3WJgEMvRTm9i2:
Sono presenti poi stringhe relative a processi di servizi target del Babuck Ransomware (ad esempio VeeamTransportSvc e oracle.exe):
Qui i dettagli delle TTPs inerenti a Babuck Ransomware:
Di seguito un’execution flow catturata durante una sandbox detonation analysis:
A seguire un’esecuzione della funzione CryptGenRandom e la consequenziale funzione di puntamento SetFilePointerEx:
ROOK RANSOMWARE
Rook Ransomware ha mietuto numerose vittime fin dall’inizio delle sue attività ed ha avuto numerosi ed ingenti guadagni illeciti.
Nel nostro caso prenderemo come esempio il sample avente hash 96f7df1c984c1753289600f7f373f3a98a4f09f82acc1be8ecfd5790763a355b, il medesimo è riconosciuto come malevolo dalle fonti OSINT ed identificato come Ransomware/Win.Rook.C4893677:
Dalle informazioni estraibili dal Portable Executable è possibile notare come lo stesso sia stato sviluppato in .NET:
Questo è evidenziabile dal numero delle sezioni del PE:
Il threat è stato sottoposto ad un’azione di packing mediante il packer VMProtect, difatti è possibile notare la presenza delle sezioni .vmp0 e .vmp1. Inoltre il coefficiente d’entropia risulta essere molto alto, nello specifico il valore è 7.91.
Dagli imports effettuati dalla minaccia è importante sottolineare le seguenti items:
- MPR.dll (può essere utilizzata al fine di enumerare le risorse di rete):
- ADVAPI32.dll (può essere utilizzata per acquisire il context di encryption)
Il ransomware effettua persistenza tramite OS Autostart items putting e mediante la creazione di processi in modalità “suspended”, spesso tale tecnica è riconducibile a process injection e process hollowing:
Sono presenti diversi tentativi di anti analysis (anti-VM e anti-debugging):
Verificando le attività di registro effettuate durante una sessione di detonation è possibile notare la presenza di chiavi di registro, riferibili alle chiavi privata e pubblica di Rook Ransomware:
A seguire inoltre l’eliminazione di copie shadow:
La funzione GetTickCount viene spesso utilizzata con lo scopo di identificare se l’ambiente d’esecuzione è virtualizzato o meno:
PAYLOAD BIN (ED EVIL CORP)
Dopo il leak del builder del threat Babuk Ransomware è stato aperto un nuovo data leak website: Payload Bin. Da qui il nome della nuova minaccia nata contestualmente agli attacchi avvenuti in concomitanza con il leak del builder di Babuk. Successivamente, in seguito ad indagini più approfondite, risultò che dietro questi nuovi attacchi si celava la gang Evil Corp, la quale possedeva come focus l’attività di data extortion, anziché la crittografia dei dati delle vittime.
Il sample preso in considerazione ha come hash 69775389eb0207fec3a3f5649a0ad9315856c810f595c086ac49d68cdbc1d136 ed è stato sviluppato in C++.
All’interno degli imports effettuati dal threat è possibile notare la presenza della libreria ADVAPI32.dll, utilizzata per manipolare le chiavi di registro:
All’interno delle stringhe estraibili dal Portable Executable è possibile identificare la funzione GetTickCount, che può essere utilizzata dal threat per rilevare un eventuale ambiente d’esecuzione virtualizzato, nonché le funzioni LoadLibraryW e CreateProcessW:
E’ possibile individuare quello che sembrerebbe essere l’ID di un’interfaccia:
Sono presenti numerosi riferimenti all’EventLog di Windows, probabilmente a scopo di risultare inerente ad applicazioni SQM:
Si notano poi riferimenti ad attributi SQM (BLOB data relativi a richieste HTTP POST), all’interno delle stringhe è presente un riferimento al DWORD Datapoint Value:
Gli attributi specificati includono anche dettagli del processo in questione, ovvero l’hash dello stesso:
Il ransomware in questione si maschera dietro una falsa SQM Microsoft application:
La sezione .text del Portable Executable risulta essere in uno stato “packed”, difatti il valore d’entropia è 7.83286.
Analizzando il flusso d’esecuzione del threat è possibile notare riferimenti che indicano il check di un’interfaccia, nello specifico l’ID della stessa è aa5b6a80-b834-11d0-932f-00a0c90dcaa9, la quale è associata anche a minacce Emotet:
A seguire i dettagli d’esecuzione della funzione GetTickCount, che può essere utilizzata a scopo di antidebugging ed anti-VM:
E’ poi presente una fase di unmapping di uno specifico Portable Executable in un’area di memoria, che è spesso utilizzato in contesti di process hollowing:
Una volta ottenuti i dettagli dell’interfaccia target, il ransomware esegue la funzione VirtualAllocEx, al fine di effettuare un’allocazione di memoria virtuale:
Il threat possiede, fra gli indicatori sospetti, codifica in Base64:
L’eseguibile è stata compilato il 2 Giugno 2021:
Qui i dettagli delle sezioni del PE:
Di seguito i riferimenti a funzioni LoadLibraryW e LoadLibraryExW:
Il certificato del file risulta essere scaduto:
A seguire ulteriori riferimenti a funzioni di registry gathering, probabilmente relative anche all’interfaccia ottenuta:
All’interno delle risorse del PE è possibile individuarne una di particolare interesse denominata WEVT_TEMPLATE, facente riferimento all’Event Log inerente, nello specifico, a SQM:
Qui i dettagli del disassemblato che fa riferimento alla funzione VirtualAllocEx:
Effettuando una sessione di debugging è possibile notare ancora una volta l’accesso all’interfaccia aa5b6a80-b834-11d0-932f-00a0c90dcaa9:
All’interno dell’execution flow è possibile ottenere evidenza di riferimenti in lingua slovacca, ma anche alla lingua tedesca e svizzera:
Il richiamo della funzione VirtualAllocEx viene effettuato al fine di allocare una porzione di memoria virtuale e viene eseguita la funzione GetProcAddress. GetProcAddress viene spesso utilizzata per ottenere l’indirizzo di una libreria esportata.
Viene successivamente chiamata la funzione 140004BF0 che esegue poi istruzioni int3. Le serie di istruzioni CPU INT3 vengono utilizzate al fine di disporre un contesto di anti-debugging e debugging trap.
Osservando il file readme, inerente ad una compromissione da PayloadBin Ransomware, è possibile notare due indirizzi e-mails degli attackers:
NEW MODIFIED VERSION OF BABUK RANSOMWARE (NOVEMBER 2022)
Durante le ultime settimane sono stati rilevati nuovi attacchi che hanno visto come protagonista una variante Babuk Ransomware completamente nuova, incentrata sull’evasion dalle security solutions più moderne ed avanzate (EDR e Next-Gen AVs).
Questo anche grazie al fatto che il threat può eseguire operazioni inerenti la disattivazione di comunicazioni HTTP dei prodotti di sicurezza, necessari per tasks principali (come ad esempio aggiornamento firme). Il ransomware può effettuare il bypass del modulo User Access Control mediante il registro di sistema:
[1]
A seguire i dettagli della creazione di regole del firewall di Windows per la disattivazione delle comunicazioni delle security solutions:
[2]
Al fine di effettuare payload staging e code injection viene eseguita una decriptazione in runtime per ottenere l’artefatto finale dell’infezione:
[3]
Un dettaglio che differisce dal threat originale è che in questa nuova variante l’eliminazione delle copie shadow avviene tramite esecuzioni WMI e nello specifico esse vengono enumerate tramite la query SELECT * FROM Win32_ShadowCopy:
[4]
IOCs:
- Bl00dy Ransomware:
ef0ee6a6a643347082e097f29cd351150b2d4196faef4ce926a307c2ca46f96a
filedecryptionsupport[@]msgsafe[.]io
- Babuck Ransomware:
c94a81fdf688d220827320e88cc0b89af8690142abe5c602131b6659297c7d24
1E6cvG6iEbufvYspsDa3XQ3WJgEMvRTm9i
Babuckransom[@]tutanota[.]com
- Rook Ransomware:
96f7df1c984c1753289600f7f373f3a98a4f09f82acc1be8ecfd5790763a355b
52 6f 6f 6b 50 72 69 76 61 74 65 4b 65 79 (codice esadecimale della chiave di registro RookPrivateKey)
- Payload Bin (Evil Corp)
69775389eb0207fec3a3f5649a0ad9315856c810f595c086ac49d68cdbc1d136
Rickhood[@]armormail[.]net
Meredithpatrick[@]protonmail[.]com
- New Modified Version of Babuk Ransomware (November 2022)
Al momento non sono disponibili IOCs pubblici
YARA rules:
- Bl00dy Ransomware
rule Bl00dyRansomware {
strings:
$bl00dy_hex = { 66 69 6c 65 64 65 63 72 79 70 74 69 6f 6e 73 75 70 70 6f 72 74 40 6d 73 67 73 61 66 65 2e 69 6f}
condition: $bl00dy_hex
}
- Babuck Ransomware
rule BabuckRansomware {
strings:
$babuck_hex = { 62 61 62 75 63 6b 72 61 6e 73 6f 6d}
condition: $babuck_hex
}
- Rook Ransomware
rule RookRansomware {
strings:
$rook_hex = { 52 6f 6f 6b 50 72 69 76 61 74 65 4b 65 79 }
condition: $rook_hex
}
- PayloadBin Ransomware (Evil Corp)
rule PayloadBinRansomware {
strings:
$payloadbin_hex = { 52 69 63 6b 68 6f 6f 64 }
condition: $payloadbin_hex
}
Riferimenti:
[0] (immagine): b939cf_0fbab080d5084d7785bd882a5bdf2889-mv2.png (1449×874) (redhotcyber.com)
[1][2][3][4] (immagini): Babuk Ransomware Variant in Major New Attack (morphisec.com)
CONCLUSIONI:
Analizzando le caratteristiche di queste nuove varianti, sviluppatesi partendo dal source code dei threats originali, è possibile evidenziare come esse possiedano numerosi elementi di evasion, nonché una sovrastruttura aggiunta ed inerente a nuove funzionalità che rendono le minacce finali sempre più invasive e difficili da identificare.
All’interno di un contesto di questo tipo, i threat actors, autori di tali varianti, sono più facilitati nel dedicare effort quasi esclusivamente ad appositi attributi aggiunti. Esemplificando, un ransomware threat che non preveda nella sua versione originale l’estorsione dei dati rubati alle vittime, potrebbe essere facilmente modificato al fine di includere anche tale malicious activity.
Paradossalmente il leak del codice sorgente può permettere a prodotti di sicurezza e protezione di endpoints (come ad esempio EDR ed XDR) di perfezionare l’identificazione, non solo di minacce specifiche, ma anche di contesti di infezione simili che hanno in comune alcuni connotati, come per esempio patterns esadecimali facenti riferimento a determinate funzioni o mutexes.