SOC Prime Bias: Crítico

26 Mar 2026 15:16

GlassWorm Esconde un RAT Dentro de una Extensión Malintencionada de Chrome

Author Photo
Ruslan Mikhalov Jefe de Investigación de Amenazas en SOC Prime linkedin icon Seguir
GlassWorm Esconde un RAT Dentro de una Extensión Malintencionada de Chrome
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

GlassWorm abusa de paquetes npm, PyPI, GitHub y OpenVSX comprometidos para distribuir una plataforma de malware de varias etapas. Su primera etapa lanza un cargador que consulta un memo de blockchain de Solana para obtener direcciones de comando y control, luego descarga una carga útil encriptada. La segunda etapa roba credenciales, archivos de billetera de criptomonedas y detalles del host, mientras que la tercera etapa despliega un RAT persistente basado en WebSocket junto con una extensión maliciosa de Chrome diseñada para capturar datos del navegador. La operación está dirigida principalmente a desarrolladores y poseedores de criptomonedas.

Investigación

Los analistas vincularon el compromiso inicial a scripts de preinstalación maliciosos y cargadores basados en Unicode incrustados en paquetes que de otra manera serían legítimos. Descubrieron dos direcciones de billeteras de Solana actuando como ubicaciones de depósito para las URL de C2 y vieron cómo el cargador sondeaba varios endpoints RPC de Solana. El RAT de la tercera etapa depende de nodos de arranque DHT y recurre a la recuperación basada en Solana si falla la resolución DHT. Los investigadores también identificaron la infraestructura de exfiltración y trazaron el mapa de la extensión maliciosa de Chrome utilizada en la campaña.

Mitigación

Las organizaciones deben imponer el escaneo de la cadena de suministro para npm y otros ecosistemas de paquetes, verificar la integridad de los paquetes y la confianza del editor, y bloquear IPs y dominios maliciosos conocidos. Las defensas de endpoints deben monitorear las ejecuciones no autorizadas de Node.js, tareas programadas inesperadas y claves de ejecución del registro sospechosas. Los almacenes de credenciales del navegador deben fortalecerse, y los usuarios de criptomonedas deben adoptar la verificación con billeteras de hardware siempre que sea posible.

Respuesta

Si se detecta GlassWorm, aísle el endpoint afectado, detenga los procesos maliciosos y elimine cualquier archivo descargado y mecanismos de persistencia como tareas programadas. Revoque tokens npm comprometidos, rote las credenciales de las billeteras de criptomonedas y restablezca las contraseñas almacenadas en el navegador. Complete una revisión forense completa de los registros del host para rastrear la ejecución del cargador y actualice los controles de seguridad para reducir el riesgo de futuros compromisos de la cadena de suministro.

