
RustyWater rappresenta il payload principale e la spina dorsale dell'intera operazione avversaria negli attacchi del gruppo Static Kitten.
RustyWater rappresenta il payload principale e la spina dorsale dell'intera operazione avversaria negli attacchi del gruppo Static Kitten. RustyWater è un eseguibile compilato in Rust (mascherato da reddit.exe con una finta icona di Cloudflare) noto come RustyWater (o collegato ad Archer RAT/RUSTRIC) che presenta una forte capacità di evasione di AV/EDR tramite iniezione di processo e persistenza basata sul registro.
Reddit.exe implementa un sistema di anti-analisi a 8 livelli completo che sonda attivamente l'ambiente di esecuzione alla ricerca di segni di monitoraggio, virtualizzazione o debug. Ogni livello agisce come un filtro, assicurando che il payload si attivi solo su un bersaglio reale.
Inizialmente il soldato RustyWater si guarda intorno per valutare la potenza della macchina su cui si trova. Si chiede: Quanti core ha questo processore? Gli ambienti di analisi, come i sandbox, sono tipicamente a risorse limitate e spesso hanno due core o meno. Se il soldato scopre che la macchina è così debole, decide immediatamente che l'ambiente non è sicuro e scompare senza lasciare traccia, vanificando tutti gli sforzi degli analisti.
Nell'immagine fornita, una sezione del codice del programma Reddit.exe illustra questo meccanismo. La freccia indica la riga che controlla il "cpu count", dove il programma esamina il numero di core del processore. Se il conteggio è pari o inferiore a due, significa che l'ambiente circostante è sospetto e l'esecuzione viene immediatamente interrotta.

Non soddisfatto dal solo controllo della CPU, il soldato scava più a fondo. Sa che le macchine virtuali lasciano dietro di sé specifiche impronte digitali, come una scia di briciole di pane. Scansiona l'elenco dei processi in esecuzione alla ricerca di nomi familiari associati a software di virtualizzazione: vmtoolsd.exe (VMware), vboxtray.exe (VirtualBox) e xenservice.exe (Xen). Controlla anche l'esistenza di specifici file driver sul disco, come vmmouse.sys o VBoxGuest.sys.
La logica è semplice: se una macchina sta eseguendo gli strumenti VMware, è probabilmente una VM. Se è una VM, è probabilmente un ambiente di analisi. Se è un ambiente di analisi, il soldato abortisce la missione.

Il soldato si avventura quindi nel Registro di sistema di Windows, un vasto database di impostazioni di sistema. Sa che gli analisti di sicurezza spesso lasciano i loro strumenti e questi strumenti lasciano artefatti. Cerca chiavi di registro associate a software di debug e monitoraggio come Wireshark, Process Hacker, OllyDbg e IDA Pro. La presenza di una qualsiasi di queste chiavi conferma che l'ambiente è ostile, innescando uno spegnimento immediato.

Se il sistema segnala meno di 4 GB, il soldato sospetta un sandbox con risorse limitate e interrompe l'esecuzione. Questo controllo è un modo affidabile per filtrare molti sistemi di analisi automatizzati.

Il soldato ora controlla l'ambiente circostante immediato. Utilizza una chiamata API di Windows semplice ma efficace — IsDebuggerPresent — per determinare se è in esecuzione sotto il controllo di un debugger. Un debugger è come un microscopio; se presente, significa che qualcuno sta osservando ogni singola istruzione del soldato. Il soldato non opererà sotto tale sorveglianza.

Il tempo stesso diventa un fattore. Il soldato controlla da quanto tempo il sistema è in esecuzione dall'ultimo avvio. I sandbox e gli ambienti di analisi sono spesso appena avviati, subito prima dell'esecuzione di un campione. Se il tempo di attività del sistema è inferiore a 15 minuti, il soldato lo segnala come un ambiente sospetto e di breve durata e si ritira.

