Elouan

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
  1. Active Directory : les briques d'un domaine
  2. Kerberos de bout en bout
  3. NTLM et ses faiblesses
  4. 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.

ObjetExemples d’attributs
UtilisateurNom de connexion (sAMAccountName), mot de passe, groupes, dernière connexion
OrdinateurNom, système d’exploitation, mot de passe de la machine
GroupeMembres, type (sécurité ou distribution), étendue
Unité d’organisation (OU)Objets qu’elle contient, GPO liées
GPOParamè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 :

ServicePortRôle
DNS53Les machines trouvent les DC grâce aux enregistrements SRV
Kerberos88Authentification principale
LDAP / LDAPS389 / 636Interroger et modifier l’annuaire
Catalogue global3268 / 3269Recherches sur toute la forêt
SMB445Partages SYSVOL et NETLOGON
RPC135 + ports dynamiquesRé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ôleRanger les objets, déléguer, appliquer des GPODonner des droits et des accès
AppartenanceUn objet est dans une seule OUUn objet peut être dans plusieurs groupes
ExempleOU=Comptabilité,OU=Utilisateurs,DC=corp,DC=localGRP-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.

GroupePortéePouvoir
Administrateurs de l’entrepriseForêtContrôle de toute la forêt
Administrateurs du schémaForêtModifier le schéma
Admins du domaineDomaineContrôle total du domaine, administrateurs de toutes les machines
Administrateurs (groupe intégré)DomaineContrôle des DC et de l’annuaire
Opérateurs de compteDomaineCréer et modifier la plupart des comptes
Opérateurs de sauvegardeDomaineSauvegarder les DC, donc lire NTDS.dit
Opérateurs de serveurDomaineAdministrer 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ôlePortéeRôle concret
Maître de schémaForêtSeul à pouvoir modifier le schéma
Maître d’attribution de noms de domaineForêtAjouter ou supprimer des domaines
Maître RIDDomaineDistribuer les blocs de RID pour créer des SID
Maître d’infrastructureDomaineMettre à jour les références entre domaines
Émulateur PDCDomaineHeure 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

Textes de référence en ligne