SOC Prime Bias: Élevé

17 Jun 2026 12:58 UTC

Comment un fichier VHDX livre Remcos RAT

Author Photo
SOC Prime Team linkedin icon Suivre
Comment un fichier VHDX livre Remcos RAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Une campagne de malware en plusieurs étapes utilise une archive ZIP armée contenant une image disque VHDX pour échapper aux contrôles de sécurité courants. Après le montage du VHDX, un fichier JavaScript obfusqué s’exécute et lance une série d’étapes PowerShell via WMI. La charge finale est Remcos RAT, qui est injecté dans un processus Windows légitime pour dissimuler son exécution.

Enquête

Le chercheur a examiné une archive ZIP malveillante et le conteneur VHDX intégré pour reconstituer le flux d’attaque complet. L’analyse a révélé une chaîne d’exécution complexe utilisant la création de processus basée sur WMI pour déguiser les relations parent-enfant, ainsi que l’obfuscation de chaînes XOR et Base64 et un chargeur .NET réflexif. Le chemin d’infection a été retracé avec succès depuis l’exécution initiale de JavaScript jusqu’au déploiement de la charge finale Remcos.

Atténuation

Les organisations devraient appliquer des contrôles stricts pour empêcher le montage d’images disque VHDX à partir de sources non fiables. Les outils de sécurité devraient également surveiller les Win32_Process.Create activités suspectes déclenchées par des moteurs de script comme JavaScript ou PowerShell. Bloquer les domaines malveillants connus et surveiller les persistances inhabituelles de clés Run dans le registre peuvent encore réduire les risques.

Réponse

Si cette activité est détectée, isolez immédiatement le point d’extrémité affecté pour stopper la communication de commande et de contrôle. Acquérez un vidage de mémoire pour capturer la charge injectée Remcos et le chargeur .NET réflexif. Un examen médico-légal complet devrait ensuite chercher des entrées de clé Run malveillantes, des fichiers VHDX supplémentaires et des activités PowerShell suspectes ailleurs dans l’environnement.

Flux d’attaque

## Exécution de simulation

Prérequis : Le contrôle pré-vol de télémétrie et de ligne de base doit avoir passé.

Rationale : Cette section détaille l’exécution précise de la technique d’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT directement refléter les TTP identifiés et viser à générer exactement la télémétrie attendue par la logique de détection. Les exemples abstraits ou non liés conduiront à un mauvais diagnostic.

  • Récit d’attaque et commandes : L’adversaire vise à exécuter une charge utile malveillante en mémoire pour éviter la détection par l’AV traditionnel. Ils utilisent un script PowerShell qui exploite [System.Reflection.Assembly]::Load() pour extraire une DLL .NET compilée directement à partir d’un tableau d’octets dans le processus actuel. Pour maintenir la persistance et échapper à un examen minutieux, ils tentent de générer ou d’interagir avec backgroundTaskHost.exe, un processus Windows légitime, pour masquer leur fil d’exécution dans une tâche de fond système standard.

  • Script de test de régression :

    # Script de simulation : Charge reflexive .NET & Interaction de processus
    # Ce script imite la logique capturée par la règle de détection.
    
    # 1. Crée un tableau d'octets fictif représentant un assemblage .NET (très simplifié pour la simulation)
    $assemblyBytes = [byte[]](0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00) # mime l'en-tête MZ
    
    Write-Host "[+] Tentative de chargement d'assemblage réflexif .NET..." -ForegroundColor Cyan
    try {
        # Cette chaîne spécifique est une cible pour la règle de détection
        $assembly = [System.Reflection.Assembly]::Load($assemblyBytes)
        Write-Host "[!] Succès : Assemblage chargé en mémoire (Simulation uniquement)." -ForegroundColor Green
    } catch {
        Write-Host "[-] Échec du chargement de l'assemblage (attendu en raison d'octets de test invalides), mais la commande a été envoyée." -ForegroundColor Yellow
    }
    
    Write-Host "[+] Tentative d'invocation de backgroundTaskHost.exe pour déclencher la détection..." -ForegroundColor Cyan
    # Cette chaîne spécifique est une cible pour la règle de détection
    Start-Process "C:WindowsSystem32backgroundTaskHost.exe" -ArgumentList "/test-detection"
  • Commandes de nettoyage :

    # Nettoyage : Terminer le processus backgroundTaskHost généré
    Stop-Process -Name "backgroundTaskHost" -ErrorAction SilentlyContinue
    Write-Host "[+] Nettoyage terminé. BackgroundTaskHost terminé." -ForegroundColor Green