Il soldato controlla quindi l'identità dell'utente. Confronta il nome utente corrente con una blacklist di account di analisi comuni: "sandbox", "virus", "malware", "analysis", "vmware" e "test". Questi nomi utente sono frequentemente utilizzati in ambienti di analisi isolati. Se il nome utente corrisponde a una qualsiasi voce dell'elenco, la missione viene immediatamente abortita.

Infine, il soldato esamina la scheda di rete della macchina. Controlla l'indirizzo MAC rispetto ai prefissi dei vendor noti utilizzati dal software di virtualizzazione. Un indirizzo MAC che inizia con 00:0C:29 appartiene a VMware, mentre 08:00:27 appartiene a VirtualBox. Scansiona anche i profili hardware alla ricerca di stringhe come "VMware" o "VirtualBox" nella descrizione del sistema. Se viene trovata una qualsiasi di queste, il soldato sa di trovarsi all'interno di una macchina virtuale e stacca la spina.

Una volta superati i controlli anti-analisi, Reddit.exe stabilisce una robusta persistenza nel registro per garantire la sopravvivenza ai riavvii del sistema:
L'impianto si maschera abilmente come un componente legittimo di Windows Update, rendendolo meno sospetto agli osservatori occasionali. Il meccanismo di persistenza include:
Ciò assicura che ogni volta che l'utente effettua l'accesso, Reddit.exe venga eseguito automaticamente con i suoi privilegi.

La capacità finale e più sofisticata è l'iniezione di processo in explorer.exe, che consente all'impianto di eseguire shellcode all'interno di un processo di sistema attendibile.
Reddit.exe implementa una tecnica classica ma efficace di iniezione di thread remoto:
Questa tecnica consente agli aggressori di nascondere il proprio codice dannoso all'interno di un processo di sistema attendibile, rendendo la rilevazione significativamente più difficile per le soluzioni di sicurezza.

Gli aggressori hanno scelto deliberatamente di prendere di mira explorer.exe per iniettare il loro shellcode dannoso. Questa scelta non è stata casuale, ma basata su vantaggi strategici:

Dopo aver costruito il payload reddit.exe, dobbiamo modificarne i metadati per farlo apparire come un programma legittimo e non sospetto. Le soluzioni di sicurezza e gli strumenti EDR esaminano questi campi di metadati, quindi modificarli è essenziale per l'evasione.
Per eseguire queste modifiche, utilizziamo uno strumento leggero e gratuito chiamato rcedit, disponibile ufficialmente su GitHub. Link: https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe

Ho osservato che gli aggressori non eseguono reddit.exe direttamente sul sistema di destinazione. Invece, si affidano a un programma intermediario noto come CertificationKit.ini (Dropper), che trasporta il payload crittografato, lo decifra in fase di esecuzione e lo esegue sulla macchina della vittima.
e che il dropper è stato scritto in Rust. Sebbene si mascheri da file di configurazione apparentemente innocuo (CertificationKit.ini), in realtà è un binario compilato responsabile della distribuzione e dell'esecuzione del payload principale sul sistema di destinazione.
Questa tecnica offre diversi vantaggi:

Crittografia del payload: Il payload principale (reddit.exe) è memorizzato nella sezione ENCRYPTED_PAYLOAD e crittografato utilizzando la chiave XOR definita nel dropper (XOR_KEY). Ciò garantisce che il payload rimanga protetto fino all'esecuzione.
Percorso di destinazione: Il dropper scrive il payload decifrato nel percorso specificato nella configurazione del dropper (TARGET_PATH). Questo percorso deve essere correttamente impostato nella directory prevista sul sistema della vittima.
Decifratura in fase di esecuzione: All'esecuzione, il dropper decifra il payload utilizzando la chiave XOR e lo distribuisce come CertificationKit.ini nella posizione di destinazione.
Questa configurazione consente agli aggressori di mantenere la furtività, eludere il rilevamento e garantire che il payload sia accessibile solo quando eseguito sul sistema della vittima.
