RoguePlanet exploite une faille zéro-day de Windows via le pipeline de quarantaine de Defender
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
RoguePlanet est une élévation de privilèges locale zero-day qui exploite le flux de travail de mise en quarantaine et de remédiation de Microsoft Defender sur Windows. En combinant les jonctions de répertoires NTFS, les verrous opportunistes et le service de Copies de l’ombre du volume, un utilisateur ayant peu de privilèges peut interférer avec le processus de traitement de Defender et forcer l’exécution de code arbitraire en tant que NT AUTHORITYSYSTEM. L’exploit repose sur une méthode de saturation d’E/S déterministe pour gagner systématiquement les courses de timing lors des opérations de mise en quarantaine des fichiers.
Enquête
L’équipe de recherche sur les menaces Howler Cell a reproduit l’exploit sur un système Windows 11 Pro entièrement patché et a confirmé qu’il permet une exécution de code au niveau SYSTEM sans corruption de mémoire ou accès administratif. Leur analyse a identifié une chaîne d’attaque en sept étapes impliquant une image ISO intégrée, des points de réanalyse NTFS, et un abus de la tâche planifiée WER QueueReporting . Les chercheurs ont également noté que de petits changements au niveau du code source permettent à l’exploit de contourner la détection statique avec une relative facilité.
Atténuation
Il n’existe actuellement aucun correctif officiel pour résoudre la cause sous-jacente de RoguePlanet. Les défenseurs devraient surveiller la création des pipes nommés spécifiques associés à l’exploit et les activités inhabituelles du système de fichiers impliquant des noms de répertoires similaires aux UUID sous %TEMP%. Un durcissement supplémentaire devrait se concentrer sur la limitation de l’abus des jonctions NTFS et la détection des processus non-système qui énumèrent les Copies de l’ombre du volume.
Réponse
Si une activité liée à RoguePlanet est détectée, les équipes de sécurité devraient isoler l’hôte affecté et enquêter sur tous les processus qui engendrent conhost.exe depuis des processus parents d’intégrité SYSTEM vers des sessions utilisateur. Les analystes devraient également rechercher wermgr.exe s’exécutant à partir de chemins inattendus et inspecter %TEMP% la structure du répertoire. Examiner les journaux du Planificateur de tâches pour l’exécution suspecte de la tâche RP_ QueueReporting QueueReporting est également essentiel.
graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ccffcc classDef malware fill:#ff9999 classDef technique fill:#e1ccff %% Node Definitions %% Step 1: Preparation prep_iso[« <b>Action</b>: Extrait l’ISO intégré<br/><b>Description</b>: L’orchestrateur extrait l’ISO pour créer un disque virtuel en lecture seule<br/><b>Cible</b>: Structure du répertoire %TEMP% »] class prep_iso action %% Step 2: Payload Delivery payload_ads[« <b>Action</b> – <b id=’T1564.004’>Attributs de fichiers NTFS : Flux de données alternatifs</b><br/><b>Description</b>: Écriture d’un fichier de test EICAR dans un flux de données alternatif caché nommé :WDFOO<br/><b>But</b>: Contourner les restrictions standard de fichiers lors de la livraison »] class payload_ads technique %% Step 3: Race Condition race_condition[« <b>Action</b> – <b id=’T1499’>Nier les services de l’endpoint : Affaiblir les défenses</b><br/><b>Description</b>: Utilisation du sous-système E/S Poseidon pour créer une activité disque à haute fréquence<br/><b>Mécanisme</b>: Saturation d’E/S et verrous opportunistes (oplocks) pour suspendre Defender »] class race_condition technique %% Step 4: Execution Flow Hijacking hijack_junction[« <b>Action</b> – <b id=’T1137’>Application Office : Créer ou modifier le registre/les fichiers</b><br/><b>Description</b>: Effectuer des échanges de jonctions à l’aide de points de réanalyse NTFS<br/><b>Cible</b>: Rediriger le chemin légitime de wermgr.exe vers le répertoire de l’attaquant »] class hijack_junction technique overwrite_artifact[« <b>Action</b>: Écraser un artefact détenu par SYSTEM<br/><b>Description</b>: Remplacement de l’artefact de quarantaine par une charge malveillante tout en conservant les métadonnées SYSTEM »] class overwrite_artifact action %% Step 5: Privilege Escalation task_trigger[« <b>Action</b> – <b id=’T1053.005’>Tâche planifiée/Emploi : Tâche planifiée</b><br/><b>Description</b>: Utilisation de l’interface COM du Planificateur de tâches pour déclencher la tâche QueueReporting »] class task_trigger technique shell_escalation[« <b>Processus</b>: shell conhost.exe<br/><b>Niveau de privilège</b>: NT AUTHORITYSYSTEM<br/><b>Description</b>: Exécution finale de la charge utile redirigée via la tâche détournée »] class shell_escalation process %% Connections %% Flow from preparation to payload prep_iso –>|facilite| payload_ads %% Flow from payload to race condition payload_ads –>|déclenche| race_condition %% Flow from race condition to hijacking race_condition –>|active| hijack_junction %% Flow from hijacking to overwrite hijack_junction –>|résulte en| overwrite_artifact %% Flow from overwrite to task trigger overwrite_artifact –>|prépare pour| task_trigger %% Flow from task trigger to final shell task_trigger –>|exécute| shell_escalation
Flux d’attaque
Détections
Processus suspect sous NT AUTHORITY (via création_processus)
Voir
Image disque optique VHDMP a été montée (via VHDMP)
Voir
Comportement possible d’exploitation RoguePlanet (via événement_fichier)
Voir
Comportement possible d’exploitation RoguePlanet (via pipe_created)
Voir
Accès NtQueryDirectoryObject anormal aux copies de l’ombre [Windows Sysmon]
Voir
Détecter l’artefact et les schémas de comportement de l’exploit RoguePlanet [Événement de fichier Windows]
Voir
Anomalie de pipe nommé RoguePlanet et de processus d’intégrité SYSTEM [Création de processus Windows]
Voir
Exécution de la simulation
Prérequis : Le contrôle préalable de télémétrie et d’étalonnage doit avoir réussi.
Raisonnement : 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 TTP 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 un mauvais diagnostic.
-
Narratif d’attaque & Commandes : L’adversaire exploite une vulnérabilité dans un service Windows en cours d’exécution pour obtenir une exécution de code au niveau SYSTEM. Pour faciliter la communication entre le service exploité et le nouveau thread injecté, l’adversaire crée un pipe nommé
.pipeRoguePlanet. Suite à l’élévation réussie, la charge utile de l’attaquant forceservices.exeà engendrerconhost.exepour fournir un environnement interactif pour une exécution de commande ultérieure. Cette séquence est conçue pour imiter le comportement de la chaîne d’exploitation RoguePlanet. -
Script de test de régression :
# Simulation d'anomalie de pipe nommé RoguePlanet et de processus # REMARQUE : Ce script nécessite des privilèges administratifs pour simuler un comportement de type service Write-Host "[+] Démarrage de la simulation RoguePlanet..." -ForegroundColor Cyan # 1. Simuler la création d'un pipe nommé (correspond à selection_pipe) # Nous utilisons PowerShell pour créer un pipe nommé qui imite l'indicateur de cible $pipeName = "RoguePlanet" $pipe = New-Object System.IO.Pipes.NamedPipeServerStream($pipeName, [System.IO.Pipes.PipeDirection]::InOut) Write-Host "[+] Pipe nommé \.pipe$pipeName créé." -ForegroundColor Green # 2. Simuler l'apparition de processus anormaux (corresponds à selection_conhost et selection_parent) # Dans une vraie exploitation, services.exe serait le parent. # Comme nous ne pouvons pas facilement 'devenir' services.exe sans exploit kernel, # nous simulons la télémétrie en déclenchant un événement de création de processus qui # imite la relation parent-enfant spécifique attendue par la logique de règle. Write-Host "[+] Simulation de l'apparition de conhost.exe à partir de services.exe..." -ForegroundColor Cyan # Nous utilisons une astuce pour imiter la télémétrie : créer un processus que le SIEM/Sysmon # enregistrera avec le parent cible si nous étions en environnement lab contrôlé. # Pour tester la détection, nous exécuterons une commande qui # cible les critères spécifiques d'Image/ParentImage. # Note : Dans une validation en monde réel, le chercheur utiliserait un outil comme # 'ProcMon' ou un pilote personnalisé pour usurper l'ID du parent process (PPID) # de services.exe pour assurer que la règle se déclenche correctement. Start-Process "conhost.exe" -ArgumentList "/c echo Simulation Complete" -WindowStyle Hidden Write-Host "[+] Commandes de simulation envoyées. Vérifiez SIEM pour les alertes." -ForegroundColor Yellow # Maintenir le pipe ouvert brièvement pour assurer la capture de la télémétrie Start-Sleep -Seconds 5 $pipe.Dispose() -
Commandes de nettoyage :
# Nettoyage : Fermer les pipes restants et terminer les processus simulés Get-Process conhost | Stop-Process -Force -ErrorAction SilentlyContinue Write-Host "[+] Nettoyage terminé." -ForegroundColor Green