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.

graph TB %% Class definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ff9999 classDef misc fill:#dddddd %% Node definitions phish_spear[«<b>Acción</b> – <b>T1566.001 Phishing: Adjunto de spearphishing</b><br/><b>Archivo</b>: Bestellung.CMD»]:::technique cmd_shell[«<b>Técnica</b> – <b>T1059.003 Intérprete de comandos y scripts</b><br/>Windows Command Shell»]:::technique vbscript[«<b>Técnica</b> – <b>T1059.005 Intérprete de comandos y scripts</b><br/>Visual Basic (cscript.exe + .vbs)»]:::technique syncappv_proxy[«<b>Técnica</b> – <b>T1216.002 Ejecución mediante proxy de scripts del sistema</b><br/>SyncAppvPublishingServer»]:::technique powershell_hidden[«<b>Técnica</b> – <b>T1059.001 Intérprete de comandos y scripts</b><br/>PowerShell (oculto, decodificación Base64)<br/><b>Subtécnicas</b>: T1027.009 Cargas embebidas, T1564.003 Ventana oculta»]:::technique ingress_transfer[«<b>Técnica</b> – <b>T1105 Transferencia de herramientas entrantes</b><br/>Descarga de utilidades 7z y ZIP protegido con contraseña<br/><b>Subtécnica</b>: T1027.015 Compresión»]:::technique javascript_masq[«<b>Técnica</b> – <b>T1059.007 Intérprete de comandos y scripts</b><br/>JavaScript (iphdcrtj.js)<br/><b>Suplantación</b>: T1036.008 PNG falso que contiene script AutoIt»]:::technique process_injection[«<b>Técnica</b> – <b>T1055 Inyección de procesos</b><br/>Inyectado en colorcpl.exe»]:::technique reflective_loader[«<b>Técnica</b> – <b>T1620 Carga de código reflectiva</b><br/>DonutLoader shellcode → software de acceso remoto (Remcos RAT)»]:::technique c2_comm[«<b>Técnica</b> – <b>T1071 Protocolo de capa de aplicación</b><br/>Comunicación C2»]:::technique %% Connections showing attack flow phish_spear –>|conduce_a| cmd_shell cmd_shell –>|conduce_a| vbscript vbscript –>|conduce_a| syncappv_proxy syncappv_proxy –>|conduce_a| powershell_hidden powershell_hidden –>|conduce_a| ingress_transfer ingress_transfer –>|conduce_a| javascript_masq javascript_masq –>|conduce_a| process_injection process_injection –>|conduce_a| reflective_loader reflective_loader –>|conduce_a| c2_comm

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