ESET descubre variantes de SpySOCKS para Windows en ataques a gobiernos

El backdoor SpySOCKS, antes limitado a Linux, ahora ataca Windows con rootkits y técnicas de sigilo avanzadas contra entidades gubernamentales.

Por Central
Las variantes WIN_DRV y WIN_PLUS de SpySOCKS fueron detectadas por ESET entre 2023 y 2024.
Destacados
  • ESET identificó dos variantes de SpySOCKS para Windows, denominadas WIN_DRV y WIN_PLUS, activas entre 2023 y 2024.
  • El grupo FishMonger, vinculado al contratista chino I-SOON, es el responsable de estas nuevas variantes multiplataforma.
  • Las variantes incluyen rootkits de kernel y más de 30 comandos de control, dirigidos contra gobiernos de Honduras, Taiwán, Tailandia y Pakistán.

El panorama de la ciberamenaza global suma una nueva pieza de alto impacto: el backdoor SpySOCKS, hasta ahora circunscrito al ecosistema Linux, ha sido portado a Windows con capacidades de sigilo sin precedentes. Investigadores de ESET han descubierto dos variantes inéditas del malware —identificadas internamente como WIN_DRV y WIN_PLUS— que estuvieron activas entre 2023 y 2024, dirigidas principalmente contra organizaciones gubernamentales en Honduras, Taiwán, Tailandia y Pakistán. Este hallazgo no solo revela la expansión multiplataforma del grupo FishMonger, sino que introduce un nivel de sofisticación técnica que combina rootkits a nivel de kernel, técnicas de desvío de tráfico TCP y más de 30 comandos de control.

El grupo FishMonger y su vínculo con I‑SOON: perfil, historial y objetivos

FishMonger es un grupo de ciberespionaje que opera bajo el paraguas de Winnti Group y que, según informes previos de ESET, está presuntamente gestionado por un contratista chino llamado I‑SOON, radicado en la ciudad de Chengdu. También es conocido como Earth Lusca, TAG-22, Aquatic Panda o Red Dev 10. El grupo fue analizado por primera vez por ESET a principios de 2020, cuando centró sus ataques en universidades de Hong Kong durante las protestas cívicas de junio de 2019. FishMonger ha empleado históricamente un arsenal que incluye ShadowPad, Spyder, Cobalt Strike, FunnySwitch, SprySOCKS y el troyano BIOPASS RAT, y es conocido por ejecutar ataques de watering-hole (compromiso de sitios web legítimos para infectar visitantes).

La atribución de las nuevas variantes de Windows a FishMonger se realiza con alta confianza, basándose en las similitudes fundamentales con la versión Linux: el formato de mensajes C2, los comandos (incluyendo algunos adicionales), las claves y algoritmos de cifrado, y el uso de la misma librería de red estática (HP-Socket). La versión 1.8 de SprySOCKS, que ahora también se despliega en Windows, representa una evolución significativa en las capacidades del grupo.

Las dos caras de SpySOCKS para Windows: WIN_DRV y WIN_PLUS

ESET identificó dos variantes de SpySOCKS que, aunque comparten el núcleo funcional del backdoor, se diferencian drásticamente en el nivel de ocultación. La primera, WIN_DRV, incorpora un driver de kernel que permite esconder conexiones de red, procesos, archivos y claves de registro, además de habilitar una función de desvío de tráfico TCP. La segunda, WIN_PLUS, carece de este driver y, por tanto, es menos sigilosa, pero igualmente peligrosa gracias a sus capacidades completas de backdoor.

Ambas variantes soportan comunicación con el servidor de comando y control (C2) sobre los protocolos TCP, UDP y WebSocket, y son capaces de actuar tanto como cliente como servidor. El backdoor incluye más de 30 comandos que permiten recopilar información del sistema, enumerar procesos, gestionar servicios, manipular archivos (listar, crear, eliminar, transferir) e incluso ejecutar una consola interactiva.

WIN_DRV: el backdoor pasivo que se esconde en el kernel

