
El Laboratorio de Investigación de Amenazas de Aryaka ha analizado un script por lotes de Windows muy ofuscado que distribuye el código shell «Donut» e instala un implante .NET residente en memoria dentro de un proceso legítimo de Windows.
Resumen de la campaña de amenazas
La infección comienza con un script por lotes malicioso que utiliza la sustitución de variables, etiquetas aleatorias, ofuscación del flujo de control e instrucciones de relleno para ocultar su comportamiento. Realiza comprobaciones del entorno para eludir los sistemas de análisis antes de crear un directorio de preparación oculto en C:\ProgramData\IntelDriver. El malware reconstruye las cargas útiles incrustadas y utiliza una copia renombrada de powershell.exe, denominada HDVz.exe, para ejecutar las fases posteriores. La persistencia se establece mediante una tarea programada que inicia el malware de forma silenciosa al iniciar sesión el usuario. El cargador de PowerShell recuperado inyecta principalmente código shell «Donut» en explorer.exe, lo que permite que el implante final de .NET se ejecute en memoria dentro de un proceso de confianza de Windows.
Conclusiones principales
A continuación se detallan las características de la campaña «DonutLoader».
- Comprobaciones para eludir el análisis basadas en nombres de usuario, elementos del sistema de archivos y memoria disponible del sistema: el malware busca indicios de máquinas virtuales, entornos aislados o entornos de análisis mediante la inspección de nombres de usuario, archivos específicos y la memoria del sistema antes de ejecutarse.
- Código shell de Donut y contenido cifrado de PowerShell camuflado como extensiones de archivos de imagen: la carga útil utiliza código shell generado por Donut y scripts cifrados de PowerShell ocultos tras extensiones que simulan ser de archivos de imagen para eludir la detección y ocultar el contenido malicioso.
- Un archivo binario de PowerShell renombrado que se utiliza como vehículo de ejecución encubierto: en lugar de ejecutar el archivo ejecutable estándar de PowerShell, el malware lo renombra para que la ejecución maliciosa resulte menos sospechosa y eluda los controles de seguridad básicos.
- Persistencia mediante una tarea programada a través de un ejecutador de VBS: El malware crea una tarea programada que ejecuta un script de Visual Basic Script (VBS), lo que garantiza que se vuelva a ejecutar automáticamente tras un reinicio del sistema o el inicio de sesión del usuario.
- Inyección de código shell en explorer.exe, con objetivos alternativos: el malware inyecta código shell malicioso en el proceso de confianza explorer.exe para ocultar su actividad, recurriendo a procesos alternativos si el objetivo principal no está disponible.
- Manipulación de AMSI y ETW para reducir la visibilidad de seguridad: El malware desactiva o elude AMSI (Antimalware Scan Interface) y ETW (Event Tracing for Windows) para reducir la probabilidad de ser detectado por las herramientas de seguridad.
- Componentes .NET ofuscados asociados a actividades de comando y control:
El malware utiliza código .NET muy ofuscado para ocultar la funcionalidad que se comunica con los servidores de comando y control (C2). - Notificación de ejecución a través de Telegram y comunicación saliente con infraestructura remota: una vez ejecutado, el malware envía notificaciones de estado a través de Telegram y se comunica con servidores remotos para recibir órdenes o transmitir la información sustraída.
Resultado destacado de la investigación: seguimiento personalizado de las inyecciones
Un hallazgo destacado fue el marcador de memoria personalizado: DE AD BE CA FE BA EF. El malware coloca este marcador inmediatamente antes del código shell inyectado y busca su presencia en los procesos candidatos antes de la inyección. Esto permite al cargador identificar los procesos inyectados anteriormente, evitar la ejecución duplicada del código shell y reducir el riesgo de inestabilidad del proceso. Además, el marcador proporciona a los defensores un valioso indicador basado en la memoria para la detección de amenazas.
Comunicación entre operadores y actividades de mando y control
Durante la ejecución, curl.exe envía una solicitud HTTP POST al punto final /sendMessage de la API del bot de Telegram, utilizando un token de bot y un ID de chat codificados de forma fija. Esta solicitud incluye una notificación al operador que confirma la ejecución correcta del malware e indica que se utiliza un canal de Telegram controlado por el operador para supervisar las infecciones activas. Tras la inyección del proceso, el implante .NET intenta conectarse a 167.88.167.9:8356 a través de TCP saliente, lo que sugiere la existencia de un canal dedicado de comando y control. Dado que la infraestructura remota no estaba disponible durante el análisis, no fue posible evaluar las tareas del operador ni todas las capacidades tras la infección.
Consideraciones defensivas
Se recomienda a las organizaciones que vigilen la presencia de archivos binarios de PowerShell renombrados, directorios ocultos dentro de «ProgramData», tareas programadas sospechosas, la ejecución de scripts desde ubicaciones en las que el usuario tiene permisos de escritura, actividades de inyección de procesos, memoria ejecutable privada y modificaciones en las funciones AMSI o ETW. Las actividades en los terminales también deben correlacionarse con solicitudes anómalas a la API de Telegram Bot y con conexiones salientes procedentes de procesos de confianza, como explorer.exe. La correlación de comportamientos ofrece un enfoque de detección más sólido que basarse únicamente en nombres de archivo, hash, direcciones IP u otros indicadores individuales.
Análisis técnico completo
El informe completo del Laboratorio de Investigación de Amenazas de Aryaka ofrece un análisis técnico detallado de la cadena de infección, que incluye:
- Desofuscación de scripts por lotes y recuperación del flujo de control
- Comportamiento contrario al análisis y a la validación del entorno
- Reconstrucción y descifrado de la carga útil integrada
- Análisis del cargador de PowerShell
- Persistencia de las tareas programadas
- Recuperación del código shell de Donut
- Flujo de trabajo de inyección en proceso
- Análisis de marcadores de inyección
- Manipulación de AMSI y ETW
- Análisis del implante .NET recuperado
- Notificaciones de Telegram y actividad de mando y control
- Indicadores de compromiso
- Correspondencia con el marco MITRE ATT&CK
- Orientaciones sobre defensa y detección proactiva de amenazas
Descargue aquí el informe completo: Informe sobre el cargador multietapa Donutloader