Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

Cozy Bear punta all’Europa. Malware Analysis degli ultimi e sofisticati strumenti di attacco

Redazione RHC : 19 Maggio 2022 07:24

Cozy Bear (alias NobeliumAPT29The Dukes) è un gruppo di spionaggio informatico, altamente organizzato che si ritiene operi a sostegno del processo decisionale del governo russo almeno dal 2008.

Nobelium prende di mira principalmente i governi occidentali e organizzazioni collegate, con particolare attenzione ai settori del governo, della diplomaziadella politica e dei think tank. Recentemente abbiamo analizzato diverse campagne di spear-phishing legate a questo avversario che comportano l’utilizzo di una DLL a caricamento laterale tramite software firmato (come suite di Adobe) e servizi web legittimi (come Dropbox) come vettore di comunicazione per Command and Control (C&C). 

L’uso improprio di servizi web legittimi è nel tentativo di eludere il rilevamento dal software di analisi automatica. 

Recentemente, ricercatori di terze parti hanno anche riferito di aver utilizzato Trello e la sua API REST per simulare un server Command & Control di primo livello. Oltre a questo tentativo di evasione, come discuteremo in seguito, la DLL side-loaded tenta di sganciare le librerie di Windows caricate nella memoria di processo per eludere possibili EDR.

Per massimizzare le possibilità di successo, Nobelium, in almeno due casi, ha inviato e-mail di spear-phishing da indirizzi governativi falsificati o compromessi. 

Come accesso iniziale abbiamo identificato i seguenti vettori di attacco :

  1. Il primo approccio prevede la distribuzione di un file IMG che, una volta montato, contiene un collegamento LNK e il software firmato con le altre DLL e un PDF esca come file nascosti. Questo vettore di attacco attira l’utente attraverso una tecnica di mascheramento cambiando l’icona del file LNK in un’icona di cartella per convincere l’utente a fare clic su di essa. Infatti, una volta attivata, l’utilità cmd.exe viene invocata per eseguire l’eseguibile firmato e per avviare il side-loading della DLL dannosa (es. AcroSup.dll).
  2. Il secondo approccio prevede l’utilizzo del dropper EnvyScout che è fondamentalmente un file HTML con un JavaScript incorporato progettato per decodificare e rilasciare il payload della fase successiva (HTML Smuggling). Infatti, una volta eseguito il file HTML, il codice JavaScript decodifica un array di byte e salva il risultato in un archivio nella directory Download. In questo caso l’utente è tenuto a decomprimere l’archivio (che contiene il software firmato, le relative DLL e il PDF di richiamo) e ad eseguire manualmente l’eseguibile per avviare la catena (anche se il codice JavaScript contiene snippet inutilizzati per automatizzare il processo).

Il dropper EnvyScout è stato utilizzato da questo attore di minacce in diverse campagne. Da metà gennaio 2022 Cluster25 ha riportato internamente diverse campagne legate al Nobelium contro entità europee che hanno sfruttato kill-chain abbastanza complesse avviate anche con EnvyScout .

Approfondimenti

Nel caso riportato, l’eseguibile firmato è rappresentato da WCChromeNativeMessagingHost.exe del modulo Adobe Create PDF della suite Adobe. 

È un plug-in per Google Chrome. Poiché il pacchetto di malware contiene una copia locale di vcruntime140.dll, una volta eseguito il software, la copia locale di questa libreria di Windows viene caricata nella memoria del programma dalla tabella di importazione PE. Analizzando la copia locale di vcruntime140.dll, abbiamo notato che le importazioni PE di questa libreria sono state modificate: contiene una voce per AcroSup.dll distribuita tramite il bundle di malware.

Quindi, questa catena di importazione porta al caricamento laterale della libreria dannosa AcroSup.dll e all’esecuzione della sua esportazione DllMain prima dell’esecuzione dell’eseguibile Adobe firmato. 

Per eludere possibili debugger, l’esecuzione del codice dannoso contenuto nella AcroSup.dll inizia con un thread hijacking sovrascrivendo il contesto del thread principale (aggiornando il registro RIP) nello spazio eseguibile firmato. 

Successivamente il malware esegue l’iterazione sulle DLL di Windows caricate tramite le API K32EnumProcessModules per distribuire ciascuna DLL ed eludere gli EDR attivi sul sistema. Fondamentalmente, per ogni DLL caricata, la sezione .text di ciascuna di esse viene mappata all’indirizzo virtuale della possibile DLL agganciata.

