Malware VOID#GEIST
I ricercatori di sicurezza informatica hanno scoperto una sofisticata campagna malware multifase che si basa su script batch per distribuire payload crittografati di trojan di accesso remoto (RAT). La campagna, identificata come VOID#GEIST, utilizza diverse famiglie di RAT, tra cui XWorm, AsyncRAT e Xeno RAT.
La catena di attacco sfrutta uno script batch offuscato che avvia una sequenza di azioni progettate per eludere il rilevamento. Queste azioni includono l'avvio di uno script batch aggiuntivo, la creazione di un ambiente di runtime Python incorporato legittimo e la decrittografia dei payload dello shellcode crittografato. Lo shellcode viene eseguito direttamente in memoria dopo essere stato iniettato in istanze separate del processo Windows explorer.exe utilizzando una tecnica nota come iniezione Early Bird Asynchronous Procedure Call (APC).
Sommario
Distribuzione di malware basata su script: un modello di minaccia moderno
Gli aggressori moderni stanno abbandonando sempre più i tradizionali malware eseguibili standalone a favore di framework di distribuzione a più livelli basati su script che imitano il comportamento legittimo degli utenti. Anziché distribuire i tradizionali file binari Portable Executable (PE), gli aggressori orchestrano pipeline multicomponente che combinano diverse tecnologie e ambienti di scripting legittimi.
I componenti tipici utilizzati in questi framework includono:
- Script batch utilizzati per orchestrare la sequenza dell'infezione.
- Comandi PowerShell che facilitano lo staging stealth del payload.
- Runtime legittimi incorporati che garantiscono la portabilità tra i sistemi.
- Shellcode grezzo eseguito direttamente nella memoria per mantenere persistenza e controllo.
Questo approccio di esecuzione senza file riduce significativamente le possibilità di rilevamento basato su disco. Ogni singola fase appare relativamente innocua se esaminata singolarmente e spesso assomiglia a un'attività amministrativa di routine, consentendo agli autori delle minacce di operare in ambienti compromessi senza generare immediatamente allarmi di sicurezza.
Accesso iniziale tramite phishing e infrastruttura Cloudflare
Il punto di ingresso dell'attacco inizia con uno script batch dannoso inviato tramite email di phishing. Lo script viene recuperato da un'infrastruttura ospitata su un dominio TryCloudflare. Una volta eseguito, lo script evita deliberatamente i tentativi di escalation dei privilegi e opera invece rigorosamente entro i limiti di autorizzazione dell'utente attualmente connesso.
Questa strategia consente al malware di stabilire il suo punto d'appoggio iniziale, integrandosi nelle operazioni di routine a livello utente. Evitando azioni che richiedono privilegi elevati, l'attacco riduce la probabilità di attivare avvisi di sicurezza o richieste amministrative.
Distrazione visiva e tecniche di esecuzione furtiva
Dopo l'esecuzione, la prima fase del malware lancia un documento escamotage per distrarre la vittima. Google Chrome viene aperto a schermo intero per visualizzare un documento finanziario o una fattura in formato PDF. Mentre l'utente si concentra sul documento, l'attività dannosa continua in background.
Contemporaneamente, viene eseguito un comando PowerShell per riavviare lo script batch originale con parametri di esecuzione nascosti. L'utilizzo del parametro -WindowStyle Hidden impedisce la visualizzazione di una finestra della console visibile, garantendo che l'attività dannosa rimanga nascosta all'utente.
Persistenza tramite esecuzione di avvio a livello utente
Per mantenere la persistenza dopo il riavvio del sistema, il malware distribuisce uno script batch ausiliario nella directory di avvio di Windows. Questa posizione garantisce che lo script venga eseguito automaticamente ogni volta che la vittima accede al sistema.
Questo meccanismo di persistenza è volutamente subdolo. Invece di utilizzare tecniche più invasive come la modifica delle chiavi del registro di sistema, la creazione di attività pianificate o l'installazione di servizi, il malware si basa esclusivamente sul comportamento di avvio standard a livello utente. Poiché l'approccio opera interamente nel contesto dei privilegi dell'utente corrente, evita l'attivazione di richieste di escalation dei privilegi e riduce la probabilità di essere rilevato dagli strumenti di monitoraggio del registro.
Framework di recupero e decrittazione del payload
Nella fase successiva della catena di infezione, il malware contatta un dominio TryCloudflare per recuperare componenti aggiuntivi del payload, impacchettati in archivi ZIP. Questi archivi contengono i moduli necessari per decrittografare ed eseguire i payload finali del malware.
L'archivio scaricato contiene in genere i seguenti componenti:
- runn.py – un caricatore basato su Python responsabile della decrittazione e dell'iniezione di moduli shellcode crittografati nella memoria
- new.bin – payload shellcode crittografato associato a XWorm
- xn.bin – payload shellcode crittografato corrispondente a Xeno RAT
- pul.bin – payload shellcode crittografato corrispondente ad AsyncRAT
- a.json, n.json e p.json: file chiave utilizzati dal caricatore Python per decrittografare dinamicamente i payload dello shellcode durante l'esecuzione
Questa progettazione modulare consente agli aggressori di organizzare diversi payload in modo indipendente e di attivarli solo quando necessario.
Runtime Python incorporato per portabilità e furtività
Una volta estratto l'archivio, il malware implementa un runtime Python legittimo incorporato, ottenuto direttamente da python.org. L'incorporazione di un interprete legittimo elimina la dipendenza da qualsiasi installazione di Python eventualmente già presente sul sistema compromesso.
Dal punto di vista di un aggressore, questo passaggio offre diversi vantaggi strategici. Il malware diventa un ambiente di esecuzione autonomo in grado di decifrare e iniettare payload senza richiedere dipendenze esterne. Ciò migliora la portabilità tra sistemi diversi, aumenta l'affidabilità e contribuisce alla furtività operativa grazie all'utilizzo di componenti software legittimi.
Esecuzione in memoria di più payload RAT
Il runtime Python incorporato viene quindi utilizzato per eseguire lo script di caricamento runn.py. Il caricatore decrittografa lo shellcode associato a XWorm e lo inietta in un'istanza in esecuzione di explorer.exe utilizzando l'iniezione Early Bird APC.
Per distribuire Xeno RAT, il malware sfrutta un binario Microsoft legittimo chiamato AppInstallerPythonRedirector.exe, che viene utilizzato per richiamare Python ed eseguire i componenti richiesti. La stessa tecnica di iniezione viene successivamente riutilizzata per distribuire AsyncRAT, garantendo che tutti i payload vengano eseguiti interamente in memoria senza lasciare artefatti eseguibili tradizionali su disco.
Segnalazione di comando e controllo e architettura modulare
La fase finale dell'attacco prevede l'invio di un beacon HTTP minimo all'infrastruttura di Comando e Controllo (C2) controllata dall'aggressore, ospitata su TryCloudflare. Questo beacon conferma che il sistema è stato compromesso con successo ed è pronto a ricevere ulteriori istruzioni.
Sebbene gli obiettivi specifici della campagna rimangano sconosciuti, la catena di infezione dimostra un'architettura altamente modulare. Anziché distribuire un unico grande payload malware, gli aggressori introducono i componenti in modo incrementale in più fasi. Questa progettazione migliora la flessibilità operativa e la resilienza.
Dal punto di vista del rilevamento, un indicatore comportamentale degno di nota emerge durante tutta la campagna: ripetute iniezioni di processo in explorer.exe a intervalli di tempo ravvicinati. Questo schema può rappresentare un segnale forte per i difensori che cercano di correlare le attività sospette nelle diverse fasi del ciclo di vita dell'attacco.