La campagne Pawn Storm déploie PRISMEX, cible les entités gouvernementales et les infrastructures critiques
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Si l’activité PRISMEX est détectée, isolez immédiatement les systèmes affectés, capturez la mémoire volatile pour extraire les assemblages .NET en mémoire et chassez les charges utiles PNG stéganographiques distinctives et les entrées de registre de détournement COM. Bloquez tout Filen.io sous-domaines et le wellnesscaremed.com domaine, et appliquez une détection et un blocage basés sur les indicateurs de compromission pour les noms de fichiers identifiés et les tâches planifiées.
Réponse
Les organisations devraient corriger les failles CVE-2026-21509 et CVE-2026-21513 sans délai, restreindre l’accès aux services de stockage cloud non approuvés et désactiver l’objet COM Shell.Explorer.1 via le registre. Les défenseurs devraient appliquer des restrictions de macro, surveiller l’enregistrement COM sous HKCU\Software\Classes\CLSID, et examiner les tâches planifiées suspectes telles que OneDriveHealth. La journalisation ETW devrait également être activée pour détecter les chargements de CLR inattendus à l’intérieur de explorer.exe.
Atténuation
Les chercheurs de TrendAI ont identifié les composants de l’ensemble d’outils PRISMEX — PrismexSheet, PrismexDrop, PrismexLoader et PrismexStager — et les ont connectés à une activité antérieure de Pawn Storm. Ils ont trouvé des preuves selon lesquelles les attaquants avaient préparé l’infrastructure des semaines avant que les vulnérabilités ne soient divulguées publiquement et documenté l’utilisation d’un domaine de commande et de contrôle partagé, wellnesscaremed.com. La recherche a également cartographié les techniques MITRE ATT&CK utilisées tout au long de la chaîne d’intrusion.
Enquête
Pawn Storm (APT28) a lancé une campagne centrée sur un nouvel ensemble d’outils malveillants appelé PRISMEX, ciblant la chaîne d’approvisionnement de la défense ukrainienne ainsi que les organisations gouvernementales et logistiques alliées. L’opération exploite deux failles zero-day récemment divulgées, CVE-2026-21509 et CVE-2026-21513, tout en abusant des plateformes cloud légitimes pour la commande et le contrôle. L’ensemble d’outils comprend des chargeurs stéganographiques, le détournement de COM pour la persistance, et un stager Covenant Grunt hébergé sur Filen.io. La détection reste difficile en raison de l’exécution sans fichier et du trafic réseau crypté.
"graph TB %% Class definitions classDef action fill:#99ccff classDef exploit fill:#ffcc99 classDef file fill:#ffeb99 classDef malware fill:#ff9999 classDef tool fill:#cccccc classDef c2 fill:#ccffcc %% Nodes step1_phishing["<b>Action</b> – <b>T1566.001 Phishing: Piège par pièce jointe</b><br/>Les adversaires envoient des documents RTF ciblés avec des objets OLE malveillants aux victimes."] class step1_phishing action artifact_rtf["<b>Fichier</b> – <b>Nom</b>: Document RTF malveillant<br/>Contient un objet OLE conçu"] class artifact_rtf file step2_vba["<b>Action</b> – <b>T1059.005 Instructeur de Commande et Scriptage: Visual Basic</b><br/>Macro VBA intégrée s’exécutant automatiquement à l’ouverture du document."] class step2_vba action step3_exploit["<b>Exploitation</b> – CVEu20112026u201121509 contournement OLE<br/>La macro contacte le serveur WebDAV malveillant et télécharge .lnk"] class step3_exploit exploit artifact_lnk["<b>Fichier</b> – <b>Nom</b>: Raccourci .lnk malveillant"] class artifact_lnk file step4_html["<b>Action</b> – <b>T1218.001 Exécution par Proxy de Système Binaire: Fichier HTML Compilé</b><br/>.lnk déclenche CVEu20112026u201121513 dans MSHTML, exécutant la charge utile HTML intégrée."] class step4_html action artifact_html["<b>Fichier</b> – <b>Nom</b>: Charge utile HTML intégrée"] class artifact_html file step5_com_hijack["<b>Action</b> – <b>T1546.009 Exécution Déclenchée par Événement: DLL AppCerts</b><br/>La charge utile enregistre une DLL malveillante en tant qu’InProcServer32 pour un CLSID pour la persistance."] class step5_com_hijack action malicious_dll["<b>Logiciel Malveillant</b> – <b>Nom</b>: DLL PrismexLoader<br/>Se fait passer pour une DLL Windows légitime"] class malicious_dll malware step6_dll_hijack["<b>Action</b> – <b>T1574.001 Détournement du Flux d’Exécution: DLL</b><br/>La DLL Proxy redirige les appels légitimes tout en exécutant du code malveillant."] class step6_dll_hijack action step7_stego["<b>Action</b> – <b>T1027.003 Fichiers ou Informations Obfusquées: Stéganographie</b><br/>La DLL Proxy extrait la charge utile .NET cachée dans un PNG en utilisant Bit Plane Round Robin."] class step7_stego action stego_png["<b>Fichier</b> – <b>Nom</b>: Image PNG avec charge utile cachée"] class stego_png file dotnet_payload["<b>Logiciel Malveillant</b> – <b>Nom</b>: Stager .NET Covenant Grunt"] class dotnet_payload malware step8_c2["<b>Action</b> – <b>T1102 Service Web</b><br/>Le Stager communique avec les sous-domaines de stockage cloud Filen.io pour le C2."] class step8_c2 action c2_filen["<b>C2</b> – Stockage cloud Filen.io"] class c2_filen c2 step9_exfil["<b>Action</b> – <b>T1567.002 Exfiltration via Service Web: Exfiltration vers Stockage dans le Cloud</b><br/>Les données collectées sont chiffrées et téléchargées sur Filen.io."] class step9_exfil action step10_email["<b>Action</b> – <b>T1114.001 Collecte de Courriers: Collecte Locale de Courriels</b><br/>Le logiciel malveillant collecte les fichiers de boîte aux lettres Outlook pour la reconnaissance."] class step10_email action outlook_data["<b>Fichier</b> – <b>Nom</b>: Fichiers de boîte aux lettres Outlook (OST/PST)"] class outlook_data file %% Connections step1_phishing –>|livre| artifact_rtf artifact_rtf –>|déclenche| step2_vba step2_vba –>|exécute| step3_exploit step3_exploit –>|télécharge| artifact_lnk artifact_lnk –>|déclenche| step4_html step4_html –>|exécute| artifact_html artifact_html –>|charge| step5_com_hijack step5_com_hijack –>|enregistre| malicious_dll malicious_dll –>|charge| step6_dll_hijack step6_dll_hijack –>|extrait| step7_stego step7_stego –>|lit| stego_png stego_png –>|contient| dotnet_payload dotnet_payload –>|communique avec| step8_c2 step8_c2 –>|utilise| c2_filen dotnet_payload –>|exfiltre des données via| step9_exfil step9_exfil –>|stocke dans| c2_filen step10_email –>|collecte| outlook_data dotnet_payload –>|collecte des courriels de| outlook_data %% Class assignments class step1_phishing,step2_vba,step3_exploit,step4_html,step5_com_hijack,step6_dll_hijack,step7_stego,step8_c2,step9_exfil,step10_email action class artifact_rtf,artifact_lnk,artifact_html,stego_png,outlook_data file class malicious_dll,dotnet_payload malware class step3_exploit step4_html step5_com_hijack step6_dll_hijack step7_stego exploit class c2_filen c2 "
Flux d’attaque
Détections
Binaire / Scripts suspects dans l’emplacement d’autostart (via file_event)
Voir
Infiltration / Exfiltration de données potentielle / C2 via des Services / Outils de Tiers (via DNS)
Voir
Infiltration / Exfiltration de données potentielle / C2 via des Services / Outils de Tiers (via proxy)
Voir
Possible détournement COM d’Explorer (via registry_event)
Voir
Persistance basée sur Outlook possible (via file_event)
Voir
Possible détournement COM d’Explorer (via file_event)
Voir
IOCs (HashSha256) à détecter: La campagne de Pawn Storm déploie PRISMEX, cible les entités gouvernementales et les infrastructures critiques
Voir
Détecter une initialisation CLR inhabituelle dans le processus Explorer [Création de processus Windows]
Voir
Persistance de détournement COM PrismexSheet [Événement de Registre Windows]
Voir
Exécution de simulation
Prérequis : Le contrôle pré-vol de Télémétrie & de Baseline doit avoir été réussi.
Justification : 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 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. Des exemples abstraits ou non liés entraîneront une erreur de diagnostic.
-
Narratif et Commandes d’attaque :
- L’adversaire a obtenu une DLL malveillante (
evil.dll) placée dans un répertoire accessible en écriture (par exemple,C:Tempevil.dll). - Pour assurer la persistance, ils sélectionnent le CLSID
{68DDBB56-9D1D-4FD9-89C5-C0DA2A625392}(l’un des GUID suivis par la règle). - En utilisant
reg.exe(ou PowerShell) intégré, ils définissent la valeur par défaut de la sous-cléInProcServer32au chemin de la DLL malveillante, détournant ainsi toute activation COM de ce CLSID. - Le changement de registre génère une entrée EventID 13 avec le
TargetObjectqui correspond à la règle de détection.
- L’adversaire a obtenu une DLL malveillante (
-
Script de test de régression :
# ------------------------------------------------- # Simulation de persistance de détournement COM PrismexSheet # ------------------------------------------------- $guid = '{68DDBB56-9D1D-4FD9-89C5-C0DA2A625392}' $dllPath = "C:Tempevil.dll" # Assurez-vous que la DLL malveillante existe (espace réservé pour le test) if (-not (Test-Path $dllPath)) { New-Item -Path $dllPath -ItemType File -Force | Out-Null Set-Content -Path $dllPath -Value "Espace réservé pour la charge utile malveillante" } $regPath = "HKCU:SoftwareClassesCLSID$guidInProcServer32" # Créez la clé si elle n'existe pas New-Item -Path $regPath -Force | Out-Null # Définissez la valeur par défaut pour pointer vers la DLL malveillante Set-ItemProperty -Path $regPath -Name '(Default)' -Value $dllPath Write-Host "Détournement COM persistant à $regPath -> $dllPath" -
Commandes de nettoyage :
# Supprimer l'enregistrement COM malveillant $guid = '{68DDBB56-9D1D-4FD9-89C5-C0DA2A625392}' $regPath = "HKCU:SoftwareClassesCLSID$guid" Remove-Item -Path $regPath -Recurse -Force # Supprimer la DLL fictive Remove-Item -Path "C:Tempevil.dll" -Force -ErrorAction SilentlyContinue Write-Host "Nettoyage terminé."