SOC Prime Bias: Medio

02 Jun 2026 15:23 UTC

DonutLoader Recargado en una Campaña Moderna de RAT Remcos

Author Photo
SOC Prime Team linkedin icon Seguir
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

G DATA ha identificado una nueva campaña Remcos RAT que comienza con un archivo por lotes malicioso y se mueve a través de varias capas de scripting, incluyendo PowerShell, VBScript, y AutoIt, para recuperar e iniciar una carga de shellcode DonutLoader. El cargador finalmente inyecta el Remcos RAT final en el binario legítimo de Windows colorcpl.exe. A lo largo de la cadena, los atacantes confían en herramientas de confianza como 7-Zip, almacenamiento pCloud y múltiples LOLBins para hacer que la actividad parezca rutinaria. El uso de shellcode generado por Donut para la inyección de procesos marca una notable evolución en la entrega moderna de Remcos.

Investigación

Los investigadores siguieron el camino completo de infección desde un adjunto de phishing llamado Bestellung.CMD, que lanzó cscript.exe para ejecutar un proxy VBScript que decodificó un comando PowerShell codificado en Base64. Esa etapa de PowerShell descargó utilidades 7-Zip y un archivo protegido por contraseña desde pCloud, luego desempacó un archivo JScript que dejó caer un intérprete AutoIt y un falso PNG que contenía contenido de carga adicional. El componente AutoIt descifró datos ofuscados con XOR, reconstruyó el shellcode DonutLoader, y lo inyectó en colorcpl.exe, donde se ejecutó Remcos RAT versión 7.2.1 Pro.

Mitigación

Los defensores deben vigilar el uso sospechoso de cscript.exe, SyncAppvPublishingServer.vbs, y de comandos PowerShell IEX que contengan contenido codificado en Base64, especialmente cuando esos procesos se originan en archivos por lotes. La detección también debe cubrir apariciones inesperadas de 7z.exe and 7z.dll en directorios de usuarios, junto con binarios AutoIt no autorizados. Las protecciones basadas en comportamiento deben ajustarse para identificar la inyección de procesos en colorcpl.exe y actividad consistente con shellcode generado por Donut.

Respuesta

Si se detecta esta actividad, aísle el sistema afectado de inmediato, termine los procesos sospechosos y capture memoria para el análisis de shellcode. Los investigadores deben revisar los archivos dejados y cualquier artefacto eliminado para reconstruir la cadena completa de ejecución, mientras bloquean la comunicación con la infraestructura de comando y control identificada. La remediación debe incluir la eliminación del Remcos RAT y limpieza de cualquier utilidad legítima abusada involucrada en el ataque.

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Revisión de Telemetría y Línea de Base debe haber pasado.

Razonamiento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa y Comandos del Ataque:
    El adversario ha obtenido una carga maliciosa de PowerShell (por ejemplo, un descargador) que ha sido codificada en Base64 para evitar la detección estática. Para mantenerse bajo el radar, el atacante elige un módulo firmado e incorporado—AppvClient—que es comúnmente presente en sistemas Windows. Importan el módulo, luego usan Invoke-Expression (IEX) para decodificar y ejecutar la carga completamente en memoria, sin dejar artefactos de archivo. Esta línea de comando exacta (Import-Module AppvClient; IEX <Base64String>) coincide con la condición de la regla Sigma.

  • Script de Prueba de Regresión:

    <#
    Script de simulación para activar la regla de detección "PowerShell IEX with AppvClient".
    #>
    
    # 1. Importe el módulo legítimo (ejecución de proxy binario firmado)
    Import-Module AppvClient -ErrorAction Stop
    
    # 2. Prepare una carga sencilla y benigna de PowerShell y codifíquela en Base64
    $payload = "Write-Host 'Compromise simulated – payload executed.'"
    $bytes   = [System.Text.Encoding]::Unicode.GetBytes($payload)
    $b64     = [System.Convert]::ToBase64String($bytes)
    
    # 3. Ejecute la carga en memoria usando IEX (el gatillo de detección)
    IEX ([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($b64)))
    
    # 4. Opcional: mantenga la sesión viva brevemente para asegurarse de que los registros se descarguen
    Start-Sleep -Seconds 5
  • Comandos de Limpieza:

    # Elimine el módulo importado para reducir la huella
    if (Get-Module -Name AppvClient) {
        Remove-Module -Name AppvClient -Force
    }
    
    # Limpie el historial de PowerShell para la sesión actual
    Clear-History