Analisi del malware VioletRAT veicolato in Italia
VioletRAT
Nella precedente analisi era rimasto il dubbio sull’identità del malware distribuito. Nella giornata di ieri un ricercatore ha commentato il nostro post su X suggerendo che il payload finale sia VioletRAT v4.7, indicando inoltre un C2 differente rispetto a quello individuato nella nostra analisi. Questo potrebbe indicare che il sample da noi analizzato provenga da una campagna distinta, ma che utilizza infrastruttura o tecniche operative molto simili.
Da una rapida ricerca online abbiamo individuato una recente analisi di VioletRAT pubblicata da SonicWall, dalla quale emergono numerose somiglianze tra le tecniche documentate e quelle osservate nella campagna da noi analizzata.
Identificazione di VioletRAT
Abbiamo quindi ripreso in mano il dump di explorer.exe ed eseguito una semplice ricerca tramite grep della keyword violet per verificare se emergessero riferimenti utili. Tra le stringhe individuate compare la dicitura “VIOLET V5 64”.

Questo elemento ci consente di attribuire con maggiore confidenza il payload alla famiglia VioletRAT, anche se probabilmente in una versione differente rispetto a quella ipotizzata inizialmente.
Memory carving del payload
A questo punto, con l’aiuto del vibe coding, abbiamo tentato di recuperare il payload finale direttamente dal dump di memoria del processo compromesso tramite una procedura di memory carving automatizzata.

Lo script python scansiona l’intero dump alla ricerca di intestazioni PE valide, identificando i marker MZ e la firma PE\0\0 (in ASCII). Per ogni candidato ricostruisce il binario utilizzando i metadati presenti nell’Optional Header, in particolare il campo SizeOfImage, per stimare la dimensione dell’immagine in memoria ed estrarre il relativo binario dal dump.
Decompilazione con ILSpy
I file estratti tramite memory carving sono stati successivamente analizzati utilizzando ILSpy tramite l’interfaccia a riga di comando (ilspycmd). A tal fine è stato utilizzato uno script bash che iterava automaticamente su tutti i candidati estratti, tentando la decompilazione di ciascun file e conservando solo quelli per cui l’operazione risultava completata con successo.
#!/usr/bin/env bash
INPUT_DIR="carved_pe"
OUTPUT_DIR="ilspy_out"
mkdir -p "$OUTPUT_DIR"
valid_count=0
for f in "$INPUT_DIR"/dotnet_*.bin; do
[ -s "$f" ] || continue
name=$(basename "$f" .bin)
out="$OUTPUT_DIR/$name"
mkdir -p "$out"
ilspycmd -o "$out" "$f" >/dev/null 2>&1 \
&& { echo "[OK] valid .NET assembly: $f"; ((valid_count++)); } \
|| { echo "[SKIP] invalid candidate: $f"; rm -rf "$out"; }
done
echo
echo "Valid assemblies found: $valid_count"Dei 17 candidati .NET individuati nel dump di memoria, solo uno è risultato un assembly valido e completamente decompilabile, mentre gli altri presentavano errori strutturali tipici dei frammenti di memoria.