La variante WIN_DRV fue descubierta a partir de un archivo comprimido subido a VirusTotal en abril de 2024 con el nombre klelam00007.zip. Este archivo contenía, entre otros elementos, varios ficheros legítimos para facilitar DLL side-loading y tres archivos cifrados con extensión .dat. El análisis reveló que el archivo X1B5206BDC1743DD.dat albergaba el backdoor propiamente dicho, junto con dos drivers de kernel cifrados. La cadena de ejecución comienza con un script batch (klelam00007.bat) que copia todos los archivos a %SystemRoot%\Fonts, crea una tarea programada (ApphostRagistreationVerifier) que se ejecuta con privilegios de SYSTEM, y utiliza DLL side-loading a través de un ejecutable legítimo de ThinPrint (ApphostRagistreationVerifier.exe) para cargar la DLL maliciosa tpsvcloc.dll.

El loader de SpySOCKS verifica la presencia de entornos virtualizados y productos de seguridad específicos (snxhk.dll, SxWrapper.dll, SxIn.dll, SXIn64.dll, SbieDll.dll). Si no encuentra ninguno, procede a descifrar el contenedor cifrado con AES-128 en modo ECB y una clave hardcodeada (uXQLESMXGaRMs6BL). El shellcode resultante se inyecta en un proceso svchost.exe mediante la técnica de process doppelgänging. El driver DriverLoader se descifra y se carga como un minifilter a través de la API NtLoadDriver, utilizando un certificado filtrado del proyecto PastDSE para firmar el driver.

RawWNPF: el rootkit que hace invisible al backdoor

El componente estrella de WIN_DRV es el driver RawWNPF, que crea el dispositivo \Device\RawWNPF y expone múltiples IOCTLs para gestionar el ocultamiento. Entre sus capacidades destacan:

  • Ocultación de procesos: mediante un hook en la llamada al sistema NtQuerySystemInformation, basado en el proyecto InfinityHookPro, elimina procesos específicos de los listados del sistema.
  • Ocultación de conexiones de red: hookea el IoCompletionRoutine del driver nsiproxy.sys (IOCTL 0x12001B) para eliminar conexiones activas en herramientas como netstat.exe.
  • Desvío de tráfico TCP: mediante Windows Filtering Platform (WFP), registra filtros de paquetes que inspeccionan el tráfico IPv4 entrante y saliente. Si un paquete TCP contiene un dato especialmente diseñado, el tráfico se redirige al puerto real del backdoor, permitiendo a los atacantes comunicarse sin conocer el puerto de escucha. Esta funcionalidad convierte a WIN_DRV en un backdoor pasivo extremadamente difícil de detectar.
  • Ocultación de archivos: se registra como minifilter driver y filtra los intentos de abrir o enumerar los archivos del backdoor (tpsvc.dll, tpsvcloc.dll, ApphostRagistreationVerifier.exe, y los tres archivos .dat).
  • Protección de persistencia: mediante un RegistryCallback, oculta la clave de registro HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vds.exe, utilizada para la persistencia del loader.

WIN_PLUS: el backdoor activo con persistencia via print processors

La variante WIN_PLUS, detectada por primera vez en julio de 2024 en un equipo de Pakistán, no incluye el driver de kernel, pero utiliza una cadena de infección igualmente sofisticada. El contenedor cifrado se aloja en C:\Windows\System32\spool\drivers\color\config.dat. Un loader de primera etapa (VSPMsg.dll) se instala como un print processor bajo la clave HKLM\SYSTEM\ControlSet001\Control\Print\Environments\Windows x64\Print Processors\VSPMsg. Este loader verifica que el proceso que lo ejecuta sea spoolsv.exe (para evadir sandboxes) y, si es así, descifra el backdoor y lo inyecta en un proceso svchost.exe mediante process doppelgänging.

La configuración C2 de WIN_PLUS estaba hardcodeada con una única dirección IP: 207.148.78[.]36, utilizando los puertos 443 (TCP), 53 (UDP) y 80 (WebSocket). El backdoor también abre un puerto TCP de escucha (53781) y modifica el firewall de Windows para permitir tráfico entrante hacia ese puerto.