Da questo punto il malware entra in un ciclo pseudo-infinito in cui, ogni secondo, va a contattare il servizio Dropbox per comunicare l’identificatore della vittima e ricevere i payload della fase successiva.

Innanzitutto, l’endpoint api.dropbox.com viene contattato all’URI / oauth2 /token/ tramite una richiesta HTTP POST per ricevere un token di aggiornamento, necessario per contattare le API di Dropbox.

Per questa richiesta viene utilizzata la seguente combinazione di  chiave API e Key API per rappresentare l’account Dropbox utilizzato dall’attore della minaccia:

  • Chiave API: fm09ogco339u0a9
  • Segreto API: scqekoaqqj98sze

Inoltre, per tutte le richieste relative alla rete, il malware utilizza uno user-agent fisso :

  • User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, come Gecko) Chrome/100.0.4896.75 Safari/537.36 AtContent/91.5.2444.45

Se il token di aggiornamento viene ricevuto dalle API di Dropbox e analizzato correttamente, l’impianto procede con l’integrazione di alcune tecniche di mascheramento e persistenza. 

Più in dettaglio, viene creato un nuovo sotto processo per aprire il documento PDF esca (un PDF vuoto) contenuto nel bundle e utilizzato per far pensare all’utente di aver aperto l’applicazione Adobe Acrobat legittima.

Nel frattempo, tutti i file coinvolti nel bundle (software firmato e relative DLL) vengono copiati nella directory %APPDATA%\AcroSup\ e viene creata una nuova chiave di registro in HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ per raggiungere la persistenza.

Il documento PDF esca non viene copiato nella directory sopra menzionata, quindi questo documento non verrà aperto nuovamente dopo un riavvio del sistema vittima. Per registrare la voce della vittima su Dropbox, viene creato un identificatore della vittima tramite la combinazione con codifica esadecimale del nome utente corrente e del nome del computer corrente (ad esempio, john::windows10).

La comunicazione della nuova vittima viene quindi completata tramite il push di un nuovo file .mp3 (denominato Rock_[VICTIM_ID].mp3 ) tramite le API di Dropbox su /2/files/upload/ URI.

È interessante notare che i file .MP3 inviati che identificano le vittime contengono sempre la seguente stringa che probabilmente rappresenta la famiglia di malware:

  • ME3.99.5UUUUUUUUUUU

Infine, viene eseguita un’altra richiesta al percorso /2/files/download/ delle API di Dropbox che tenta di scaricare un file denominato Rock_VICTIM_ID.mp3.backup.

La risposta viene analizzata per determinare se esiste un carico utile della fase successiva per la vittima registrata corrente. In tal caso, il malware allocherà un nuovo heap per archiviare il payload scaricato e lo eseguirà nello spazio eseguibile sovrascrivendo nuovamente il contesto del thread dell’eseguibile principale.

Vittime dell’infezione

Negli ultimi mesi Cluster25 ha avuto prove delle campagne di Cozy Bear che potenzialmente hanno avuto un impatto almeno su GreciaItaliaTurchia e Portogallo, specialmente nei settori del governo e degli affari esteri.

Conclusioni

NOBELIUM conferma il suo interesse per il governo e gli affari esteri prendendo di mira organizzazioni in Europa e possibilmente in altre parti del mondo. 

Le campagne e i payload analizzati nel tempo mostrano una forte attenzione all’operare sotto il radar e all’abbassamento dei tassi di rilevamento. A tal proposito, anche l’utilizzo di servizi legittimi come Trello e DropBox suggeriscono la volontà dell’avversario di operare a lungo all’interno degli ambienti della vittima rimanendo inosservato. 

È possibile prevedere che tale attore cercherà anche nel prossimo futuro di modificare le sue TTP (Tecniche, Tattiche e Procedure) al fine di rendere più difficoltosa qualsiasi azione di mitigazione finalizzata al suo contrasto. 

A tal proposito, forniamo un’ampia serie di regole di rilevamento utili per verificare potenziali attività dannose riconducibili a questo attore della minaccia.

ATT&CK MATRIX

TatticaTecnicaDescrizione

