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.

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