SOC Prime Bias: Moyen

02 Jun 2026 15:23 UTC

DonutLoader Réinventé dans une Campagne Modernisée de Remcos RAT

Author Photo
SOC Prime Team linkedin icon Suivre
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

G DATA a identifié une nouvelle campagne Remcos RAT qui commence par un fichier batch malveillant et passe par plusieurs couches de script, y compris PowerShell, VBScript et AutoIt, pour récupérer et lancer une charge utile shellcode DonutLoader. Le chargeur injecte finalement le Remcos RAT final dans le binaire Windows légitime colorcpl.exe. Tout au long de la chaîne, les attaquants s’appuient sur des outils de confiance tels que 7-Zip, le stockage pCloud, et plusieurs LOLBins pour rendre l’activité apparente comme routinière. L’utilisation de shellcode généré par Donut pour l’injection de processus marque une évolution notable dans la livraison moderne de Remcos.

Enquête

Les chercheurs ont suivi le chemin d’infection complet à partir d’une pièce jointe de phishing nommée Bestellung.CMD, qui a lancé cscript.exe pour exécuter un proxy VBScript qui a décodé une commande PowerShell encodée en Base64. Cette étape PowerShell a téléchargé des utilitaires 7-Zip et une archive protégée par mot de passe depuis pCloud, puis a décompressé un fichier JScript qui a déposé un interprète AutoIt et un faux PNG contenant un contenu de charge utile supplémentaire. Le composant AutoIt a déchiffré des données obfusquées par XOR, reconstruit le shellcode DonutLoader, et l’a injecté dans colorcpl.exe, où la version 7.2.1 Pro du Remcos RAT a été exécutée.

Atténuation

Les défenseurs devraient surveiller l’utilisation suspecte de cscript.exe, SyncAppvPublishingServer.vbs, et PowerShell IEX commandes contenant du contenu encodé en Base64, surtout lorsque ces processus proviennent de fichiers batch. La détection devrait également couvrir les apparitions inattendues de 7z.exe and 7z.dll dans les répertoires utilisateur, ainsi que les binaires AutoIt non autorisés. Les protections basées sur le comportement devraient être réglées pour identifier l’injection de processus dans colorcpl.exe et l’activité cohérente avec le shellcode généré par Donut.

Réponse

Si cette activité est détectée, isolez immédiatement le système affecté, terminez les processus suspects, et capturez la mémoire pour analyse du shellcode. Les enquêteurs devraient examiner les fichiers déposés et tout artefact supprimé pour reconstruire la chaîne d’exécution complète, tout en bloquant la communication avec l’infrastructure de commande et de contrôle identifiée. La remédiation devrait inclure la suppression du Remcos RAT et le nettoyage de toute utilité légitime abusée impliquée dans l’attaque.

graph TB %% Définitions des classes classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ff9999 classDef misc fill:#dddddd %% Nœuds phish_spear[« <b>Action</b> – <b>T1566.001 Hameçonnage : pièce jointe de spearphishing</b><br/><b>Fichier</b> : Bestellung.CMD »]:::technique cmd_shell[« <b>Technique</b> – <b>T1059.003 Interpréteur de commandes et scripts</b><br/>Windows Command Shell »]:::technique vbscript[« <b>Technique</b> – <b>T1059.005 Interpréteur de commandes et scripts</b><br/>Visual Basic (cscript.exe + .vbs) »]:::technique syncappv_proxy[« <b>Technique</b> – <b>T1216.002 Exécution via proxy de script système</b><br/>SyncAppvPublishingServer »]:::technique powershell_hidden[« <b>Technique</b> – <b>T1059.001 Interpréteur de commandes et scripts</b><br/>PowerShell (caché, décodage Base64)<br/><b>Sous-techniques</b> : T1027.009 charge utile intégrée, T1564.003 fenêtre cachée »]:::technique ingress_transfer[« <b>Technique</b> – <b>T1105 Transfert d’outils entrant</b><br/>Téléchargement d’utilitaires 7z et ZIP protégé par mot de passe<br/><b>Sous-technique</b> : T1027.015 compression »]:::technique javascript_masq[« <b>Technique</b> – <b>T1059.007 Interpréteur de commandes et scripts</b><br/>JavaScript (iphdcrtj.js)<br/><b>Dissimulation</b> : T1036.008 faux PNG contenant un script AutoIt »]:::technique process_injection[« <b>Technique</b> – <b>T1055 Injection de processus</b><br/>Injecté dans colorcpl.exe »]:::technique reflective_loader[« <b>Technique</b> – <b>T1620 Chargement de code réflexif</b><br/>DonutLoader shellcode → logiciel d’accès distant (Remcos RAT) »]:::technique c2_comm[« <b>Technique</b> – <b>T1071 Protocole de couche application</b><br/>Communication C2 »]:::technique %% Connexions phish_spear –>|mène_à| cmd_shell cmd_shell –>|mène_à| vbscript vbscript –>|mène_à| syncappv_proxy syncappv_proxy –>|mène_à| powershell_hidden powershell_hidden –>|mène_à| ingress_transfer ingress_transfer –>|mène_à| javascript_masq javascript_masq –>|mène_à| process_injection process_injection –>|mène_à| reflective_loader reflective_loader –>|mène_à| c2_comm

Flux d’Attaque

Exécution de Simulation

Prérequis : la vérification préalable de la télémétrie et de la base doit avoir réussi.

Justification : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et visent à générer la télémétrie exacte attendue par la logique de détection.

  • Narrative et Commandes d’Attaque :
    L’adversaire a obtenu une charge utile PowerShell malveillante (par exemple, un téléchargeur) qui a été encodée en Base64 pour échapper à la détection statique. Pour rester sous le radar, l’attaquant choisit un module signé et intégré —AppvClient— qui est couramment présent sur les systèmes Windows. Ils importent le module, puis utilisent Invoke‑Expression (IEX) pour décoder et exécuter la charge utile entièrement en mémoire, ne laissant aucun artefact de fichier. Cette ligne de commande exacte (Import-Module AppvClient; IEX <Base64String>) correspond à la condition de la règle Sigma.

  • Script de Test de Régression :

    <#
    Script de simulation pour déclencher la règle de détection "PowerShell IEX avec AppvClient".
    #>
    
    # 1. Importez le module légitime (exécution proxy binaire signé)
    Import-Module AppvClient -ErrorAction Stop
    
    # 2. Préparez une simple charge utile PowerShell bénigne et codez-la en Base64
    $payload = "Write-Host 'Compromise simulé – charge utile exécutée.'"
    $bytes   = [System.Text.Encoding]::Unicode.GetBytes($payload)
    $b64     = [System.Convert]::ToBase64String($bytes)
    
    # 3. Exécutez la charge utile en mémoire en utilisant IEX (le déclencheur de détection)
    IEX ([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($b64)))
    
    # 4. Optionnel : gardez la session active brièvement pour s'assurer que les journaux sont vidés
    Start-Sleep -Seconds 5
  • Commandes de Nettoyage :

    # Supprimer le module importé pour réduire l'empreinte
    if (Get-Module -Name AppvClient) {
        Remove-Module -Name AppvClient -Force
    }
    
    # Effacer l'historique PowerShell pour la session en cours
    Clear-History