DesckVB RAT (v2.9) — RAT .NET modulare, consegna multi-stadio ed ecosistema di plugin
Autore: ShadowOpCode
X/Twitter: https://x.com/ShadowOpCode
Questo repository accompagna un rapporto tecnico completo che documenta un ecosistema malware attivo incentrato su DesckVB RAT, un trojan ad accesso remoto .NET modulare osservato in campagne reali all'inizio del 2026.
L'analisi ricostruisce l'intero ciclo di vita dell'infezione, dalla consegna iniziale JavaScript all'esecuzione in memoria, alla comunicazione C2 e al dispiegamento su richiesta dei plugin.
⚠️ Questo repository non distribuisce binari malevoli.
Contiene solo materiale di ricerca, indicatori di compromissione e informazioni difensive.
📄 Rapporto
- PDF:
DesckVB_RAT.pdf
- Argomenti principali trattati:
- Catena di infezione multi-stadio (WSH JavaScript → PowerShell → .NET loader → RAT)
- Decifratura a runtime della configurazione C2 (host, porta, mutex, flag)
- Ricostruzione del protocollo C2 TCP personalizzato utilizzando dati PCAP storici
- Analisi approfondita dei plugin modulari (keylogger, webcam, enumerazione AV, sonda di rete)
- Analisi del builder (v2.6) in ambiente isolato
- Analisi del collegamento della toolchain supportata da OSINT
TL;DR (per chi vuole solo il punto)
- DesckVB RAT non è interessante perché è nuovo, ma perché è stabile, modulare e operativamente maturo.
- L'architettura basata su plugin consente agli aggressori di distribuire selettivamente capacità post-compromissione.
- Anche con infrastruttura C2 inattiva, i dati PCAP storici consentono una ricostruzione affidabile di:
- struttura del protocollo
- semantica dei comandi
- meccanismi di consegna dei plugin
- Riferimenti ripetuti a “Pjoao1578” attraverso plugin, metadati e percorsi di build supportano fortemente un collegamento condiviso di toolchain/ambiente di build (non attribuzione cieca).
🔗 Catena di uccisione osservata (Alto livello)
Fase 1 – WSH JavaScript
- Obfuscation pesante delle stringhe
- Auto-copia in
C:\Users\Public\
- Rilancio tramite
wscript.exe //nologo
- Ricostruzione dinamica di un payload PowerShell (Base64)
Fase 2/3 – PowerShell
- Ricostruzione del payload a runtime
- Verifiche di connettività (domini Google)
- Logica anti-analisi (controlli di processo/debugger)
- Download di chunk di payload codificati in decimale
- Ricostruzione in memoria di un assembly .NET
Fase 4 – .NET Loader (Fileless)
Assembly.Load() con invocazione riflessiva
- Esecuzione condizionata da controlli ambientali
- Nessun PE rilasciato a riposo
Fase 5 – DesckVB RAT v2.9.0.0
- Decifratura a runtime della configurazione:
- indirizzo e porta C2
- mutex
- flag di capacità
- password di autenticazione C2
- Beaconing TCP persistente con ciclo di riconnessione
- C2 osservato come inattivo (RST) durante l'analisi dal vivo
📡 Protocollo C2 e consegna dei plugin
Ricostruito da dati PCAP storici:
- Comando di esecuzione del plugin:
RunBlugin||<BASE64_ENCODED_DLL>
- Elementi del protocollo consistenti:
- Delimitatore di campo:
||
- Terminatore di messaggio (usato da diversi plugin):
#Sucess#
Questa coerenza del protocollo è critica per il rilevamento e la caccia a livello di rete, anche quando l'infrastruttura cambia.
🧩 Plugin analizzati (Panoramica)
-
DetectarAntivirus.dll
-
Enumera i prodotti di sicurezza installati
-
Invia i risultati al C2
-
Keylogger.dll
-
Hook della tastiera a basso livello (SetWindowsHookEx)
-
Tracciamento della finestra attiva
-
Intercettazione degli appunti
-
Esfiltrazione tramite protocollo TCP personalizzato
-
Webcam.dll
-
Utilizza DirectShow (AForge)
-
Stream di frame JPEG con prefisso Cam||
-
Tenta di sopprimere il LED della fotocamera tramite chiave di registro (l'effetto dipende da OEM/driver)
-
Ping_Net.dll
-
Sonda ICMP RTT (predefinito: www.google.com.br)
-
Il comando opzionale mapa esegue il fetch HTTP(S) di URL forniti dall'attaccante
🧪 Validazione del Builder (v2.6)
Una versione crackata del builder DesckVB RAT (v2.6) è stata eseguita in un ambiente di laboratorio completamente isolato per confrontare:
- struttura della configurazione
- denominazione e layout dei plugin
- semantica del protocollo
- convenzioni di versionamento
La sovrapposizione tra output del builder e campioni reali mostra una forte continuità tra le versioni, supportando il clustering a livello di ecosistema.
L'identificatore “Pjoao1578” appare ripetutamente e indipendentemente in:
- metadati
CompanyName in più plugin (Pjoao1578Developer)
- percorsi di debug come:
...\DesckVB Rat\V2.9.0.0\DLL\Blugin Stub\
- Segnalazioni pubbliche precedenti collegate a loader e strumenti correlati
Conclusione corretta
- Forte evidenza di toolchain/ambiente di build/branding condivisi
- Utile per clustering e caccia alle minacce
- Non sufficiente per un'attribuzione personale definitiva
Il rapporto evita intenzionalmente la sovra-attribuzione e tratta questi indicatori con il necessario rigore analitico.
🧾 Indicatori di compromissione (Estratto)
Tabelle complete disponibili nell'appendice del rapporto.
C2
manikandan83[.]mysynology[.]net:7535
URL di staging (esempi)
hxxps://andrefelipedonascime1768785037020[.]1552093[.]meusitehostgator[.]com[.]br/.../01.txt
.../02.txt
.../03.txt
.../PeYes
SHA256 (esempi)
- Fase 1 JS:
9d9cfe5b31a3b020e3c65d440d8355e33f7c056b087ec6aba3093ae1a099ac0
- PowerShell:
347621f7a3392939d9bdbe8a6c9fda30ba9d3f23cb6733484da8e2993772b7f3
- Loader:
a675f5a396de1fa732a9d83993884b397f02921bbcf34346fbed32c8f4053064
- RAT:
affb29980bc9564f1b03fe977e9ca5c7adf254656d639632c4d14e34aa4fdff6
- Webcam plugin:
ff051dde71487ea459899920ef7014dad8eee4df308eb360555f3e22232c9367
🛡️ Guida al rilevamento e alla caccia
Segnali sugli endpoint
- JavaScript WSH offuscato copiato in
C:\Users\Public\
- Esecuzione tramite
wscript.exe //nologo
- PowerShell che costruisce array di byte decimali +
Assembly.Load()
- Mutex:
nozgrb6ev4t4c7sc2hz7iwnnmmwahj54
- Mascheramento dei processi (
Update.exe, directory Microsoft)
Segnali di rete
- Formato beacon contenente:
Desk||<machine>||<user>||<locale>||2.9.0.0||
- Consegna plugin tramite
RunBlugin||
- Delimitatore stabile
|| e terminatore #Sucess#
📚 Metodologia
- Analisi statica (stringhe, IL, metadati)
- Esecuzione dinamica in laboratorio isolato
- Ricostruzione del traffico di rete utilizzando PCAP storici
- Esecuzione del builder per confronto strutturale
⚠️ Disclaimer
Questa ricerca è pubblicata solo a scopo difensivo e analitico.
- Nessun binario malevolo viene distribuito
- Gli indicatori possono essere riutilizzati o decadere nel tempo
- L'attribuzione è gestita in modo conservativo:
- le prove supportano collegamento della toolchain e clustering
- non identificazione definitiva di un singolo operatore
📎 Citation
Se fai riferimento o riutilizzi questa ricerca, per favore collega:
- questo repository
- il rapporto PDF completo
- l'account X dell'autore (@ShadowOpCode)