"graph TB %% Class Definitions classDef technique fill:#ffcc99 classDef persistence fill:#99ffcc classDef exfil fill:#ff9999 classDef credential fill:#ccccff classDef execution fill:#ffdb4d classDef collection fill:#c2f0c2 classDef command fill:#ffd699 %% Nodes u2013 Attack Steps step1_initial_access["<b>Técnica</b> – <b>T1195.001 Compromiso de la Cadena de Suministro</b><br/>Paquetes de npm/pyPI maliciosos y repositorios de GitHub comprometidos entregan un cargador."] class step1_initial_access technique step2_obfuscation["<b>Técnica</b> – <b>T1027 Archivos o Información Ofuscados</b><br/>El código del cargador está ofuscado y compilado después de la entrega (T1027.004)."] class step2_obfuscation execution step3_guardrails["<b>Técnica</b> – <b>T1480 Guardas de Ejecución</b><br/>El cargador verifica el entorno local, el idioma y la zona horaria, y aborta la ejecución fuera de las regiones rusas objetivo."] class step3_guardrails execution step4_dead_drop["<b>Técnica</b> – <b>T1102.001 Resolvedor de Depósito Muerto</b><br/>El cargador consulta memos de transacciones de la blockchain de Solana para obtener la URL de C2."] class step4_dead_drop command step5_cred_files["<b>Técnica</b> – <b>T1552.001 Credenciales en Archivos</b><br/>Recopila .npmrc, NPM_TOKEN, configuraciones de proveedores de nube y claves privadas de SSH."] class step5_cred_files credential step6_browser_creds["<b>Técnica</b> – <b>T1555.003 Credenciales de Navegadores Web</b><br/>Extrae contraseñas, cookies, datos de autocompletar y tarjetas de pago de Chrome, Edge, Firefox; elude la encriptación específica de la aplicación."] class step6_browser_creds credential step7_private_keys["<b>Técnica</b> – <b>T1552.004 Claves Privadas</b><br/>Copia archivos de billeteras de criptomonedas y capturas de pantalla de frases semilla."] class step7_private_keys credential step8_exfil_webhook["<b>Técnica</b> – <b>T1567.004 Exfiltración a Través de Webhook</b><br/>Comprime datos preliminares y los envía mediante POST a endpoints HTTP controlados por el atacante."] class step8_exfil_webhook exfil step9_persistence_rc["<b>Técnica</b> – <b>T1037.004 Scripts RC</b><br/>Crea una entrada en HKCUSoftwareMicrosoftWindowsCurrentVersionRun y tarea programada para lanzar PowerShell al iniciar."] class step9_persistence_rc persistence step10_wmi_event["<b>Técnica</b> – <b>T1546.003 Suscripción de Eventos WMI</b><br/>Registra un evento WMI para detectar billeteras de hardware USB y lanzar una interfaz de suplantación de identidad."] class step10_wmi_event persistence step11_ps_profile["<b>Técnica</b> – <b>T1546.013 Perfil de PowerShell</b><br/>Agrega persistencia a través de un script de perfil de PowerShell."] class step11_ps_profile persistence step12_vnc["<b>Técnica</b> – <b>T1021.005 VNC</b><br/>Carga un módulo nativo oculto de VNC (HVNC) para un escritorio remoto invisible."] class step12_vnc command step13_multi_stage["<b>Técnica</b> – <b>T1104 Canales de Múltiples Etapas</b><br/>Establece un canal bidireccional de WebSocket Socket.IO para comandos C2."] class step13_multi_stage command step14_input_injection["<b>Técnica</b> – <b>T1674 Inyección de Entrada</b><br/>Ejecuta JavaScript suministrado por el atacante a través de eval() dentro del RAT."] class step14_input_injection execution step15_keylog_clip["<b>Técnica</b> – <b>T1056.001 Keylogging</b> & <b>T1115 Datos del Portapapeles</b><br/>La extensión maliciosa de Chrome registra pulsaciones de teclas, captura texto del portapapeles y toma capturas de pantalla."] class step15_keylog_clip collection step16_browser_hijack["<b>Técnica</b> – <b>T1185 Secuestro de Sesiones del Navegador</b><br/>La extensión recolecta cookies y tokens de sesión y puede redirigir pestañas activas a URLs controladas por el atacante."] class step16_browser_hijack collection %% Connections u2013 Attack Flow step1_initial_access –>|leads to| step2_obfuscation step2_obfuscation –>|leads to| step3_guardrails step3_guardrails –>|leads to| step4_dead_drop step4_dead_drop –>|leads to| step5_cred_files step5_cred_files –>|leads to| step6_browser_creds step6_browser_creds –>|leads to| step7_private_keys step7_private_keys –>|leads to| step8_exfil_webhook step8_exfil_webhook –>|leads to| step9_persistence_rc step9_persistence_rc –>|leads to| step10_wmi_event step10_wmi_event –>|leads to| step11_ps_profile step11_ps_profile –>|leads to| step12_vnc step12_vnc –>|leads to| step13_multi_stage step13_multi_stage –>|leads to| step14_input_injection step14_input_injection –>|leads to| step15_keylog_clip step15_keylog_clip –>|leads to| step16_browser_hijack "

Flujo de Ataque

Detecciones

Ejecución de Binario NodeJS desde Ubicación No Común (vía cmdline)

Equipo de SOC Prime
26 Mar 2026

Intento de Comunicación de Búsqueda de Dominio de IP Posible (vía dns)

Equipo de SOC Prime
26 Mar 2026

Puntos de Persistencia Posibles [ASEPs – Software/Colmena NTUSER] (vía evento_registro)

Equipo de SOC Prime
26 Mar 2026

Posible Abuso de Ethereum Publicnode Como Canal C2 (vía consulta_dns)

