Qu'est-ce que l'Imbrication Dangereuse de Groupes ?
Les groupes Active Directory sont le principal mécanisme de contrôle d'accès aux ressources du domaine. Quand des groupes sont imbriqués de façon à accorder des privilèges non intentionnels ou excessifs, cela crée des chemins d'escalade de privilèges invisibles sans tracer la chaîne complète d'appartenance.
Ces chemins sont extrêmement courants dans les environnements AD matures : ils s'accumulent au fil des années de réorganisations, migrations et raccourcis de provisionnement, et ne sont jamais nettoyés car personne ne sait qu'ils existent.
Comment ca Fonctionne
L'appartenance aux groupes AD est récursive. Quand le Groupe A est membre du Groupe B, tous les membres du Groupe A héritent des permissions du Groupe B. Cette imbrication peut aller sur plusieurs niveaux, et les permissions effectives d'un utilisateur sont l'union de toutes les appartenances aux groupes sur toute la chaîne.
Le danger est amplifié par les Groupes Protégés — groupes comme Domain Admins, Enterprise Admins et Backup Operators protégés par le mécanisme AdminSDHolder. Tout compte membre (directement ou transitivement) de ces groupes a son ACL écrasée toutes les 60 minutes.
Les attaquants utilisent des outils comme BloodHound pour cartographier ces chemins en quelques secondes.
La Chaine d'Attaque
Etape 1 - Cartographier les Chaînes d'Appartenance aux Groupes
# Trouver tous les membres effectifs de Domain Admins (y compris imbriqués)
Get-ADGroupMember -Identity "Domain Admins" -Recursive |
Select-Object SamAccountName, ObjectClass, distinguishedName
# BloodHound — requête Neo4j pour les chemins les plus courts vers Domain Admins
# MATCH p=shortestPath((u:User {enabled:true})-[*1..]->(g:Group {name:"DOMAIN [email protected]"})) RETURN p
Etape 2 - Identifier le Maillon Faible
L'attaquant cible le compte le plus facile à compromettre dans la chaîne. Un compte de service Kerberoastable imbriqué 3 niveaux plus bas dans Domain Admins devient le vecteur d'attaque :
Get-ADGroupMember -Identity "Domain Admins" -Recursive |
Get-ADUser -Properties ServicePrincipalName, PasswordLastSet |
Where-Object {$_.ServicePrincipalName -ne $null} |
Select-Object SamAccountName, ServicePrincipalName, PasswordLastSet
Etape 3 - Escalader via la Chaîne
Une fois le maillon faible compromis (via Kerberoasting, spray de mots de passe ou phishing), l'attaquant hérite des privilèges Domain Admin via l'appartenance imbriquée.
Détection
Event IDs Windows
| Event ID | Source | Ce qu'il faut surveiller |
|---|---|---|
| 4728 | DC - Security | Membre ajouté à un groupe de sécurité global |
| 4756 | DC - Security | Membre ajouté à un groupe de sécurité universel |
| 4732 | DC - Security | Membre ajouté à un groupe de sécurité local |
💡 Conseil : Alertez sur toute modification des appartenances à Domain Admins, Enterprise Admins ou Schema Admins en temps réel. Ces changements devraient être extrêmement rares.
Requete SIEM (Elastic KQL)
event.code: ("4728" OR "4732" OR "4756") AND
winlog.event_data.TargetUserName: ("Domain Admins" OR "Enterprise Admins" OR "Schema Admins")
Remédiation
💡 Action Rapide : Exécutez le script PowerShell ci-dessus et listez tous les membres transitifs de Domain Admins. Supprimez immédiatement tout compte de service, compte partagé ou compte d'ancien employé.
1. Auditer et Nettoyer les Imbrications de Groupes
$groupesTier0 = @("Domain Admins","Enterprise Admins","Schema Admins","Backup Operators")
$resultats = @()
foreach ($groupe in $groupesTier0) {
Get-ADGroupMember -Identity $groupe -Recursive | ForEach-Object {
$resultats += [PSCustomObject]@{Groupe=$groupe; Compte=$_.SamAccountName; Type=$_.ObjectClass}
}
}
$resultats | Export-Csv audit_tier0.csv -NoTypeInformation
2. Implémenter le Modèle d'Administration en Tiers
| Tier | Périmètre | Comptes Admin |
|---|---|---|
| Tier 0 | Contrôleurs de Domaine, AD, PKI | Comptes DA dédiés uniquement |
| Tier 1 | Serveurs membres, applications | Comptes admin serveur |
| Tier 2 | Postes de travail, appareils | Comptes helpdesk |
Les credentials ne doivent jamais remonter. Un compte helpdesk Tier 2 ne doit jamais être membre d'un groupe Tier 0.
Comment EtcSec Détecte Cela
DANGEROUS_GROUP_NESTING signale les chaînes d'appartenance transitives qui accordent des privilèges Tier 0 non intentionnels.
EXCESSIVE_PRIVILEGED_ACCOUNTS compte tous les comptes avec des privilèges Domain Admin effectifs (directs et transitifs).
PATH_ACL_TO_DA et PATH_GPO_TO_DA complètent l'analyse d'imbrication avec des chemins d'escalade basés sur les permissions et les GPOs.
ℹ️ Note : EtcSec cartographie automatiquement l'imbrication des groupes lors de chaque audit AD. Lancez un audit gratuit pour découvrir les chemins Domain Admin cachés.
Articles connexes : Abus ACL et DCSync | Mauvaises Configurations GPO


