SOC Prime Bias: Critique

27 Mar 2026 16:57

La campagne Pawn Storm déploie PRISMEX, cible les entités gouvernementales et les infrastructures critiques

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
La campagne Pawn Storm déploie PRISMEX, cible les entités gouvernementales et les infrastructures critiques
shield icon

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

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 :

    1. L’adversaire a obtenu une DLL malveillante (evil.dll) placée dans un répertoire accessible en écriture (par exemple, C:Tempevil.dll).
    2. Pour assurer la persistance, ils sélectionnent le CLSID {68DDBB56-9D1D-4FD9-89C5-C0DA2A625392} (l’un des GUID suivis par la règle).
    3. En utilisant reg.exe (ou PowerShell) intégré, ils définissent la valeur par défaut de la sous-clé InProcServer32 au chemin de la DLL malveillante, détournant ainsi toute activation COM de ce CLSID.
    4. Le changement de registre génère une entrée EventID 13 avec le TargetObject qui correspond à la règle de détection.
  • 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é."