Investigadores de ciberseguridad han revelado detalles de una campaña de malware de varias etapas que utiliza secuencias de comandos por lotes como vía para entregar varias cargas útiles de troyanos de acceso remoto (RAT) cifrados que corresponden a XWorm, AsyncRAT y Xeno RAT.
La cadena de ataque sigiloso ha recibido un nombre en clave VACÍO#ESPÍRITU por Securonix Threat Research.
En un nivel alto, el script por lotes ofuscado se utiliza para implementar un segundo script por lotes, preparar un tiempo de ejecución Python incorporado legítimo y descifrar blobs de código shell cifrados, que se ejecutan directamente en la memoria inyectándolos en instancias separadas de «explorer.exe» usando una técnica llamada inyección de llamada a procedimiento asincrónico (APC) Early Bird.
«Las campañas de malware modernas pasan cada vez más de ejecutables independientes a marcos de entrega complejos basados en scripts que imitan fielmente la actividad legítima de los usuarios», dijeron los investigadores Akshay Gaikwad, Shikha Sangwan y Aaron Beardslee en un informe técnico compartido con The Hacker News.
«En lugar de implementar binarios de PE tradicionales, los atacantes aprovechan canales modulares que comprenden secuencias de comandos por lotes para la orquestación, PowerShell para una puesta en escena sigilosa, tiempos de ejecución incorporados legítimos para la portabilidad y código shell sin procesar ejecutado directamente en la memoria para persistencia y control».
Este mecanismo de ejecución sin archivos minimiza las oportunidades de detección basadas en disco, lo que permite a los actores de amenazas operar dentro de sistemas comprometidos sin activar alertas de seguridad. Es más, este enfoque ofrece una ventaja adicional en el sentido de que estas etapas individuales parecen inofensivas de forma aislada y se asemejan a una actividad administrativa normal.
El punto de partida del ataque es un script por lotes que se obtiene de un dominio de TryCloudflare y se distribuye a través de correos electrónicos de phishing. Una vez lanzado, evita deliberadamente tomar medidas para escalar privilegios y aprovecha los derechos de permiso del usuario actualmente conectado para establecer un punto de apoyo inicial, mientras se mezcla con operaciones administrativas aparentemente inocuas.
La etapa inicial sirve como plataforma de lanzamiento para mostrar un PDF señuelo al iniciar Google Chrome en pantalla completa. El documento financiero o la factura mostrados sirven como distracción visual para ocultar lo que sucede detrás de escena. Esto incluye iniciar un comando de PowerShell para volver a ejecutar el script por lotes original, como usar el parámetro -WindowStyle Hidden, para evitar mostrar una ventana de consola.

Para garantizar la persistencia entre reinicios del sistema, se coloca un script por lotes auxiliar en el directorio de inicio del usuario de Windows para que se ejecute automáticamente cada vez que la víctima inicia sesión en el sistema. La ausencia de métodos de persistencia más intrusivos es intencionada, ya que reduce la huella forense.
«Técnicamente, este método de persistencia opera completamente dentro del contexto de privilegios del usuario actual. No modifica las claves de registro de todo el sistema, no crea tareas programadas ni instala servicios», dijeron los investigadores. «En cambio, se basa en un comportamiento de inicio estándar a nivel de usuario, que no requiere elevación y genera una fricción de seguridad mínima. Esta elección de diseño reduce la probabilidad de activar mensajes de escalada de privilegios o alertas de monitoreo de registro».
La siguiente fase comienza cuando el malware llega a un dominio de TryCloudflare para recuperar cargas útiles adicionales en forma de archivos ZIP que contienen varios archivos.
- runn.pyun script de carga basado en Python responsable de descifrar e inyectar módulos de carga útil de shellcode cifrados en la memoria
- nuevo.binuna carga útil de shellcode cifrada correspondiente a XWorm
- xn.binuna carga útil de shellcode cifrada correspondiente a Xeno RAT
- pul. papelerauna carga útil de shellcode cifrada correspondiente a AsyncRAT
- a.json, n.json, y p.jsonarchivos de claves que contienen las claves de descifrado requeridas por el cargador de Python para descifrar dinámicamente el código shell en tiempo de ejecución
Una vez que se extraen los archivos, la secuencia de ataque implementa un tiempo de ejecución de Python incorporado legítimo directamente desde python(.)org. Este paso ofrece varias ventajas. Para empezar, elimina cualquier dependencia del sistema. Como resultado, el malware puede seguir funcionando incluso si el punto final infectado tiene Python instalado.
«Desde la perspectiva del atacante, los objetivos de esta etapa son la portabilidad, la confiabilidad y el sigilo», dijo Securonix. «Al incorporar un intérprete legítimo en el directorio de preparación, el malware se transforma en un entorno de ejecución totalmente autónomo capaz de descifrar e inyectar módulos de carga útil sin depender de componentes externos del sistema».
El objetivo principal del ataque es aprovechar el tiempo de ejecución de Python para iniciar «runn.py», que luego descifra y ejecuta la carga útil de XWorm mediante la inyección Early Bird APC. El malware también utiliza un binario legítimo de Microsoft, «AppInstallerPythonRedirector.exe», para invocar Python e iniciar Xeno RAT. En la última etapa, el cargador de Python utiliza el mismo mecanismo de inyección para iniciar AsyncRAT.
La cadena de infección culmina cuando el malware transmite una baliza HTTP mínima a la infraestructura C2 controlada por el atacante alojada en TryCloudflare para confirmar la irrupción digital. Actualmente no se sabe quiénes fueron los objetivos del ataque y si hubo algún compromiso exitoso.
«Este patrón de inyección repetida refuerza la arquitectura modular del marco. En lugar de entregar una única carga útil monolítica, el atacante implementa componentes de forma incremental, mejorando la flexibilidad y la resistencia», dijo Securonix. «Desde el punto de vista de la detección, la inyección repetida de procesos en explorer.exe en periodos cortos de tiempo es un fuerte indicador de comportamiento que se correlaciona entre las etapas del ataque».