Due attacchi mirati contro enti governativi cambogiani mostrano una combinazione di strumenti già presenti nell'arsenale di gruppi che operano in Europa, ma mai assemblati in una catena analoga. Conoscerla serve a riconoscerla.
Autore: Redazione SecurityOpenLab
Una serie di attacchi in Cambogia potrebbe sembrare di scarso interesse per un’azienda che opera in Europa, invece merita di essere studiata perché, presi singolarmente, gli strumenti usati dagli attaccanti sono già sfruttati in Europa, ma la combinazione usata da questo threat actor è inedita e studiarla permetterebbe di riconoscerla qualora sbarcasse nel Vecchio Continente. Lo studio è stato condotto dalla Threat Research Unit di Acronis e riguarda in particolare due campagne di cyberspionaggio contro enti governativi cambogiani, attribuite a un gruppo inedito battezzato Khmer Shadow.
L'attacco parte da una email di spear phishing che recapita un archivio SFX (Self-Extracting) mascherato da PDF legittimo che, una volta eseguito, lancia un loader malevolo e cancella tutti i file temporanei, incluso l'archivio stesso. La routine di pulizia è elementare, ma efficace perché riduce la superficie di analisi forense e complica il lavoro degli analisti che intervengono successivamente.
Il meccanismo di esecuzione centrale è il DLL sideloading. I lettori assidui avranno notato che da alcuni mesi questa tecnica, un tempo rara, si è diffusa a macchia d’olio come trucco per aggirare le difese sfruttando l'abuso di fiducia. Infatti, il processo che gira sul sistema è firmato da un vendor legittimo e il controllo di integrità sul processo non segnala anomalie perché il binario è autentico. La DLL malevola opera sotto la copertura di un processo legittimo, quindi viene legittimata a sua volta.
Nel caso specifico, l'archivio SFX deposita nella stessa directory un eseguibile legittimo firmato da VMware e una DLL malevola chiamata vmtools.dll. Dato che l’eseguibile VMware importa staticamente alcune funzioni dalla libreria vmtools.dll, Windows carica automaticamente la DLL malevola prima che l'applicazione inizi la propria esecuzione regolare. Il vettore vmtools.dll non è un target di sideloading inedito: la stessa tecnica è stata usata dal threat actor russo APT29 in una campagna contro diplomatici europei all'inizio del 2025, e da gruppi come Mustang Panda e PatchWork. La stessa DLL compare inoltre sul repository pubblico HijackLibs dei target noti per il DLL hijacking, quindi parliamo di un vettore documentato, accessibile e deliberatamente scelto da chi intende sfruttare binari VMware firmati.
Nel caso degli attacchi cambogiani, la DLL carica il loader malevolo NightForge, che prima controlla di essere attivo in una directory persistente (il che implica che ha ultimato l’installazione nella directory definitiva per garantire la corretta sequenza operativa indipendentemente da come il file è stato lanciato) quindi decifra ed esegue il payload. A quel punto NightForge nasconde la finestra in primo piano e verifica che la sessione corrente sia interattiva, cioè che ci sia un utente realmente connesso (in caso contrario sarebbe in esecuzione in una sandbox, quindi terminerebbe i processi per non farsi scoprire). La funzione centrale di NightForge è gestire tre fasi critiche: unhooking di NTDLL, decodifica del payload, esecuzione in memoria tramite chiamate di sistema dirette.
Queste azioni servono per aggirare le difese. In particolare, NightForge rimuove gli hook inseriti dalle soluzioni di Endpoint Detection and Response nelle funzioni di NTDLL prima di eseguire il payload. Così facendo gli EDR non riescono a intercettare le chiamate alla libreria di sistema di Windows che fa da interfaccia tra lo spazio utente e il kernel, quindi non possono monitorare le operazioni sospette in tempo reale. Si tratta di una tecnica documentata, presente in tool offensivi pubblici e in campagne APT la cui efficacia dipende dalla configurazione specifica dell'EDR.
Procedendo con la catena di attacco, a questo punto NightForge usa la tecnica offensiva Hell's Gate per ricavare in tempo reale i numeri identificativi delle chiamate di sistema direttamente dal codice di NTDLL, senza passare per i canali che gli EDR monitorano. Il risultato è che le operazioni successive raggiungono il kernel di Windows senza lasciare tracce visibili agli strumenti di difesa che operano a livello utente. Da notare che Hell's Gate è un progetto pubblico, nato in ambito red team, oggi disponibile in varianti diverse e integrato in molteplici framework di attacco. La sua presenza in questa campagna non indica capacità di sviluppo eccezionali, ma semplicemente che l'operatore sa come usare in maniera efficace strumenti offensivi già pronti.
L’altra fase critica è la decodifica del payload. NightForge legge il file cifrato su disco, ne estrae i primi 8 byte e li usa per ricavare la chiave di decodifica. Il contenuto restante viene poi decifrato con quella chiave. È uno schema semplice, non paragonabile a una cifratura robusta, ma del resto è semplicemente impedire che gli scanner automatici lo riconoscano tramite firme note finché resta su disco.
Passiamo alla terza fase, l’iniezione in memoria e l’ottenimento della persistenza. Il payload decifrato viene caricato direttamente in memoria nel processo in esecuzione e avviato come nuovo thread. Non viene mai scritto su disco in forma leggibile, in modo che gli strumenti che cercano file malevoli sul filesystem non trovino nulla. Per garantire la persistenza, NightForge registra un task schedulato nel Task Scheduler di Windows con il nome VMwareNamespace, che si mimetizza tra le voci legittime lasciate dai software VMware. Il task è configurato per ripetersi ogni 10 minuti. La data di inizio è impostata al 1 gennaio 2010: un valore nel passato che forza l'esecuzione immediata al primo controllo dello scheduler, senza che la configurazione risulti anomala a un'analisi superficiale.
L’ennesimo ostacolo per la detection è il fatto che il payload decifrato da NightForge non è direttamente il malware finale, bensì un ulteriore strato intermedio: un reflective loader open source chiamato KaynLdr, il cui compito è caricare in memoria il vero impianto malevolo, Havoc Demon, e di cancellare poi le proprie tracce in memoria per ostacolare l'analisi forense. Havoc Demon è un framework C2 open source paragonabile per funzionalità a Cobalt Strike. La sua adozione da parte di gruppi APT è una tendenza già documentata e dà il vantaggio di non richiedere capacità di sviluppo proprie e di non lasciare impronte riconducibili a un threat actor specifico.
Una volta attivo, l'impianto comunica con il server di comando e controllo mascherando il proprio traffico come una normale navigazione web. Per le operazioni successive alla compromissione, l'impianto si appoggia a gpupdate.exe, un processo di sistema Windows legittimo che non suscita sospetti in un ambiente enterprise.
Preso nel suo insieme, NightForge dimostra una buona padronanza delle tecniche di evasione. Nonostante questo, gli attaccanti hanno commesso una ingenuità che ha permesso agli esperti di Acronis TRU di identificare il secondo server di comando e controllo usato negli attacchi. I due server C2 erano configurati in modo identico e con la stessa impronta TLS (JARM fingerprint), ossia lo stesso modo del server di rispondere durante una connessione cifrata. Cercando su Shodan tutti i server con quella stessa impronta, Acronis TRU ha trovato due risultati in tutto il mondo: il server già noto e un secondo che era sconosciuto. Si è trattato di una negligenza operativa che stride con la sofisticazione tecnica delle varie fasi dell’attacco e che dimostra un livello di maturità decisamente più basso.