Introducción
Desde marzo de 2026, el grupo Toy Ghouls (también conocido como Bearlyfy o Labubu) está utilizando un ransomware personalizado llamado GenieLocker para atacar organizaciones en la Federación Rusa, principalmente del sector manufacturero. A diferencia de sus operaciones previas —que dependían de troyanos de terceros como RedAlert, LockBit o Babuk—, esta vez implementan su propia familia de malware, compilada en PE para Windows y ELF para Linux/ESXi. El vector inicial de infección en un caso documentado por Kaspersky fue una conexión OpenVPN desde la red de un socio externo, aprovechando credenciales robadas pero aún válidas.
La particularidad de GenieLocker radica en su diseño modular y en el uso de técnicas de evasión avanzadas, como la validación de argumentos secretos en hexadecimal, chequeos de depuración en tiempo real y listas de exclusión para evitar dañar el sistema operativo. Además, no deja notas de rescate en el sistema: los atacantes las entregan manualmente durante el ataque, lo que dificulta su detección proactiva.
Qué ocurrió
En el incidente analizado por Kaspersky a fines de marzo de 2026, los atacantes accedieron a la red víctima a través de OpenVPN, utilizando credenciales robadas de un partner de confianza. Una vez dentro, desplegaron herramientas legítimas para moverse lateralmente y preparar el terreno:
- SoftPerfect Network Scanner para descubrimiento de hosts.
- Mimikatz para volcar credenciales de memoria.
- KeePassXC (ya instalado en algunas máquinas) para extraer contraseñas almacenadas en sus bases de datos.
- OpenSSH y socks5.exe para establecer túneles de comunicación.
El movimiento lateral se realizó mediante RDP en Windows y SSH en Linux, mientras que la distribución masiva del ransomware se hizo con PsExec y PAExec. En la fase de impacto, los atacantes:
- Detuvieron máquinas virtuales activas en servidores ESXi y Linux.
- Cifraron los discos con la variante ELF de GenieLocker.
- En Windows, usaron la variante PE para cifrar archivos, excluyendo carpetas críticas del sistema (como
Windows,Program Files,System Volume Information).
Un detalle clave: no hubo exfiltración de datos, alineado con el modus operandi histórico de Toy Ghouls, que no opera bajo el modelo de doble extorsión ni mantiene un sitio de fugas.
Impacto para DevOps / Infraestructura / Cloud / Seguridad
El ransomware GenieLocker representa un riesgo medio-alto para entornos híbridos (Windows/Linux/ESXi) por tres razones:
- Alcance multiplataforma: Las variantes ELF afectan a servidores Linux y ESXi, lo que permite a los atacantes cifrar tanto hosts como máquinas virtuales en un mismo ataque. En el caso documentado, se detuvieron VMs antes de cifrar, lo que incrementa el tiempo de inactividad.
- Uso de herramientas legítimas: La dependencia de utilidades como PsExec, PAExec y OpenSSH complica la detección, ya que estas herramientas son comunes en operaciones de administración.
- Evasión de análisis: La validación de un argumento secreto en hexadecimal (hasta 4096 bytes) y los chequeos de depuración en tiempo real (cada 500 ms) reducen la efectividad de sandboxes y soluciones de análisis automático.
El CVSS base score no fue publicado oficialmente, pero la combinación de acceso inicial vía VPN, movimiento lateral y cifrado de discos sugiere un impacto crítico en disponibilidad (CIA triada). En el incidente de marzo, se vieron afectados servidores de producción y almacenes de datos, con un tiempo de recuperación estimado en días, no horas.
Detalles técnicos
Arquitectura y componentes
- Windows (PE): Escrito principalmente en C, compilado con Microsoft Visual C/C++ y librerías C++. Usa libsodium (versión no especificada, pero compatible con la 1.0.18+) para operaciones criptográficas.
- Linux/ESXi (ELF): Implementado en Rust (versión no confirmada, pero con dependencias de
libsodium-syspara el binding con libsodium). - Tamaño de muestras:
5d62c1349b8981c396c9a23f4f8f053c (tamaño: ~1.2 MB).– Linux/ESXi: No se proporcionaron hashes, pero se confirmaron muestras de ~800 KB.
Mecanismos de evasión
- Argumento secreto:
genielocker.exe 5d62c1...).– Este valor se hashea con SHA-256 y se compara con un hash hardcodeado. Si coincide, se appendeara la cadena session y se hashea con BLAKE2b-256 (aunque el resultado no se usa, sugiere una funcionalidad en desarrollo).
– Propósito: Evitar ejecución en entornos controlados (sandboxes) o uso no autorizado por otros grupos.
- Detección de depuración:
IsDebuggerPresent y CheckRemoteDebuggerPresent al inicio.– Watchdog thread: Se ejecuta en un bucle infinito cada 500 ms con:
– Verificación de debuggers conocidos (ej: x64dbg, OllyDbg).
– Cálculo de CRC32 de la sección .text del proceso. Si el hash cambia (por modificación en memoria), el malware se termina.
– Uso de NtQueryInformationProcess para detectar depuradores ocultos.
- Listas de exclusión:
Windows, Program Files, System Volume Information, Boot, Intel, PerfLogs.– Archivos: ntuser.dat, iconcache.db, thumbs.db.
– Extensiones: .exe, .dll, .sys, .lnk, .ini, .log.
– Hostnames: Lista vacía en la muestra analizada, pero el código sugiere soporte para excluir hosts específicos.
Proceso de cifrado
- Preparación:
sqlserver.exe, oracle.exe, mysqld.exe).– Detiene servicios críticos con ControlService y el código SERVICE_CONTROL_STOP.
– Lista de procesos a matar:
sqlservr.exe, oracle.exe, mysqld.exe, postgresql.exe, mssql.exe,
vssvc.exe, sqlagent.exe, dbsnmp.exe, synctime.exe, agntsvc.exe,
isqlplussvc.exe, xfssvccon.exe, mydesktopservice.exe, ocautoupds.exe
- Cifrado:
– Extensión de archivos cifrados: .03ffc1c4a3da0f02 (hardcodeada en la muestra).
– Para cada archivo, crea dos archivos auxiliares:
– Lock file: Almacena el PID del proceso (GetCurrentProcessId) para evitar cifrado duplicado.
– Journal file: Contiene el string VCJOURN, versión (1), campos reservados, bloques totales a cifrar y bloques cifrados. Incluye un CRC32 para validar integridad.
Qué deberían hacer los administradores y equipos técnicos
Detección y prevención
- Monitoreo de herramientas legítimas:
title: PsExec Execution from Unusual Location
description: Detects PsExec being run from non-standard paths
status: experimental
author: Your Team
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\PsExec.exe'
CommandLine|contains: '-accepteula'
filter:
Image|startswith: 'C:\Windows\System32\'
condition: selection and not filter
– Usar Wazuh o Elastic SIEM para correlacionar eventos de process_creation con network_connection.
- Restricción de acceso VPN:
grep -E "auth-failure|client-connect" /var/log/openvpn.log | awk '{print $1, $2, $NF}'
– Implementar MFA para todas las conexiones VPN, incluso para partners.
- Protección de credenciales:
Block credential stealing from the Windows local security subsystem).– KeePassXC: Deshabilitar la opción «Remember password» y forzar el uso de claves maestras complejas + archivos clave (keyfile).
Mitigación en Linux/ESXi
- Hardening de SSH:
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
– Limitar accesos con fail2ban:
apt install fail2ban
systemctl enable fail2ban
- Protección de ESXi:
esxcli system settings advanced set -o /UserVars/ESXiShellInteractiveActive -i 0
– Usar VMware NSX o firewalls de red para segmentar el tráfico entre VMs.
- Detección de GenieLocker:
.03ffc1c4a3da0f02 o patrones de lock/journal files: find / -type f \( -name "*.03ffc1c4a3da0f02" -o -name "VCJOURN*" \) -exec ls -la {} \;
– Monitorear procesos con YARA (regla de ejemplo para la variante Windows):
rule GenieLocker_PE {
meta:
description = "Detects GenieLocker Windows variant"
author = "Your Team"
strings:
$hex_arg = "secret argument" nocase
$libsodium = "libsodium" nocase
$ext = ".03ffc1c4a3da0f02" nocase
condition:
all of them
}
Respuesta ante un incidente
- Aislamiento:
– Bloquear IPs de C2 (en el caso analizado, se usó un reverse SSH tunnel a una IP en 185.143.223[.]43).
- Recuperación:
– Verificar integridad de los backups con:
sha256sum /backup/path/* > /tmp/backup_hashes.txt
Conclusión
GenieLocker demuestra una evolución en las tácticas de Toy Ghouls: pasan de depender de ransomware de terceros a desarrollar su propia herramienta, con capacidades de evasión y cifrado robustas. Su uso de OpenVPN como vector inicial, herramientas legítimas para movimiento lateral y cifrado multiplataforma lo hace especialmente peligroso para entornos híbridos. Los equipos de seguridad deben priorizar:
- La auditoría de accesos VPN y la implementación de MFA.
- El monitoreo de herramientas como PsExec y SSH.
- La segmentación de redes para limitar el movimiento lateral.
- La detección temprana mediante reglas YARA y Sigma.
La ausencia de exfiltración de datos no reduce el impacto: el cifrado de servidores críticos y VMs puede paralizar operaciones por días. La prevención, en este caso, es la mejor defensa.
Fuentes
https://securelist.com/genielocker-ransomware-for-windows-linux-and-esxi/120843/
