Plongée Profonde dans la Nouvelle Campagne XWorm Utilisant des E-Mails de Phishing Multi-thématiques
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
FortiGuard Labs a observé une campagne de phishing en plusieurs étapes distribuant le trojan d’accès à distance XWorm via des pièces jointes Excel malveillantes. Le document exploite la vulnérabilité CVE-2018-0802 dans Microsoft Equation Editor pour récupérer un fichier HTA, qui déclenche ensuite un chargeur .NET sans fichier utilisant le creux de processus pour injecter XWorm dans un processus Msbuild.exe nouvellement créé. Le RAT communique avec son serveur C2 en utilisant un trafic chiffré AES et expose un large ensemble de commandes avec prise en charge des plugins pour un contrôle étendu. La campagne démontre une utilisation sophistiquée de binaires living-off-the-land et de techniques sans fichier pour établir un contrôle à distance persistant sur les points finaux compromis.
Enquête
Les analystes ont reconstitué le flux allant de l’e-mail de phishing à l’exploitation OLE d’Excel, l’exécution HTA, le téléchargement du module .NET basé sur PowerShell, et le creux de processus final dans Msbuild.exe. L’analyse statique et dynamique a mis en évidence des données de charge utile encodées en Base64 dissimulées dans une image JPEG, avec le composant XWorm final chargé en mémoire sans écrire d’exécutable déchiffré sur le disque pendant l’exécution. Les captures réseau ont montré des paquets chiffrés AES envoyés vers le domaine C2 berlin101.com sur le port 6000. Le rapport a également catalogué l’ensemble étoffé de commandes et l’architecture de plugins de XWorm.
Atténuation
FortiGuard recommande d’activer les protections macro et OLE, d’appliquer le correctif pour CVE-2018-0802, et de restreindre l’exécution des fichiers Msbuild, PowerShell, et HTA provenant du contenu des e-mails. Déployez le filtrage Web, les contrôles anti-phishing et les signatures IDS/IPS liées aux indicateurs observés pour bloquer la livraison et la mise en scène à la passerelle. Surveillez les arbres de processus anormaux—en particulier Msbuild.exe lancé depuis PowerShell—pour détecter l’exploitation tôt.
Réponse
Dès la détection, isolez le point final affecté, terminez les processus malveillants, et évincez le module XWorm chargé de la mémoire. Collectez des artefacts forensiques, y compris la télémétrie de ligne de commande, les journaux réseau, et les modifications de registre pour délimiter l’intrusion. Réinitialisez les identifiants potentiellement compromis, mettez à jour le composant de l’Equation Editor vulnérable, et bloquez les domaines malveillants et le serveur C2. Appliquez des mises à jour de renseignements sur les menaces aux détections EDR/SIEM pour prévenir la récurrence et recherchez une activité connexe dans l’environnement.
Flux d’Attaque
Détections
Chaînes PowerShell Suspectes (via powershell)
Voir
Comportement Suspicious LOLBAS MSHTA Évasion de Défense par Détection de Commandes Associées (via process_creation)
Voir
Chaînes PowerShell Suspectes (via cmdline)
Voir
Appel de Méthodes .NET Suspectes depuis PowerShell (via powershell)
Voir
IOCs (HashSha256) pour détecter : Plongée Approfondie dans la Nouvelle Campagne XWorm Utilisant des E-mails de Phishing à Thèmes Multiples
Voir
Campagne XWorm Exploitant CVE-2018-0802 avec Vecteurs d’Attaque Multiples [Création de Processus Windows]
Voir
Détecter Charge Utile PowerShell Encodée en Base64 dans la Campagne XWorm [Windows Powershell]
Voir
Exécution de Simulation
Condition Préalable: Le Contrôle de Pré-Vol Télémetrie & Baseline doit 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 viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif de l’Attaque & Commandes:
- Chute Initiale: L’attaquant livre un fichier Excel malveillant qui exploite CVE‑2018‑0802. Pour la simulation, nous contournons l’exploit et lançons directement la charge utile.
- Process Hollowing via EQNEDT32.EXE: Lancement
EQNEDT32.EXEavec une ligne de commande invoquantShellExecuteExW()pour se faire passer pour un composant légitime d’Office. - Exécution Latérale Msbuild.exe: Spawn
Msbuild.exeavecCreateProcessA()pour compiler une charge .NET furtive à la volée. - Exécution .NET Sans Fichier: Use
powershell.exeavec une commande encodée en base64 qui charge un assembly .NET réflexif (T1620). La ligne de commande contient la chaîne littéraleCreateProcessA()pour satisfaire la règle.
-
Script de Test de Régression:
<# Simule la chaîne d'exécution XWorm: 1. EQNEDT32.exe avec ShellExecuteExW() 2. Msbuild.exe avec CreateProcessA() 3. PowerShell avec charge .NET réflexive encodée contenant CreateProcessA() #> # 1. EQNEDT32.exe (Hollowing de Processus) $eqnPath = "$env:SystemRootSystem32EQNEDT32.EXE" $eqnArgs = "-Command "ShellExecuteExW()"" Start-Process -FilePath $eqnPath -ArgumentList $eqnArgs -WindowStyle Hidden # 2. Msbuild.exe (Injection DLL Dynamique) $msbuildPath = "$env:ProgramFilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMsbuild.exe" $msbuildArgs = "/t:Compile /p:UseShellExecute="CreateProcessA()"" Start-Process -FilePath $msbuildPath -ArgumentList $msbuildArgs -WindowStyle Hidden # 3. PowerShell (Charge réflexive .NET sans fichier) # Charge utile .NET de l'exemple (espace réservé) encodée en base64 $payload = "W3siQmFzZURhdGEiOiAiIiB9XQ==" # base64 factice $psArgs = "-EncodedCommand $payload -ArgumentList "CreateProcessA()"" Start-Process -FilePath "powershell.exe" -ArgumentList $psArgs -WindowStyle Hidden Write-Host "Simulation XWorm terminée." -
Commandes de Nettoyage:
# Terminer tous les processus de simulation restants Get-Process -Name "EQNEDT32","Msbuild","powershell" -ErrorAction SilentlyContinue | Stop-Process -Force # Supprimer éventuellement les fichiers temporaires (aucun créé dans cette simulation purement de processus) Write-Host "Nettoyage terminé."