Comunicación con el C2: tres protocolos, un mismo cifrado

SpySOCKS para Windows mantiene la arquitectura de su predecesor Linux. Utiliza tres canales de comunicación: TCP, UDP y WebSocket. Cada canal emplea un magic number distintivo en la cabecera del mensaje:

  • TCP: 0xACACBCBC
  • UDP: 0xACACBFBC
  • WebSocket: 0x1BDCCBAA (utilizado como Masking-Key)

Tras la cabecera, el mensaje incluye un CRC de 32 bits, un indicador de método de cifrado (WORD 0x0003), y los datos cifrados con AES-128 en modo ECB (clave QFTHEYjzX3RBOMgZ) y codificados en base64. El campo __msgid dentro del mensaje descifrado determina el comando a ejecutar. La tabla de comandos incluye más de 30 IDs, abarcando desde recopilación de información del sistema (0x09) hasta enumeración de procesos (0x11), gestión de servicios (0x1E a 0x22), funciones de archivo (0x3C a 0x43), y una funcionalidad de keylogging que se activa si existe un archivo de configuración específico.

El keylogging registra las pulsaciones de teclas, los datos del portapapeles y el título de la ventana activa en un archivo cifrado con XOR de un solo byte (clave 0x44). Esta actividad solo se inicia si el archivo %appdata%\Microsoft\Vault\lgf.dat contiene una sección config con key=1.

Infraestructura de red y vectores de ataque

La única dirección C2 identificada en esta campaña es 207.148.78[.]36, perteneciente al rango 207.148.64.0/20 de Vultr. El mismo rango fue utilizado por FishMonger en junio de 2023 para un servidor de entrega de SpySOCKS Linux. La IP se emplea como servidor C2 para los tres canales de comunicación, utilizando puertos estándar de servicios conocidos (443, 53, 80) para camuflar el tráfico.

Aunque ESET no pudo confirmar el vector de acceso inicial exacto, la presencia de sistemas operativos de servidor en algunas víctimas, junto con el modus operandi habitual de FishMonger, sugiere que los atacantes explotaron vulnerabilidades N-day en aplicaciones públicas mal configuradas o sin parchear. El grupo es conocido por atacar servidores públicos, y la inclusión de un posible componente de UEFI bootkit (explotando potencialmente CVE‑2023‑24932) añade una capa adicional de persistencia a nivel de firmware.

Implicaciones estratégicas para gobiernos y organizaciones

El hallazgo de ESET representa un salto cualitativo en las capacidades de FishMonger. La portabilidad a Windows de un backdoor que ya era efectivo en Linux, combinada con el uso de rootkits de kernel avanzados (RawWNPF), coloca a este grupo entre los actores de amenaza más sofisticados del panorama actual. Las técnicas de desvío de tráfico TCP mediante WFP permiten a los atacantes mantener canales de comunicación ocultos incluso frente a análisis de red tradicionales, ya que el puerto real de escucha nunca se expone en el tráfico.

Para los gobiernos de Honduras, Taiwán, Tailandia y Pakistán —países donde se detectó actividad—, la prioridad inmediata debe ser auditar sistemas en busca de los indicadores de compromiso (IoCs) proporcionados por ESET, revisar la presencia de drivers no firmados en el kernel, y monitorear conexiones salientes hacia el rango 207.148.64.0/20. La posible implicación de un bootkit UEFI sugiere que la limpieza de un sistema comprometido puede requerir restauración desde imágenes confiables o incluso reemplazo de hardware.

La evolución de SpySOCKS refleja una tendencia más amplia en el ciberespionaje: los grupos sofisticados ya no se limitan a una sola plataforma. El desarrollo de herramientas multiplataforma —ahora Linux y Windows— permite a actores como FishMonger mantener persistencia en entornos heterogéneos, típicos de grandes organizaciones gubernamentales. La comunidad de defensa debe esperar que estas capacidades sigan expandiéndose, posiblemente hacia entornos macOS o dispositivos móviles, a medida que los grupos de amenaza compiten por mantener acceso privilegiado a redes de alto valor.

Compartir este artículo