UAC-0001 (APT28) Attaques Utilisant CVE-2026-21509
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
APT28 (suivi sous UAC-0001) exploite la faille récemment divulguée dans Microsoft Office CVE-2026-21509 pour livrer des charges malveillantes contre des cibles gouvernementales ukrainiennes et des organisations à travers l’UE. L’intrusion commence avec un DOC armé qui force une demande WebDAV pour récupérer des composants supplémentaires, puis met en place un détournement COM pour exécuter un chargeur basé sur une DLL qui lance le framework Covenant. L’activité utilise également des Filen stockages en cloud légitimes comme partie de son infrastructure réseau. La campagne a été observée fin janvier 2026.
Investigation
L’analyse des fichiers DOC malveillants a montré que les ouvrir dans Office initie une connexion WebDAV qui télécharge une DLL nommée EhStoreShell.dll ainsi qu’une image de shellcode PNG. La DLL est rendue persistante via un détournement d’enregistrement COM CLSID, et une tâche planifiée nommée OneDriveHealth est utilisée pour déclencher explorer.exe, qui charge l’objet COM détourné. Le chargeur démarre ensuite Covenant, avec un contrôle opérateur routé à travers des points de terminaison supportés par Filen.
Atténuation
Appliquez la mise à jour Office de Microsoft traitant CVE-2026-21509 sans délai. Désactivez ou restreignez sévèrement l’utilisation de WebDAV dans Office lorsque c’est possible. Retirez l’enregistrement de registre CLSID malveillant et supprimez la tâche planifiée OneDriveHealth. Bloquez l’accès sortant aux domaines Filen et aux IPs connexes, et surveillez les points de terminaison pour la création des artefacts DLL et PNG notés.
Réponse
Alertez sur la création de EhStoreShell.dll, SplashScreen.png, et les modifications sous le chemin de registre CLSID détourné. Détectez et enquêtez sur la création de tâches planifiées correspondant à OneDriveHealth. Corrélez l’activité des processus Office avec des connexions sortantes vers des domaines Filen, mettez en quarantaine les documents concernés, et effectuez des investigations complètes sur les systèmes impactés.
Flux d’attaque
Détections
Exécution suspecte de Taskkill (via cmdline)
Voir
Schtasks Pointe vers un Répertoire / Binaire / Script Suspect (via cmdline)
Voir
Détournement possible de COM Explorer (via événement de registre)
Voir
Abus possible du Protocole de Recherche / URI Search-MS (via cmdline)
Voir
Comportement Potentiellement Suspect de Création, Exécution, Suppression de Tâche Planifiée (via création de processus)
Voir
Infiltration / Exfiltration de Données Possible / C2 via Services / Outils Tiers (via proxy)
Voir
Infiltration / Exfiltration de Données Possible / C2 via Services / Outils Tiers (via dns)
Voir
LOLBAS Regsvr32 (via cmdline)
Voir
IOCs (DestinationIP) pour détecter : CERT-UA Bulletin : Attaques UAC-0001 (APT28) Utilisant CVE-2026-21509
Voir
IOCs (HashSha256) pour détecter : CERT-UA Bulletin : Attaques UAC-0001 (APT28) Utilisant CVE-2026-21509
Voir
IOCs (HashSha1) pour détecter : CERT-UA Bulletin : Attaques UAC-0001 (APT28) Utilisant CVE-2026-21509
Voir
IOCs (HashMd5) pour détecter : CERT-UA Bulletin : Attaques UAC-0001 (APT28) Utilisant CVE-2026-21509
Voir
IOCs (Emails) pour détecter : CERT-UA Bulletin : Attaques UAC-0001 (APT28) Utilisant CVE-2026-21509
Voir
IOCs (SourceIP) pour détecter : CERT-UA Bulletin : Attaques UAC-0001 (APT28) Utilisant CVE-2026-21509
Voir
Détection de Détournement COM via Modification de Registre [Événement Registre Windows]
Voir
Connexions Réseau Malveillantes Liées aux Cyberattaques APT28 [Connexion Réseau Windows]
Voir
Créations de Fichiers Suspectes Se Faisant Passer pour une Extension de Shell de Stockage Amélioré [Événement de Fichier Windows]
Voir
Exécution de Simulation
Conditions préalables : Le contrôle préliminaire de la Télémetrie & Baseline doit avoir été réussi.
Rationnel : 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émetrie exacte attendue par la logique de détection. Des exemples abstraits ou non liés entraîneront une mauvaise interprétation.
-
Narratif d’attaque & Commandes :
Un adversaire a obtenu un point d’appui sur la machine victime et souhaite obtenir une persistance et une exécution de code furtive. Ils sélectionnent un CLSID peu utilisé{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}qui est peu susceptible d’être référencé par un logiciel légitime. En utilisant PowerShell (T1218.010), ils écrivent le chemin de la DLL malveillante dans lesous-clé InProcServer32, éventuellement en définissant une valeurThreadingModelà"Both"pour satisfaire les exigences de chargement COM. Après l’enregistrement, toute application légitime qui tente d’instancier cet objet COM chargera la DLL contrôlée par l’attaquant, qui peut ensuite invoquerrundll32.exe(T1218.009) pour exécuter une charge utile qui contacte l’infrastructure C2 de l’attaquant (T1584.001). -
Script de Test de Régression :
# ------------------------------- # Simulation de Détournement COM (T1546.015) # ------------------------------- $clsid = '{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}' $regPath = "HKLM:SoftwareClassesCLSID$clsidInProcServer32" # S'assurer que la clé existe New-Item -Path $regPath -Force | Out-Null # Définir la valeur par défaut sur un chemin de DLL malveillant (supposons que la DLL est déjà sur le disque) $maliciousDll = "C:Tempevil.dll" Set-ItemProperty -Path $regPath -Name '(Default)' -Value $maliciousDll # OPTIONNEL : définir ThreadingModel à Both (certains objets COM l'exigent) Set-ItemProperty -Path $regPath -Name 'ThreadingModel' -Value 'Both' Write-Host "[+] Détournement du registre créé pour CLSID $clsid pointant vers $maliciousDll" -
Commandes de Nettoyage :
# ------------------------------- # Nettoyage de la Simulation de Détournement COM # ------------------------------- $clsid = '{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}' $regPath = "HKLM:SoftwareClassesCLSID$clsid" # Supprimer l’arborescence complète de clés CLSID if (Test-Path $regPath) { Remove-Item -Path $regPath -Recurse -Force Write-Host "[+] CLSID détourné $clsid supprimé du registre." } else { Write-Host "[*] CLSID $clsid non présent; rien à nettoyer." }