Étude de Cas : Comment le Bouclier Prédictif de Defender a Bloqué le Ransomware Basé sur GPO Avant Exécution
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Microsoft Defender a interrompu une attaque par ransomware opérée par des humains ciblant une grande organisation éducative en détectant l’abus des objets de stratégie de groupe (GPO) utilisés pour affaiblir les paramètres de sécurité et distribuer des ransomwares via des tâches planifiées.
Enquête
Les attaquants ont compromis un compte administrateur de domaine, effectué une énumération Active Directory, forcé des identifiants par brute-force, collecté des tickets Kerberos et des données NTDS, créé des comptes locaux pirates et déployé des GPO malveillants pour appliquer une politique de falsification et déclencher la livraison du ransomware par le biais de tâches planifiées.
Atténuation
Le bouclier prédictif de Defender a identifié l’activité malveillante des GPO, renforcé temporairement les GPO, bloqué le déploiement du ransomware par tâches planifiées et empêché l’encryption de 97 % des appareils.
Réponse
Une fois détectées, les défenses doivent immédiatement activer le renforcement des GPO, contenir les comptes compromis, bloquer le trafic SMB suspect et enquêter sur les méthodes de persistance supplémentaires, y compris la création de comptes locaux non autorisés.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef builtin fill:#cccccc %% Reconnaissance Nodes recon_action["<b>Action</b> – Reconnaissance<br/>Utilisation d’AD Explorer pour énumérer Active Directory et effectuer une supposition de mot de passe."] class recon_action action recon_brute["<b>Technique</b> – T1110 Force Brute : Supposition de mot de passe<br/><b>Description</b> Tente de deviner les mots de passe par essais et erreurs."] class recon_brute technique recon_account["<b>Technique</b> – T1087.002 Découverte de comptes : Compte de domaine<br/><b>Description</b> Énumère les comptes d’utilisateurs de domaine."] class recon_account technique recon_gpo["<b>Technique</b> – T1615 Découverte des stratégies de groupe<br/><b>Description</b> Récupère les paramètres de stratégie de groupe à partir des contrôleurs de domaine."] class recon_gpo technique %% Reconnaissance Connections recon_action –>|uses| recon_brute recon_action –>|discovers| recon_account recon_action –>|discovers| recon_gpo %% Credential Access Nodes action_cred["<b>Action</b> – Accès aux identifiants<br/>Effectué un Kerberoasting et dumpé NTDS.dit."] class action_cred action tech_kerb["<b>Technique</b> – T1558.003 Kerberoasting<br/><b>Description</b> Demande des tickets de service et les casse hors-ligne."] class tech_kerb technique tech_ntds["<b>Technique</b> – T1003.003 Dumping d’identifiants OS : NTDS<br/><b>Description</b> Extrait les hachages de mots de passe depuis la base de données Active Directory."] class tech_ntds technique %% Credential Access Connections action_cred –>|uses| tech_kerb action_cred –>|uses| tech_ntds %% Persistence Nodes action_persist["<b>Action</b> – Persistance<br/>Créé de nouveaux comptes locaux sur les hôtes compromis."] class action_persist action tech_create_local["<b>Technique</b> – T1136.001 Création de comptes : Compte local<br/><b>Description</b> Ajoute des comptes d’utilisateurs locaux pour un accès continu."] class tech_create_local technique %% Persistence Connections action_persist –>|uses| tech_create_local %% Lateral Movement Nodes action_lateral["<b>Action</b> – Déplacement latéral<br/>Utilisé des identifiants de domaine volés pour accéder à des partages d’administration distants via SMB."] class action_lateral action tech_smb["<b>Technique</b> – T1021.002 Services distants SMB/Partages d’administration Windows<br/><b>Description</b> Exploite les partages SMB pour le mouvement latéral."] class tech_smb technique %% Lateral Movement Connections action_lateral –>|uses| tech_smb %% Defense Evasion Nodes action_evasion["<b>Action</b> – Évasion défensive<br/>Déploiement d’un GPO malveillant pour désactiver Microsoft Defender."] class action_evasion action tech_gpo_mod["<b>Technique</b> – T1484 Modification de politique de domaine ou de locataire<br/><b>Description</b> Modifie les objets de stratégie de groupe pour changer les paramètres de sécurité."] class tech_gpo_mod technique tech_impair["<b>Technique</b> – T1562.001 Désactivation ou modification des outils de défense<br/><b>Description</b> Désactive ou modifie les outils de sécurité."] class tech_impair technique %% Defense Evasion Connections action_evasion –>|modifies| tech_gpo_mod action_evasion –>|disables| tech_impair %% Impact Preparation Nodes action_impact["<b>Action</b> – Préparation de l’impact<br/>Création d’une tâche planifiée via GPO pour copier et exécuter des fichiers sur toutes les machines du domaine."] class action_impact action tech_scheduled["<b>Technique</b> – T1053 Tâche/Travail planifié<br/><b>Description</b> Planifie l’exécution de commandes à des moments définis."] class tech_scheduled technique tech_cmd["<b>Technique</b> – T1059.003 Interpréteur de commandes et de scripts Windows Command Shell<br/><b>Description</b> Exécute des fichiers batch en utilisant cmd.exe."] class tech_cmd technique tech_rundll["<b>Technique</b> – T1218.011 Exécution de proxy binaire système Rundll32<br/><b>Description</b> Charge des DLL malveillantes via rundll32.exe."] class tech_rundll technique %% Impact Preparation Connections action_impact –>|creates| tech_scheduled action_impact –>|executes| tech_cmd action_impact –>|uses| tech_rundll %% Ransomware Deployment Nodes action_ransom["<b>Action</b> – Déploiement de ransomware<br/>Les charges tentent de chiffrer les fichiers ; Defender a bloqué la propagation des GPO sur de nombreux appareils."] class action_ransom action tech_encrypt["<b>Technique</b> – T1486 Données chiffrées pour l’impact<br/><b>Description</b> Chiffre les données de la victime pour demander une rançon."] class tech_encrypt technique %% Ransomware Deployment Connections action_ransom –>|uses| tech_encrypt %% Overall Flow Sequence recon_action –>|leads_to| action_cred action_cred –>|leads_to| action_persist action_persist –>|leads_to| action_lateral action_lateral –>|leads_to| action_evasion action_evasion –>|leads_to| action_impact action_impact –>|leads_to| action_ransom "
Flux d’attaque
Détections
Activité possible de Kerberoasting [correlate/bucket_span_10m/by src_ipaddr] (via audit)
Voir
Modèles possibles de l’outil AD Explorer (via cmdline)
Voir
Désactivation de la surveillance en temps réel de Windows Defender et autres modifications des préférences (via cmdline)
Voir
Détection des activités d’énumération Active Directory et de collecte d’identifiants [Microsoft Windows Security Event Log]
Voir
Exécution de la simulation
Prérequis : Le contrôle préliminaire de télémétrie et de référence doit être passé.
Justification : Cette section détaille l’exécution exacte 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.
Narratif & Commandes d’attaque
-
Énumération Active Directory avec ADExplorer – Un attaquant utilise l’utilitaire existant dans le système ADExplorer.exe pour parcourir la base de données AD, générant un événement de création de processus correspondant
Image|endswith: 'ADExplorer.exe'. -
Force brute des identifiants (T1110) – L’attaquant exécute un spray de mots de passe contre un compte de domaine, provoquant des tentatives de connexion échouées répétées (Événement 4625) avec la raison de l’échec
%#13(“L’utilisateur a tenté de se connecter depuis un domaine non fiable”). -
Kerberoasting (T1558.003) – Utilisant l’outil open-source Rubeus, l’attaquant demande des tickets de service Kerberos pour les SPN de comptes informatiques (par exemple,
HOST01$). Chaque demande génère l’Événement 4769 oùServiceNamese termine par$. -
Dump NTDS (T1003.003) – L’attaquant crée une copie d’ombre de volume du disque système et extrait
NTDS.diten utilisantntdsutil, provoquant l’Événement 4662 avecObjectType = "ds"andOperationType = "Replication".
Les quatre actions sont exécutées sur le même hôte dans une fenêtre de 5 minutes pour simuler une phase de “récolte” post-compromission réaliste.
Script de test de régression
# -------------------------------------------------
# Script de simulation – Déclenche tous les chemins de détection
# -------------------------------------------------
# 1. Exécution ADExplorer (création de processus)
$adExplorerPath = "$env:ProgramFilesSysinternalsADExplorer.exe"
if (-Not (Test-Path $adExplorerPath)) {
Write-Host "ADExplorer non trouvé – téléchargement de l'espace réservé pour le test."
# Simule en copiant n'importe quel exe au nom attendu
Copy-Item "$env:SystemRootSystem32notepad.exe" $adExplorerPath
}
Start-Process -FilePath $adExplorerPath -ArgumentList "/quiet" -WindowStyle Hidden
Start-Sleep -Seconds 5
# 2. Tentatives de connexion par force brute (4625 avec %#13)
$domain = "CONTOSO"
$user = "testuser"
$badPwd = "MauvaisMotDePasse123!"
1..3 | ForEach-Object {
$null = [System.DirectoryServices.AccountManagement.PrincipalContext]::new('Domain', $domain).ValidateCredentials($user, $badPwd)
Start-Sleep -Milliseconds 500
}
# 3. Kerberoasting via Rubeus (nécessite Rubeus.exe dans le PATH)
$rubeusPath = "$env:ProgramFilesRubeusRubeus.exe"
if (-Not (Test-Path $rubeusPath)) {
Write-Host "Rubeus non trouvé – étape de Kerberoasting sautée."
} else {
& $rubeusPath kerberoast /outfile:"C:Tempkerb_tickets.kirbi"
}
Start-Sleep -Seconds 5
# 4. Extraction de NTDS.dit utilisant VSS (réplication 4662)
# Crée une copie d'ombre VSS et copie NTDS.dit
$shadow = (vssadmin list shadows | Select-String -Pattern "ShadowCopy Volume" -Context 0,1).Line.Split()[-1]
$ntdsSource = "$shadowWindowsNTDSNTDS.dit"
$ntdsDest = "C:TempNTDS_dump.dit"
if (Test-Path $ntdsSource) {
Copy-Item -Path $ntdsSource -Destination $ntdsDest -Force
}
Start-Sleep -Seconds 5
Write-Host "Simulation terminée. Toute la télémétrie devrait être ingérée."
Commandes de nettoyage
# -------------------------------------------------
# Nettoyage – supprime les artefacts créés par la simulation
# -------------------------------------------------
# Supprimer le faux ADExplorer s'il a été créé
Remove-Item -Path "$env:ProgramFilesSysinternalsADExplorer.exe" -ErrorAction SilentlyContinue
# Supprime le dump Kerberos
Remove-Item -Path "C:Tempkerb_tickets.kirbi" -ErrorAction SilentlyContinue
# Supprimer le dump NTDS
Remove-Item -Path "C:TempNTDS_dump.dit" -ErrorAction SilentlyContinue
# Effacer toutes les copies d'ombre créées (nécessite admin)
# vssadmin delete shadows /all /quiet
Write-Host "Nettoyage terminé."