Equipo de SOC Prime
26 Mar 2026

IOCs (DestinationIP) para detectar: GlassWorm Esconde un RAT Dentro de una Extensión Maliciosa de Chrome

Reglas de SOC Prime AI
26 Mar 2026

IOCs (HashMd5) para detectar: GlassWorm Esconde un RAT Dentro de una Extensión Maliciosa de Chrome

Reglas de SOC Prime AI
26 Mar 2026

IOCs (HashSha256) para detectar: GlassWorm Esconde un RAT Dentro de una Extensión Maliciosa de Chrome

Reglas de SOC Prime AI
26 Mar 2026

IOCs (HashSha1) para detectar: GlassWorm Esconde un RAT Dentro de una Extensión Maliciosa de Chrome

Reglas de SOC Prime AI
26 Mar 2026

IOCs (SourceIP) para detectar: GlassWorm Esconde un RAT Dentro de una Extensión Maliciosa de Chrome

Reglas de SOC Prime AI
26 Mar 2026

IOCs (Emails) para detectar: GlassWorm Esconde un RAT Dentro de una Extensión Maliciosa de Chrome

Reglas de SOC Prime AI
26 Mar 2026

Detección de Exfiltración de Datos y RAT GlassWorm [Conexión de Red Windows]

Reglas de SOC Prime AI
26 Mar 2026

Detección de Ejecución de Binario de Phishing Ledger/Trezor [Creación de Proceso Windows]

Reglas de SOC Prime AI
26 Mar 2026

Ejecución de Simulación

Requisito previo: El Chequeo Previo de Telemetría & Línea de Base debe haber pasado.

Rationale: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narración DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa de Ataque & Comandos:
    Un atacante ha obtenido un binario malicioso que pretende ser el cliente de billetera Ledger Live/Trezor. El binario se llama Assaac.exe para imitar un ejecutable legítimo. Se coloca en el directorio %APPDATA% del usuario, y un archivo JavaScript complementario (index.js) se coloca en una subcarpeta oculta QtCvyfVWKH. Luego, el atacante ejecuta el binario, lo que provoca que Windows registre un evento de creación de proceso con el nombre exacto de la imagen y la ruta de la línea de comando que observa la regla Sigma.

    Paso a paso:

    1. Crea la carpeta oculta y coloca el script malicioso.
    2. Copia el ejecutable malicioso (Assaac.exe) en el AppData del usuario.
    3. Inicia el ejecutable, que lee index.js y comienza las rutinas de robo de credenciales.
  • Script de Prueba de Regresión:

    # ------------------------------------------------------------
    # Configurar archivos maliciosos
    # ------------------------------------------------------------
    $appData = $env:APPDATA
    $folder  = Join-Path $appData "QtCvyfVWKH"
    $exePath = Join-Path $appData "Assaac.exe"
    $jsPath  = Join-Path $folder "index.js"
    
    # Asegúrese de que la carpeta oculta exista
    New-Item -ItemType Directory -Path $folder -Force | Out-Null
    # Ocultar la carpeta (opcional)
    (Get-Item $folder).Attributes += 'Hidden'
    
    # Desplegar un ejecutable malicioso de prueba (para demo utilizamos una copia de calc.exe)
    Copy-Item -Path "$env:SystemRootSystem32calc.exe" -Destination $exePath -Force
    
    # Desplegar una carga útil JavaScript de prueba (el contenido es irrelevante para la detección)
    @"
    // marcador de carga maliciosa
    console.log('Robo de billetera de criptomonedas ejecutado');
    "@ | Set-Content -Path $jsPath -Encoding UTF8
    
    # ------------------------------------------------------------
    # Ejecutar el binario malicioso (esto debería activar la regla Sigma)
    # ------------------------------------------------------------
    & $exePath "$jsPath"
    
    # ------------------------------------------------------------
    # Fin del script – deje artefactos para la limpieza manual
    # ------------------------------------------------------------
  • Comandos de Limpieza:

    # Terminar el proceso malicioso si aún está en ejecución
    Get-Process -Name "Assaac" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Eliminar los archivos y carpetas creados
    Remove-Item -Path $exePath -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $jsPath -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $folder -Recurse -Force -ErrorAction SilentlyContinue