Initial Access
T1566.001Phishing: Spearphishing Attachment
ExecutionT1204.001User Execution: Malicious Link
ExecutionT1204.002User Execution: Malicious File
ExecutionT1059.007Command and Scripting Interpreter: JavaScript
Defense EvasionT1036Masquerading
Defense EvasionT1622Debugger Evasion
Defense EvasionT1140Deobfuscate/Decode Files or Information
Defense EvasionT1027Obfuscated Files or Information
Defense EvasionT1055.003Process Injection: Thread Execution Hijacking
Defense EvasionT1553.002Subvert Trust Controls: Code Signing
Defense EvasionT1562.001Impair Defenses: Disable or Modify Tools
Defense EvasionT1112Modify Registry
Defense EvasionT1202Indirect Command Execution
Defense EvasionT1497Virtualization/Sandbox Evasion
Defense EvasionT1620Reflective Code Loading
DiscoveryT1082System Information Discovery
DiscoveryT1057Process Discovery
PersistenceT1098Account Manipulation
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder
Command and ControlT1105Ingress Tool Transfer
Command and ControlT1071.001Application Layer Protocol: Web Protocols
Command and ControlT1102Web Service

Indicatori di compromissione

CategoriaTipologiaValore
PAYLOADSHA2565292c0f5a7ea80124cf7584eacea1881cf2f0814fa13dcc0de56624e215aaba2
PAYLOADSHA132792827c14075cc3091244425e302b1ebe3259c
PAYLOADMD52fbccfc5a1b91b2609e3ae92a93ff7cb
PAYLOADSHA2569d063a05280fbce6ff0fd62a877f3fd1e80f227522e16918e6bede2e6ee398de
PAYLOADSHA105241afa180d70e17647b2d8cbc1660adbe3af88
PAYLOADMD5d86283af2d5888b0ce3ea63eb26f60f7
PAYLOADSHA2564c68c840ae1a034d47900ebdc291116726fd37b3ab0b7e026fad90eaab84d820
PAYLOADSHA1c9a5314eb247c7441a5262a7cd22abbe1fcba7b6
PAYLOADMD5110c4ae194e7b49ed3e3b254d599f7f4
PAYLOADSHA2567f96d59cb02229529b14761f979f710bca500c68cc2b37d80e60e751f809475e
PAYLOADSHA1489c36c9ea3fb90f61209d43efffd8d997a362c6
PAYLOADMD59ec1fcb11b597941bec03078cccab724
PAYLOADSHA25623a09b74498aea166470ea2b569d42fd661c440f3f3014636879bd012600ed68
PAYLOADSHA1ad33bab4bc6232a6666c2190b3bf9fc2ab2a720a
PAYLOADMD5454f59dc7d3d7f228bbd4ddd4c250ed8
PAYLOADSHA256729fb24b6c18232fc05ccf351edaeaa8a76476ba08cba37b8a93d34f98fa05ed
PAYLOADSHA1900cba1d73ddca31a7bb7b7af5b3b7f1a0bc6fbf
PAYLOADMD56bc8be27898e1e280e402a7981be55ae

DETECTION e THREAT HUNTING

