Active Directory : les briques d'un domaine
Ce qu'est vraiment un domaine Active Directory : contrôleurs de domaine, forêt, objets, unités d'organisation, GPO et groupes privilégiés.
Elouan
Série Active Directory · article 1 sur 4
- Active Directory : les briques d'un domaine
- Kerberos de bout en bout
- NTLM et ses faiblesses
- Protéger et surveiller un domaine Active Directory
Dans presque toutes les entreprises, Active Directory est le cœur du système d’information : c’est lui qui dit qui a le droit de se connecter où, et avec quels droits. C’est aussi pour ça qu’il est la cible principale des attaquants. Un domaine compromis, c’est souvent l’ensemble du parc compromis. Avant de parler d’attaques, il faut comprendre de quoi il est fait.
Un annuaire centralisé
Active Directory Domain Services (AD DS) est un annuaire : une base de données qui contient les objets du réseau et leurs attributs.
| Objet | Exemples d’attributs |
|---|---|
| Utilisateur | Nom de connexion (sAMAccountName), mot de passe, groupes, dernière connexion |
| Ordinateur | Nom, système d’exploitation, mot de passe de la machine |
| Groupe | Membres, type (sécurité ou distribution), étendue |
| Unité d’organisation (OU) | Objets qu’elle contient, GPO liées |
| GPO | Paramètres de configuration à appliquer |
Sans AD, chaque machine aurait ses propres comptes locaux. Avec AD, un utilisateur a un seul compte pour tout le domaine, et l’administration est centralisée.
Les contrôleurs de domaine
Un contrôleur de domaine (DC) est un serveur qui héberge une copie de l’annuaire et qui authentifie les utilisateurs et les machines. Un domaine en a toujours plusieurs, qui se répliquent entre eux.
La base de données est le fichier NTDS.dit (C:\Windows\NTDS\NTDS.dit). Elle contient tous les objets du domaine… dont les empreintes des mots de passe de tous les comptes.
Les DC sont les joyaux de la couronne
Celui qui contrôle un DC contrôle le domaine. Celui qui obtient une copie de NTDS.dit a les empreintes de tous les mots de passe, y compris celle du compte krbtgt qui signe les tickets Kerberos. C’est pour ça qu’un DC ne doit jamais servir à autre chose, et que seuls quelques comptes très protégés doivent pouvoir s’y connecter.
Un DC fait tourner les services dont dépend tout le domaine :
| Service | Port | Rôle |
|---|---|---|
| DNS | 53 | Les machines trouvent les DC grâce aux enregistrements SRV |
| Kerberos | 88 | Authentification principale |
| LDAP / LDAPS | 389 / 636 | Interroger et modifier l’annuaire |
| Catalogue global | 3268 / 3269 | Recherches sur toute la forêt |
| SMB | 445 | Partages SYSVOL et NETLOGON |
| RPC | 135 + ports dynamiques | Réplication, administration |
Forêt, domaine, approbations
- Une forêt est l’ensemble le plus large : un ou plusieurs domaines qui partagent un même schéma (la définition des types d’objets) et une même configuration.
- Un domaine est une unité d’administration et de réplication à l’intérieur de la forêt (
corp.local,europe.corp.local). - Des approbations (trusts) permettent aux utilisateurs d’un domaine d’accéder aux ressources d’un autre.
Forêt corp.local
├── corp.local domaine racine
│ ├── europe.corp.local domaine enfant
│ └── asia.corp.local domaine enfant
└── approbation ─────────────► forêt partenaire.com
La forêt, pas le domaine
Microsoft le dit clairement : la frontière de sécurité, c’est la forêt. Un administrateur d’un domaine enfant peut, avec des techniques connues, devenir administrateur de toute la forêt. Pour isoler vraiment deux entités, il faut deux forêts.
OU et groupes : deux choses différentes
C’est une confusion fréquente.
| Unité d’organisation (OU) | Groupe | |
|---|---|---|
| Rôle | Ranger les objets, déléguer, appliquer des GPO | Donner des droits et des accès |
| Appartenance | Un objet est dans une seule OU | Un objet peut être dans plusieurs groupes |
| Exemple | OU=Comptabilité,OU=Utilisateurs,DC=corp,DC=local | GRP-Partage-Compta-Lecture |
Les GPO et SYSVOL
Une GPO (stratégie de groupe) est un ensemble de paramètres appliqués automatiquement aux machines ou aux utilisateurs : règles de mot de passe, pare-feu, logiciels installés, scripts de connexion, droits locaux…
Elles s’appliquent dans l’ordre LSDOU : Local, Site, Domaine, OU (de l’OU parente vers l’OU la plus proche). En cas de conflit, la dernière appliquée l’emporte, sauf exceptions (GPO « appliquée », héritage bloqué).
Les fichiers des GPO sont stockés dans SYSVOL (\\corp.local\SYSVOL), répliqué sur tous les DC.
SYSVOL est lisible par tout le monde
N’importe quel utilisateur du domaine peut lire SYSVOL. Un mot de passe oublié dans un script de connexion, ou un ancien mot de passe stocké dans une préférence de GPO (le champ cpassword, dont la clé de chiffrement a été publiée par Microsoft), est donc à la portée de n’importe quel attaquant qui a compromis un simple poste.
Les comptes et groupes privilégiés
Certains groupes donnent, directement ou indirectement, le contrôle du domaine ou de la forêt.
| Groupe | Portée | Pouvoir |
|---|---|---|
| Administrateurs de l’entreprise | Forêt | Contrôle de toute la forêt |
| Administrateurs du schéma | Forêt | Modifier le schéma |
| Admins du domaine | Domaine | Contrôle total du domaine, administrateurs de toutes les machines |
| Administrateurs (groupe intégré) | Domaine | Contrôle des DC et de l’annuaire |
| Opérateurs de compte | Domaine | Créer et modifier la plupart des comptes |
| Opérateurs de sauvegarde | Domaine | Sauvegarder les DC, donc lire NTDS.dit |
| Opérateurs de serveur | Domaine | Administrer les DC |
S’y ajoutent des comptes particuliers :
- krbtgt : le compte dont la clé signe et chiffre tous les tickets Kerberos (TGT) du domaine. Sa compromission permet de forger des tickets valides (« golden ticket »).
- Les comptes de service : souvent dotés de droits élevés et de mots de passe qui ne changent jamais, ils sont une cible classique (voir le Kerberoasting).
- Les comptes des machines : chaque ordinateur a un compte dans le domaine, avec un mot de passe renouvelé automatiquement.
Les rôles FSMO
Quelques opérations ne peuvent être faites que par un seul DC à la fois. Ce sont les rôles FSMO :
| Rôle | Portée | Rôle concret |
|---|---|---|
| Maître de schéma | Forêt | Seul à pouvoir modifier le schéma |
| Maître d’attribution de noms de domaine | Forêt | Ajouter ou supprimer des domaines |
| Maître RID | Domaine | Distribuer les blocs de RID pour créer des SID |
| Maître d’infrastructure | Domaine | Mettre à jour les références entre domaines |
| Émulateur PDC | Domaine | Heure de référence, changements de mot de passe urgents, verrouillages |
L’émulateur PDC est souvent le premier endroit où l’on regarde les verrouillages de comptes, et il sert de référence de temps : un décalage d’horloge de plus de 5 minutes casse Kerberos.
Le prochain article détaille le protocole qui fait tout fonctionner : Kerberos.
L'essentiel
- Active Directory (AD DS) est l'annuaire de Microsoft : il centralise les comptes, les machines, les groupes et les règles d'un réseau Windows.
- Un contrôleur de domaine (DC) héberge l'annuaire. La base est le fichier NTDS.dit (C:\Windows\NTDS), qui contient notamment les empreintes de mots de passe de tous les comptes.
- Forêt = frontière de sécurité. Domaine = unité d'administration et de réplication à l'intérieur d'une forêt. Les domaines sont reliés par des relations d'approbation (trusts).
- Une OU (unité d'organisation) sert à ranger les objets et à appliquer des GPO. Un groupe sert à donner des droits. Ce ne sont pas la même chose.
- Les GPO sont stockées dans SYSVOL, partagé sur tous les DC et lisible par tous les utilisateurs du domaine.
- Groupes à protéger en priorité : Admins du domaine, Administrateurs de l'entreprise, Administrateurs du schéma, Administrateurs (du domaine), Opérateurs de compte, de sauvegarde, de serveur.
- AD repose sur DNS (enregistrements SRV), Kerberos (88), LDAP (389 / 636) et SMB (445).
Idées reçues
Le domaine est-il la frontière de sécurité dans Active Directory ?
L'erreur courante. Répondre oui.
En réalité. Non, c'est la forêt. Un administrateur d'un domaine enfant peut, par des techniques connues, prendre le contrôle de toute la forêt. Si l'on veut une vraie séparation (par exemple entre deux entités), il faut deux forêts distinctes, reliées par une approbation filtrée si besoin.
Quelle est la différence entre une OU et un groupe ?
L'erreur courante. Dire que ce sont deux façons de regrouper des utilisateurs.
En réalité. Une OU est un conteneur administratif : elle sert à ranger les objets, à déléguer leur gestion et à leur appliquer des GPO. Un groupe sert à attribuer des droits et des accès (à un partage, à un serveur). Un utilisateur est dans une seule OU, mais peut être membre de nombreux groupes.
Pourquoi trouver un mot de passe dans un script de SYSVOL est-il grave ?
L'erreur courante. Penser que SYSVOL est réservé aux administrateurs.
En réalité. SYSVOL est lisible par tous les utilisateurs authentifiés du domaine. Tout mot de passe qui s'y trouve (scripts de connexion, anciennes préférences de GPO avec cpassword, dont la clé de chiffrement est publique) est accessible à n'importe quel compte, y compris celui d'un attaquant qui vient de compromettre un poste.
Que contient le fichier NTDS.dit et pourquoi les attaquants le veulent-ils ?
L'erreur courante. Dire qu'il contient la configuration du DC.
En réalité. C'est la base de données de l'annuaire. Elle contient tous les objets du domaine, dont les empreintes NT des mots de passe de tous les comptes, y compris krbtgt. L'obtenir (copie via ntdsutil ou clichés instantanés, ou DCSync) revient à compromettre tout le domaine.
Tester ses connaissances
Références
- Active Directory (5e éd.)Brian Desmond, Joe Richards, Robbie Allen, Alistair G. Lowe-Norris · O'Reilly
- Pentesting Active Directory and Windows-based InfrastructureDenis Isakov · Packt