La semana pasada analizamos un incidente en una empresa logística con 1.500 endpoints. Un aparente fallo del sistema resultó ser la ejecución de un prankware. El ratón se movía solo, se abrían ventanas aleatorias. El equipo de soporte de primer nivel pensó que era una broma de un empleado. No lo era. Detrás estaba CrystalRAT, un malware híbrido que combina capacidades de acceso remoto (RAT), robo de credenciales (Stealer) y acciones de distracción (Prankware). Esta combinación letal permite a los atacantes desviar la atención del equipo de seguridad mientras exfiltran datos críticos de la red corporativa. Detectar esta amenaza requiere visibilidad total del endpoint y correlación de eventos en tiempo real. Aquí explico cómo identificar y neutralizar CrystalRAT antes de que comprometa tu infraestructura, cumpliendo con los requisitos del art.21 de NIS2.
El vector de entrada habitual es un archivo Excel con macros XLM 4.0 adjunto a un correo que simula una factura vencida. Cuando el usuario habilita la edición, un script de PowerShell descarga el payload de CrystalRAT desde un servidor comprometido en la nube. En 20 segundos, el malware se instala en el directorio AppData, modifica una clave de registro para garantizar la persistencia y se conecta al C2. El daño ya comenzó.
Requisitos Previos / Entorno de Prueba
Para replicar la telemetría y la respuesta ante CrystalRAT, monté un laboratorio aislado con las siguientes herramientas. Necesitas un entorno controlado para analizar muestras de malware sin riesgo de propagación lateral.
- EDR: SentinelOne o CrowdStrike Falcon (versión 7.0+ para telemetría de procesos en tiempo real).
- SIEM: Elastic Stack 8.x o Splunk Enterprise.
- VM de análisis: Windows 10/11 con herramientas de ingeniería inversa como Ghidra y x64dbg.
- Reglas YARA actualizadas para detección estática de firmas en ficheros.
- Segmentación de red: Configura una VLAN aislada sin acceso a internet para las VM de análisis. Usa un switch gestionado Cisco o un FortiGate para el enrutamiento y la inspección.
- Herramientas de red: Wireshark para capturar el tráfico C2 y analizar los certificados TLS autofirmados que usa CrystalRAT.
Anatomía de CrystalRAT: El Peligro de las Amenazas Híbridas
CrystalRAT no es un troyano convencional. Fusiona tres módulos en un solo binario ofuscado. El componente RAT establece un canal cifrado con el servidor de Comando y Control (C2) usando el puerto 443 para mezclarse con el tráfico web legítimo. El Stealer escanea directorios específicos como %APPDATA%\Mozilla\Firefox\Profiles y %LOCALAPPDATA%\Google\Chrome\User Data\Default, extrayendo bases de datos SQLite con credenciales guardadas y cookies de sesión. El Prankware ejecuta acciones visuales: mover el cursor erráticamente, abrir y cerrar aplicaciones, o invertir colores de la pantalla.
¿Por qué incluir Prankware en un ataque dirigido? La respuesta es simple: distracción táctica. Mientras el usuario y el equipo de soporte intentan arreglar el ratón o reinstalar controladores, el Stealer exfiltra la clave de acceso al ERP corporativo por un túnel SOCKS proxy. El ruido generado encaja perfectamente en la técnica T1059 de MITRE ATT&CK, enmascarando la ejecución de comandos automatizados.
El módulo Stealer de CrystalRAT intenta evadir Windows Defender Credential Guard extrayendo directamente las bases de datos SQLite de los navegadores antes de que el sistema las cifre con DPAPI. También captura extensiones de autenticación de dos factores (2FA) instaladas en Chrome, lo que permite a los atacantes eludir el segundo factor de autenticación en portales corporativos y acceder a entornos cloud como OCI o PSN.
rule CrystalRAT_Hybrid_Detection {
meta:
description = "Detección de patrones de comportamiento CrystalRAT"
author = "Rosario Giordano"
date = "2024-05-20"
severity = "critical"
strings:
$s1 = "C2CommEstablish" ascii
$s2 = "StealerBrowserData" ascii
$s3 = "PrankMouseHook" ascii
$s4 = "SOCKSProxyInit" ascii
condition:
uint16(0) == 0x5A4D and 2 of ($s1, $s2, $s3, $s4)
}
Estrategia de Detección y Respuesta con EDR y SIEM
Cuando configuré el SIEM para una PA con 2.000 endpoints, aprendí que las firmas estáticas no alcanzan para amenazas polimórficas como CrystalRAT. Necesitas correlación de eventos. El EDR debe monitorizar comportamientos anómalos en el endpoint: accesos no autorizados a directorios de credenciales de Chrome, creación de procesos hijo inusuales desde explorer.exe, y tráfico saliente a dominios sin reputación.
Correlación de Eventos en el SIEM
El SIEM recibe los logs del EDR y del firewall perimetral. Una alerta de baja severidad por «movimiento anómalo de periférico» (Prankware) seguida de un evento de «lectura de Login Data» por parte de un proceso no firmado (Stealer) debe escalar automáticamente a severidad crítica. Esta correlación reduce el tiempo de respuesta (MTTR) de horas a minutos.
Puedes consultar la taxonomía oficial de este tipo de amenazas en la base de conocimiento de MITRE ATT&CK (https://attack.mitre.org/software/). Lee también: Hardening SSH en Linux: Guía Completa 2026
Una consulta típica en KQL para Microsoft Sentinel que detecta esta actividad sería:
SecurityEvent
| where EventID == 4663
| where ObjectName contains "Login Data" or ObjectName contains "cookies.sqlite"
| join kind=inner (SecurityAlert
| where AlertName contains "Anomalous peripheral input")
on Computer
| project TimeGenerated, Computer, ObjectName, AlertName
Esta búsqueda correlaciona el acceso a archivos de credenciales con la alerta de movimiento anómalo de periféricos en el mismo equipo en una ventana de 10 minutos. Todavía no tengo una respuesta definitiva sobre si el módulo Prankware evolucionará hacia un wiper destructivo en futuras versiones, pero la tendencia del cibercrimen organizado indica que la distracción es solo la primera fase antes del impacto.
Errores Comunes y Resolución de Problemas
Error 1: Ignorar las alertas de Prankware como falsos positivos de hardware. Los técnicos de soporte suelen cerrar estos tickets sin escalar al equipo de SOC. Solución: Configura el EDR para que cualquier evento de simulación de periféricos genere un ticket de investigación si ocurre dentro de los 5 minutos posteriores a un acceso a archivos de credenciales.
Error 2: Bloquear el dominio C2 sin aislar el host. CrystalRAT tiene mecanismos de failover y DNS tunneling. Si cortas el C2 principal sin aislar la máquina, el malware intenta conectarse a IPs de respaldo codificadas en el binario. Aísla el endpoint primero desde la consola EDR. Corta la red, luego analiza.
Error 3: No segmentar la red tras la detección. Si el Stealer obtiene credenciales de administrador local, el atacante usará Pass-the-Hash para moverse lateralmente. Revisa las VLAN y aplica microsegmentación con firewalls de capa 7 para contener el movimiento lateral antes de que alcance los controladores de dominio.
Error 4: No limpiar los artefactos de persistencia en Active Directory. CrystalRAT crea cuentas de servicio ocultas con permisos de Domain Admin. Si solo limpias el endpoint y no auditas el AD, el atacante volverá a entrar en 24 horas usando herramientas legítimas como PsExec. Ejecuta scripts de Ansible para revisar los grupos de administradores y deshabilitar cuentas sospechosas de forma automatizada.
Conclusiones con Puntos Clave Operativos
CrystalRAT demuestra que el malware evoluciona hacia la multifunción para evadir controles tradicionales. La combinación de distracción y robo silencioso es devastadora para la continuidad operativa.
Puntos clave:
- Despliega EDR en todos los endpoints. Las soluciones antivirus tradicionales basadas en firmas no detectan comportamientos de Stealer en memoria ni la inyección de código del RAT.
- Configura reglas de correlación en tu SIEM. Un evento de Prankware más un acceso a bases de datos de navegadores es un incidente activo, no una broma de oficina.
- Cumple con NIS2 art.21. Notifica incidentes de ciberseguridad en 24 horas y mantiene la trazabilidad de los logs durante al menos 6 meses para facilitar el análisis forense.
- Aísla antes de bloquear. Contención primero, remediación después. Evita el movimiento lateral antes de desconectar el C2.