SOC Prime Bias: Media

13 Feb 2026 13:56

WSL en el Ecosistema de Malware

Author Photo
Ruslan Mikhalov Jefe de Investigación de Amenazas en SOC Prime linkedin icon Seguir
WSL en el Ecosistema de Malware
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El artículo explica cómo un JavaScript malicioso puede detectar el Subsistema de Windows para Linux (WSL) en un host y luego enumerar la información y directorios de usuarios de Windows. La muestra—ottercookie-socketScript-module-3.js—se atribuye a la familia de infostealer Cryxos. Utilizando variables de entorno más sondas del sistema de archivos, el código busca marcadores de WSL y luego mapea datos de Windows expuestos a través de puntos de montaje de WSL (por ejemplo, rutas de usuario bajo /mnt/c/Users). El escrito enmarca esto como un uso incorrecto de WSL como capacidad de vivir de la tierra.

Investigación

El análisis señala dos funciones, is_wsl() y get_wu(), que buscan artefactos específicos de WSL y recuperan el nombre de usuario de Windows conectado. Si WSL está presente, el malware amplía su alcance de recopilación al agregar /mnt a sus objetivos de escaneo para poder recorrer unidades del host a través de rutas montadas y enumerar directorios de usuarios. No se publicó el hash SHA256 de la muestra, pero se proporcionó el nombre de archivo para caza y correlación.

Mitigación

Vigile el uso inusual de WSL en terminales de producción, incluida la actividad sospechosa a través de compartir wsl$ y el acceso inesperado a volúmenes de host montados. Deshabilite o restrinja WSL donde no sea necesario y detecte scripts que interroguen variables de entorno de WSL o que lean /proc/version. También monitoree ejecuciones de JavaScript que invocan cmd.exe para hacer echo %USERNAME% durante el perfilado del host.

Respuesta

Si se detecta, aísle el terminal, conserve evidencia forense de montajes WSL y archivos accedidos, y ejecute un escaneo completo de malware. Elimine ottercookie-socketScript-module-3.js y cualquier carga útil relacionada, luego verifique que las configuraciones de WSL estén reforzadas o deshabilitadas.

"graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef data fill:#ccffcc %% Action: Check for WSL environment action_check_wsl["<b>Acción</b> – Verificar entorno WSL<br/><b>Técnica</b> – T1497.002: Evasión de Virtualización/Sandbox: Verificaciones basadas en actividad del usuario<br/><b>Descripción</b>: El adversario inspecciona el entorno en busca de artefactos de virtualización o sandbox basados en la actividad del usuario para evitar análisis."] class action_check_wsl action %% Technique node for T1497.002 (optional, shown within action text) %% Action: Retrieve Windows username action_retrieve_username["<b>Acción</b> – Recuperar nombre de usuario de Windows vía cmd.exe y /mnt/c/Users<br/><b>Técnica</b> – T1056.004: Captura de Entrada: Enganche de API de Credenciales<br/><b>Descripción</b>: El adversario captura la entrada de credenciales enganchando las API relevantes de Windows."] class action_retrieve_username action %% Action: Locate browser data paths action_locate_browser["<b>Acción</b> – Localizar rutas de datos del navegador<br/><b>Técnica</b> – T1555.003: Credenciales de Almacenes de Contraseñas: Credenciales de Navegadores Web<br/><b>Descripción</b>: El adversario busca en directorios típicos de navegadores para acceder a credenciales web almacenadas."] class action_locate_browser action %% Action: Add /mnt mount point to priority directories action_add_mount["<b>Acción</b> – Añadir punto de montaje /mnt a directorios prioritarios<br/><b>Técnica</b> – T1564.004: Ocultar Artefactos: Atributos de Archivo NTFS<br/><b>Descripción</b>: El adversario utiliza atributos NTFS para ocultar puntos de montaje y priorizar ubicaciones maliciosas."] class action_add_mount action %% Action: Collect files from mounted Windows drives action_collect_files["<b>Acción</b> – Recopilar archivos de unidades de Windows montadas<br/><b>Técnicas</b> – T1025: Datos de Medios Extraíbles; T1091: Replicación a través de Medios Extraíbles<br/><b>Descripción</b>: El adversario recopila datos y replica archivos maliciosos a través de medios extraíbles montados."] class action_collect_files action %% Action: Harvest credentials from browser stores action_harvest_credentials["<b>Acción</b> – Cosechar credenciales de almacenes de navegadores<br/><b>Técnica</b> – T1555.003: Credenciales de Almacenes de Contraseñas: Credenciales de Navegadores Web<br/><b>Descripción</b>: Passwords guardados, cookies y tokens de sesión extraídos de navegadores."] class action_harvest_credentials action %% Action: Potential lateral movement via collected data action_lateral_movement["<b>Acción</b> – Potencial movimiento lateral mediante datos recopilados<br/><b>Descripción</b>: Utilizar credenciales y archivos recopilados para moverse lateralmente dentro de la red."] class action_lateral_movement action %% Connections action_check_wsl –>|leads_to| action_retrieve_username action_retrieve_username –>|leads_to| action_locate_browser action_check_wsl –>|enables| action_add_mount action_add_mount –>|enables| action_collect_files action_locate_browser –>|enables| action_harvest_credentials action_collect_files –>|enables| action_lateral_movement action_harvest_credentials –>|supports| action_lateral_movement "

Flujo de Ataque

Ejecución de Simulación

Requisito previo: La comprobación previa de telemetría y línea base debe haber pasado.

Justificación: Esta sección detalla la ejecución precisa de la técnica adversaria (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa 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 y Comandos:

    El atacante ha conseguido un punto de apoyo inicial en la máquina de la víctima y busca enumerar el nombre de usuario registrado para personalizar las cargas útiles. Para mantenerse oculto, el adversario utiliza un shell de comandos nativo de Windows (Living-off-the-Land) y ejecuta el comando exacto echo %USERNAME% comando, que expande la variable de entorno al nombre del usuario actual. Esta actividad genera un evento de creación de proceso cmd.exe con la línea de comandos echo %USERNAME%, coincidiendo con la firma de la regla de detección.

  • Script de Prueba de Regresión:

    # Simular troyano Cryxos recuperando el nombre de usuario vía cmd.exe
    $cmd = "cmd.exe"
    $args = "/c echo %USERNAME%"
    Write-Host "Ejecutando: $cmd $args"
    Start-Process -FilePath $cmd -ArgumentList $args -NoNewWindow -Wait
  • Comandos de Limpieza:

    # No quedan artefactos persistentes; asegúrese de que cualquier instancia persistente de cmd.exe se termine
    Get-Process -Name cmd -ErrorAction SilentlyContinue | Stop-Process -Force