SNORT #SSL_DECRYPT_ONLY
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:”CLUSTER25 NOBELIUM Registration via Dropbox API”; flow:established,to_server; http.uri; content:”/2/files/upload”; http.header; content:”|22|path|22|”; content:”|22|/Rock_”; fast_pattern; distance:0; content:”.mp3|22|”; distance:0; http.host; content:”content.dropboxapi.com”; bsize:22; reference:url,cluster25.io/2022/05/13/cozy-smuggled-into-the-box/; reference:md5,3f400f30415941348af21d515a2fc6a3; classtype:trojan-activity; sid:7704250; rev:1;)
SNORT
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:”CLUSTER25 NOBELIUM Backdoor Download via Dropbox API”; flow:established,to_server; http.uri; content:”/2/files/download”; http.header; content:”|22|path|22|”; content:”|22|/Rock_”; fast_pattern; distance:0; content:”.mp3.backup|22|”; distance:0; http.host; content:”content.dropboxapi.com”; bsize:22; reference:url,cluster25.io/2022/05/13/cozy-smuggled-into-the-box/; reference:md5,3f400f30415941348af21d515a2fc6a3; classtype:trojan-activity; sid:7704251; rev:1;)
YARA
import “pe”
rule APT29_Loader_87221_00001 {
    meta:
        author = “Cluster25”
tlp = “white”
        description = “Detects DLL loader variants used in Nobelium kill-chain”
        hash1 = “6fc54151607a82d5f4fae661ef0b7b0767d325f5935ed6139f8932bc27309202”
        hash2 = “23a09b74498aea166470ea2b569d42fd661c440f3f3014636879bd012600ed68”
    strings:
        $s1 = “%s\\blank.pdf” fullword ascii
        $s2 = “%s\\AcroSup” fullword ascii
        $s3 = “vcruntime140.dll” fullword ascii
        $s4 = “ME3.99.5UUUUUUUUUUU” fullword ascii
        $c1 = “Rock” fullword ascii
        $c2 = “.mp3” fullword ascii
        $c3 = “%s.backup” fullword ascii
        $sequence1 = { C7 45 ?? 0B 00 10 00 48 8B CF FF 15 ?? ?? ?? 00 85 C0 74 ?? 48 8D 55 ?? 48 89 75 ?? 48 8B CF FF 15 ?? ?? ?? 00 85 C0 74 ?? 48 8B CF FF 15 ?? ?? ?? 00 } // Thread contect change
        $sequence2 = { 0F B6 0B 4C 8D 05 ?? ?? ?? 00 89 4C 24 ?? 4D 8B CD 49 8B CD BA 04 01 00 00 E8 ?? ?? ?? ?? 48 8D 5B 01 48 83 EF 01 75 ?? } // encoding cycle
        $sequence3 = { 4C 8D 8C 24 ?? 00 00 00 8B 53 ?? 44 8D 40 ?? 48 03 CD 44 89 A4 24 ?? 00 00 00 FF 15 ?? ?? ?? 00 8B 43 ?? 44 8B 43 ?? 4A 8D 14 38 48 8D 0C 28 E8 ?? ?? 00 00 8B 4B ?? 4C 8D 8C 24 ?? 00 00 00 8B 53 ?? 48 03 CD 44 8B 84 24 ?? 00 00 00 FF 15 ?? ?? ?? 00 } //DLL Unhook
        $sequence4 = { 42 0F B6 8C 32 ?? ?? ?? 00 48 83 C2 03 88 0F 48 8D 7F 01 48 83 FA 2D 7C E7 } // get domain name string
    condition:
        uint16(0) == 0x5a4d and filesize             and pe.imports(“kernel32.dll”, “SetThreadContext”) and pe.imports(“kernel32.dll”, “ResumeThread”) and pe.imports(“kernel32.dll”, “K32GetModuleFileNameExA”)
            and 3 of ($s*)
            and all of ($c*)
            and 3 of ($sequence*)
}
YARA
rule APT29_HTMLSmuggling_ZIP_82733_00001 {
meta:
author = “Cluster25”
description = “Rule to detect the EnvyScout HTML smuggling with ZIP payload used in the APT29/Nobelium APT29 chain”
date = “2022-05-12”
hash = “d5c84cbd7dc70e71f3eb24434a58b2f149d0c39faa7e4157552b60c7dbb53d11”
strings:
$s1 = “new Blob(“
$s2 = “new Uint8Array(“
$s3 = “application/octet-stream”
$t1 = “saveAs(“
$t2 = “download(“
$r1 = { 66 6F 72 28 76 61 72 20 69 20 3D 20 30 78 30 3B 20 69 20 3C 20 64 5B 27 6C 65 6E 67 74 68 27 5D 3B 20 69 2B 2B 29 20 7B 0A 20 20 20 20 64 5B 69 5D 20 3D 20 64 5B 69 5D }
condition: (filesize > 500KB and all of ($s*) and ($t1 or $t2) and $r1)
}
SIGMA
title: Potential NOBELIUM APT persistence by detection of registry key events (via registry_event)
status: stable
description: This rule detects potential NOBELIUM APT persistence via registry event
author: Cluster25
date: 2022/04/27
references:
– internal research
tags:
– attack.persistence
logsource:
  product: windows
  category: registry_event
detection:
  selection:
    TargetObject|contains:
    – ‘\Software\Microsoft\Windows\CurrentVersion\Run\’
    Details|endswith:
    – ‘\AppData\Roaming\AcroSup\Acro.exe’
  condition: selection
falsepositives:
– unknown
level: high

Redazione
La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.