Un atacante de habla francesa irrumpió en una pequeña empresa automotriz francesa, instaló un keylogger y robó credenciales bancarias y de correo electrónico. Todo común, hasta que al final dio un movimiento clave: antes de que su servidor de comando y control (C2) se apagara, instaló OpenSSH y Tailscale en la máquina de la víctima, creando una puerta trasera que no dependía del C2. Cuando el servidor Havoc cayó al día siguiente, su acceso no desapareció. Dieciocho días después, el C2 volvió, los agentes se reconectaron por sí solos y continuó.
Cato Networks capturó toda la operación comando por comando, 339 en 33 días, después de que el operador dejara sus claves SSH y un manual en un bucket de almacenamiento abierto. El informe, publicado el martes por Vitaly Simonovich, investigador de Cato CTRL, ofrece una visión poco común de una intrusión desde el teclado del atacante, no desde los restos forenses. La lección para los investigadores es clara: apagar un servidor C2 no es una solución si el atacante ya ha construido una puerta separada.
El atacante, con el alias "Poisson", no es un APT. Los investigadores lo describen como un operador novato con un horario parecido al escolar, activo después de las 3 p. m. CET, con un descanso largo al mediodía, todo usando herramientas gratuitas: DuckDNS, Backblaze B2 y un VPS barato de IONOS en Berlín. Su técnica era deficiente: filtró su directorio personal cinco veces, nombró sus buckets almacenamiento con su propio alias y dejó un archivo de prueba con sus propias pulsaciones de teclado repetidas dentro del keylogger. Falló en aproximadamente la mitad de sus intentos, pero aun así comprometió cuatro máquinas.
La cadena de ataque
El malware se ejecutó casi completamente en memoria. Un cargador VBScript con un retraso para evadir entornos de prueba descifró un cargador PowerShell, que descargó un cargador .NET que ejecutó el agente Demon de Havoc sin guardar el implante en disco. Para escalar privilegios, usó Start-Process -Verb RunAs, que no es una omisión silenciosa de UAC; muestra la ventana de consentimiento de Windows y espera que alguien haga clic en Sí. En una víctima, le tomó una docena de intentos en dos días.
Luego vino el afianzamiento: una tarea programada que se ejecutaba en cada inicio de sesión con los privilegios más altos, shellcode inyectado en Explorer.exe y un RustDesk personalizado como canal de respaldo. El recolector de credenciales era un keylogger en Python de 70 líneas que escribía las pulsaciones en un archivo local, sin baliza ni servidor de exfiltración. Poisson solo iniciaba sesión, recogía el archivo manualmente y usaba powercfg para evitar que las máquinas durmieran, para que la recolección nunca se detuviera.
El movimiento decisivo
El 7 de abril, en una sesión nocturna de cinco horas, instaló OpenSSH Server y Tailscale, unió la máquina víctima a su red privada de Tailscale y configuró SSH con claves y un túnel inverso. Así podía acceder a la máquina a través de la malla cifrada de Tailscale sin C2 ni puertos expuestos. Al día siguiente, la infraestructura Havoc se cayó. Cato no dice por qué, pero apenas importa: el camino de Tailscale estaba en una red separada, por lo que el acceso sobrevivió.
Cuando el C2 regresó el 26 de abril, los agentes se reconectaron automáticamente, sin necesidad de un nuevo compromiso. En los últimos cinco días, ejecutó 145 comandos más, exploró almacenes de tarjetas inteligentes y certificados (señal de que buscaba accesos basados en certificados), ejecutó dos ejecutables no identificados de un archivo llamado Thales.zip durante unos 32 minutos en total, luego eliminó 17 archivos y se quedó en silencio el 1 de mayo.
Lo que buscaba era limitado. Sin Mimikatz, sin movimiento lateral, sin ransomware y sin señales de que se llevara los documentos que hojeó, desde registros fiscales hasta seguros. Solo lo que la gente escribe: accesos bancarios, contraseñas de correo, portales gubernamentales. Para el dueño de una pequeña empresa, eso es una exposición financiera directa.
Ninguna de las herramientas es nueva, y ese es el punto. El APT31 de China usó Tailscale entre 2024 y 2025 para salir sigilosamente de empresas TI rusas; Scattered Spider ha usado herramientas legítimas de acceso remoto como Ngrok y Fleetdeck; y RustDesk, el canal de respaldo de Poisson, aparece en intrusiones recientes del ransomware Akira. Los binarios están firmados y son legítimos, por lo que la detección basada en archivos maliciosos, no en comportamientos, los pasa por alto. Lo que Poisson añade es la prueba a nivel de comandos de que el truco sobrevive a un derribo, ejecutado por alguien claramente en aprendizaje.
Qué vigilar
La lista de caza de Cato es concreta:
- Alertar cuando se instale OpenSSH Server en una estación de trabajo Windows, lo que rara vez es legítimo.
- Vigilar tailscale.exe en máquinas que no deberían ejecutar una VPN.
- Buscar túneles inversos ssh -R hacia hosts externos.
- Revisar wscript.exe ejecutando archivos .vbs desde carpetas de usuario.
- Marcar tareas programadas con privilegios máximos que ejecuten intérpretes de scripts.
- Vigilar cambios en powercfg que mantengan las máquinas despiertas.
- Bloquear DuckDNS.
Lo más importante: cuando encuentres un C2, asume que no es la única vía de entrada y busca la capa de persistencia silenciosa detrás de él. ¿Qué había en Thales.zip y qué hicieron esos dos programas en sus 32 minutos en la máquina? Es la pregunta que Cato deja abierta. La respuesta que más importa: el C2 nunca fue la intrusión, solo una vía hacia ella. Elimínalo y deja OpenSSH, Tailscale, la tarea programada y el keylogger funcionando, y el atacante aún tendrá una forma de volver. Esa es la parte que la remediación sigue perdiendo.