dotnet_0000_off_50e208.binL’assembly valido (dotnet_0000_off_50e208.bin) è stato quindi decompilato con ILSpy, producendo il codice C# utilizzato nelle successive fasi di analisi del malware.
Analisi payload
L’analisi statica del payload .NET recuperato in memoria evidenzia un impianto RAT multi-funzione riconducibile alla linea VioletRAT, con bootstrap C2 dinamico e gestione remota completa dell’host della vittima.
Il codice decompilato rivela un beacon INFO che trasmette al C2 informazioni di sistema e include la stringa “Violet v4.7”. Poiché nel binario è presente anche il marker “VIOLET V5 64”, il campione mostra indicatori di versione non perfettamente allineati, verosimilmente dovuti al riutilizzo di codice legacy tra diverse build della stessa famiglia.
INFO
<sep>
machine id / bot id
<sep>
username
<sep>
OS name
<sep>
service pack
<sep>
architettura (32bit / 64bit)
<sep>
Violet v4.7
<sep>
altri identificatori hostCome avevamo già intuito, il campione ottiene la configurazione iniziale da Pastebin (URL riportato dentro il codice in Base64) , estrae ip:port e stabilisce una sessione TCP cifrata Rijndael/ECB verso il server di comando e controllo utilizzando una chiave derivata come MD5(UTF8(password).


La password usata nel campione analizzato è: Nuevo2022$
Il protocollo applicativo implementa un dispatcher esteso di comandi. Tra le funzionalità osservate figurano l’esecuzione remota di comandi tramite shell interattiva, il download e l’avvio di file, la manipolazione dei processi e il desktop remoto con cattura di screenshot JPEG in tempo reale (RD+). Sono inoltre presenti moduli dedicati alla raccolta di credenziali e dati (PassR, Getpass, Email/Emails).
Di seguito la lista dei comandi
| Comando | Funzione | Impatto |
| CLOSE | Chiude socket C2 e termina processo | Terminazione remota del client |
| rec | Riavvio applicazione e uscita | Reset operativo su comando C2 |
| update | Invoca routine plugin di aggiornamento | Aggiornamento payload/config da remoto |
| uninstall | Invoca routine plugin di disinstallazione | Rimozione tracce/persistenza su comando |
| getinfo | Invia informazioni host al C2 | Fingerprinting e ricognizione vittima |
| botinfo | Richiede info da modulo plugin (gett) | Telemetria estesa lato vittima |
| LN | Download file remoto e avvio (DownloadFile + Process.Start) | Esecuzione payload/stage aggiuntivi |
| url | Avvia path/URL ricevuto | Esecuzione remota di risorse locali/web |
| shellfuc | Esegue comando shell nascosto | Command execution stealth |
| R/ | Avvia CMD.EXE con stdin/stdout/stderr rediretti | Shell remota interattiva |
| runnnnnn | Invia comando alla shell attiva | Esecuzione comandi arbitrari |
| closeshell | Invia EXIT e chiude shell | Chiusura canale shell remoto |
| R# | Enumera processi con PID e path e li invia al C2 | Discovery processi/target injection |
| kill | Termina processo per PID | Disruption/kill difese o app |
| kD | Kill processo + delete file | Rimozione artefatti/applicazioni |
| RST | Kill processo + riavvio binario | Restart forzato componenti |
| RD- | Invia elenco monitor disponibili | Preparazione controllo remoto display |
| RD+ | Cattura schermo JPEG e invia frame al C2 | Sorveglianza/esfiltrazione visiva |
| ### | Posiziona mouse e click | Controllo interattivo UI vittima |
| $$$ | Posiziona mouse | Controllo interattivo UI vittima |
| ^^^& | Eventi mouse via mouse_event | Automazione input remoto |
| reged | Scrive chiavi registro (RegWrite) | Persistenza/modifica sistema |
| bot | Invoca RunBotKiller | Rimozione concorrenti/antagonisti |
| admin | Invoca routine uac | Tentativi elevazione privilegi |
| Cilpper | Invoca modulo Clipper | Hijack clipboard (crypto/cred) |
| PE | Invoca modulo injRun | Esecuzione/injection via plugin |
| PSleep | Invoca PreventSleep | Persistenza operativa nel tempo |
| ngrok | Stato/gestione tunneling ngrok | Fallback C2 e accesso indiretto |
| hrdp / hrdp+ | Routine correlate a remote desktop helper | Accesso remoto assistito |
| PassR | Trigger modulo password recovery | Raccolta credenziali |
| Pvbnet + Getpass | Esegue estrazione password e invio risultati | Esfiltrazione credenziali |
| Richiede dati Emails dal modulo plugin | Esfiltrazione account/email | |
| DBGrabber | Avvia raccolta DB tramite callback C2 | Furto dati browser/app |
| AESGrabber | Avvia raccolta dati cifrati/plugin AES | Furto dati applicativi |
| disget | Avvia routine GetTok via plugin | Possibile furto token/sessioni |
Le evidenze raccolte confermano quindi concrete capacità di controllo remoto ed esfiltrazione di dati verso l’infrastruttura C2, con caratteristiche coerenti con varianti recenti della famiglia VioletRAT, sebbene con una configurazione infrastrutturale differente rispetto ad alcune build documentate pubblicamente.
Funzionalità dichiarate della piattaforma VioletRAT
Le informazioni disponibili in forum underground associati al progetto VioletRAT descrivono il malware come una piattaforma RAT completa per Windows. Tra le funzionalità dichiarate figurano il controllo remoto del sistema tramite VNC/HVNC, l’esecuzione di comandi via shell interattiva, la gestione remota dei file e dei processi e la cattura di desktop, audio e webcam.
La piattaforma include inoltre moduli per la raccolta di credenziali e dati sensibili, come password di browser, token di applicazioni, chiavi Wi-Fi e wallet di criptovalute, oltre a componenti di keylogging e data harvesting. Sono presenti anche strumenti di evasione e persistenza, tra cui bypass UAC, disattivazione di Windows Defender e caricamento di payload direttamente in memoria.
Tra le funzionalità aggiuntive vengono infine pubblicizzate capacità di manipolazione della rete, scansione della LAN, monitoraggio delle connessioni e utilizzo dei sistemi compromessi come nodi per attività di tipo botnet.
Conclusioni
L’analisi condotta ha permesso di identificare il malware come una variante della famiglia VioletRAT, caratterizzata da funzionalità di controllo remoto, raccolta di informazioni e comunicazione con un’infrastruttura C2 dedicata. Le capacità osservate nel codice risultano coerenti con quelle pubblicizzate negli ambienti underground associati al progetto.
La piattaforma risulta inoltre commercializzata apertamente su siti e canali underground, dove viene proposta come servizio con diversi modelli di abbonamento e supporto agli operatori. Questo conferma il modello crimeware-as-a-service, che consente anche ad attori con competenze tecniche limitate di utilizzare strumenti avanzati di accesso remoto e data harvesting.
Il fatto che questo malware sia stato veicolato in una campagna indirizzata a utenti in Italia evidenzia come strumenti di questo tipo, facilmente acquistabili e pronti all’uso, possano essere rapidamente impiegati in campagne di infezione rivolte a target locali.