Le gestionnaire d’annuaire
Généralités
Dans une infrastructure informatique, l’annuaire joue un rôle central dans l’organisation, la centralisation et la sécurisation des ressources du système d’information. Il s’agit d’une base de données hiérarchique conçue pour stocker des objets (utilisateurs, groupes, ordinateurs, imprimantes, applications, etc.) et leurs attributs (nom, mot de passe, appartenance à un groupe, etc.), et généralement accessible via le protocole LDAP (Lightweight Directory Access Protocol), optimisé pour la recherche et la lecture. On distingue cependant l’annuaire de son gestionnaire. Ce dernier désigne le service ou logiciel chargé de mettre en œuvre cette base, de la rendre accessible via des protocoles standards, et d’assurer des fonctions telles que l’authentification, la gestion des droits, la réplication ou encore l’administration centralisée.
Parmi les solutions disponibles, certaines comme OpenLDAP, 389 Directory Server ou ApacheDS sont des serveurs LDAP : elles implémentent les fonctions de base d’un annuaire. À l’inverse, des solutions comme FreeIPA, Zentyal ou Samba-AD proposent une approche plus complète. Elles combinent serveur LDAP, service d’authentification (Kerberos), gestion de politiques d’accès, interfaces web ou graphiques...
Structure
1. NTDS
La base de données principale d’Active Directory, NTDS.dit, est un fichier situé généralement dans le dossier C:\Windows\NTDS qui contient toutes les données relatives à l’annuaire, telles que les comptes utilisateurs, les groupes, les ordinateurs, les unités organisationnelles et bien d’autres objets. Ce fichier est situé sur chaque contrôleur de domaine et utilise un moteur de base de données appelé ESE (Extensible Storage Engine), ou Jet Blue, qui permet une gestion performante et sécurisée des données.
Le fichier NTDS.dit est organisé sous forme de plusieurs tables internes qui servent à stocker et organiser les objets de l’annuaire. L’une des tables principales est la datatable, qui contient les informations sur les objets de l’annuaire et leurs attributs, comme le nom d’utilisateur. D’autres tables, comme la link_table et la sd_table, gèrent respectivement les relations entre les objets (comme les appartenances aux groupes) et les descripteurs de sécurité qui définissent les permissions d’accès aux objets.
Les colonnes de la datatable ne portent pas de noms explicites, mais utilisent une convention de nommage interne reposant sur un préfixe suivi d’un identifiant. Par exemple, une colonne nommée ATTm590045 correspond à l’attribut sAMAccountName, c’est-à-dire le nom de connexion de l’utilisateur. Ce nom suit une logique propre au moteur ESE : le préfixe ATT indique qu’il s’agit d’un attribut, la lettre qui suit (comme m, j ou q) désigne le type de données stockées, et le nombre représente l’identifiant unique de l’attribut dans le schéma Active Directory.
Cette structure, bien que performante pour le moteur, est peu lisible et compréhensible directement par un humain. C’est pourquoi plusieurs outils ont été développés pour parser et interpréter les fichiers .dit :
-
libesedb-python : bibliothèque Python permettant d’extraire les données des bases ESE (https://pypi.org/project/libesedb-python/) ;
-
dissect.esedb : bibliothèque moderne et modulaire développée par Fox-IT (https://github.com/fox-it/dissect.esedb) ;
-
ese.py : composant de la suite Impacket permettant l’exploration des fichiers ESE, notamment ceux de NTDS (https://github.com/fortra/impacket/blob/master/impacket/ese.py).
Enfin, en 2021, Microsoft a publié le code source de son moteur ESE sur GitHub (https://github.com/microsoft/Extensible-Storage-Engine), offrant ainsi une visibilité précieuse sur le fonctionnement interne de cette base, longtemps restée opaque. Cela permet aujourd’hui aux chercheurs, pentesters et administrateurs d’auditer, comprendre ou exploiter cette base avec des outils mieux documentés.
2. Les partitions d’annuaire
Dans Active Directory, les données sont organisées en plusieurs partitions d’annuaire (ou naming contexts), qui sont des divisions logiques permettant de structurer l’annuaire selon différents critères. Ces partitions sont essentielles pour gérer la réplication des données entre les contrôleurs de domaine et pour organiser les objets de l’annuaire en fonction de leur domaine ou de leur rôle.
Voici les principales partitions utilisées dans Active Directory :
-
Partition de domaine (Domain NC) : contient tous les objets spécifiques à un domaine, comme les utilisateurs, ordinateurs, groupes et unités...
Hiérarchie et gestion des objets
1. Les conteneurs
Un conteneur est un objet prédéfini par le système, conçu pour contenir d’autres objets Active Directory. Contrairement aux OU (Organizational Units), les conteneurs sont des structures de base, non conçues pour une organisation hiérarchiques, principalement utilisées pour regrouper certains objets de manière fonctionnelle. Ils sont créés automatiquement par le système et ne peuvent ni être modifiés ni supprimés. Par ailleurs, ils ne peuvent pas contenir d’OU et il n’est pas possible d’y appliquer directement des GPO (Group Policy Object).
Exemples de conteneurs par défaut :
|
Conteneur |
Description |
|
Users |
Contient les comptes utilisateurs et groupes créés par défaut. |
|
Computers |
Réceptacle par défaut pour les ordinateurs joints au domaine. |
|
Builtin |
Regroupe les groupes système prédéfinis (ex. : Administrateurs). |
|
ForeignSecurityPrincipals |
Représente des objets de sécurité issus de domaines externes. |
|
System |
Contient des objets utilisés par les services AD. |
|
LostAndFound |
Contient les objets « orphelins » suite à un problème de réplication. |
2. Les unités d’organisation
Contrairement aux containers, les OU sont créées par les administrateurs et permettent de structurer l’annuaire de manière logique et hiérarchique.
Les OU servent à :
-
organiser les objets (utilisateurs, ordinateurs, groupes, etc.) par service, localisation, fonction... ;
-
appliquer des GPO spécifiques ;
-
déléguer l’administration (ex. : un responsable RH peut gérer les comptes de son service uniquement).
3. msDS-ShadowPrincipalContainer
Le conteneur msDS-ShadowPrincipalContainer...
Utilisateurs, ordinateurs et stratégies de groupe
1. Les utilisateurs
Dans Active Directory, les utilisateurs sont représentés par des objets de type user, qui constituent l’unité centrale pour la gestion des identités et des accès au sein d’un environnement Windows. Ces objets authentifiables disposent d’un ensemble d’attributs variés permettant à la fois de contrôler les accès (via userAccountControl, adminCount, pwdLastSet, accountExpires, memberOf, etc.) et de stocker des données personnelles ou organisationnelles. Ces données sont particulièrement utiles pour alimenter des annuaires d’entreprise, des intranets ou des applications RH.
Parmi les attributs les plus couramment utilisés à cette fin, on retrouve :
-
givenName (prénom) ;
-
sn (nom de famille) ;
-
displayName (nom complet affiché) ;
-
mail ;
-
telephoneNumber ;
-
title (fonction) ;
-
department (service) ;
-
company ;
-
postalAddress, l (ville), st (région), postalCode ;
-
ou encore manager, employeeID et employeeType.
Active Directory prend également en charge d’autres types d’objets pour représenter des individus, comme contact et inetOrgPerson, qui répondent à des besoins spécifiques. Le tableau suivant en résume les principales différences :
|
Type d’objet |
Authentifiable |
Usage principal |
Particularités |
|
User |
Oui |
Compte utilisateur standard dans le domaine |
Supporte l’authentification, les politiques de mot de passe, les groupes, etc. |
|
Contact |
Non |
Représentation d’un individu externe |
Ne peut pas se connecter. Ce dernier est utilisé pour les carnets d’adresses ou les groupes de distribution. |
|
inetOrgPerson |
Oui |
Compatibilité avec des annuaires LDAP tiers |
Plus riche en attributs que user (e-mails multiples, préférences, etc.), mais peu utilisé dans les environnements Windows purs. |
Le Centre d’administration Active Directory offre une interface conviviale et intuitive, permettant de manipuler et de visualiser plus facilement les attributs des objets, en fournissant une vue détaillée et structurée qui facilite leur gestion et modification.

Création d’utilisateur ADAC
Depuis les propriétés de l’objet, l’Éditeur d’attributs, accessible via le menu Extensions, permet de consulter la valeur d’attributs plus techniques, tels que adminCount, qui indique si un compte utilisateur appartient à un groupe administratif ou bénéficie de privilèges élevés.
Cette...
Forêt
La forêt est la structure logique la plus haute dans une infrastructure Active Directory. Elle forme un ensemble cohérent qui regroupe tous les éléments de l’annuaire : domaines, objets, stratégies, rôles, et services essentiels à son fonctionnement.
Une forêt représente un périmètre de confiance, à l’intérieur duquel les domaines peuvent collaborer en toute sécurité Tous les domaines d’une même forêt partagent un schéma d’annuaire unique ainsi qu’une partition de configuration commune, répliquées à l’ensemble des contrôleurs de domaine de la forêt. En revanche, les objets appartenant à la partition de domaine (utilisateurs, groupes, ordinateurs, unités d’organisation, etc.) ne sont répliqués qu’entre les contrôleurs de domaine concerné, à l’exception de certaines informations partielles diffusées via le catalogue global. C’est également au niveau de la forêt que sont définis certains rôles fondamentaux pour la cohérence globale de l’environnement.
Lorsqu’une forêt est créée, elle donne naissance à un premier domaine racine, à partir duquel peuvent être déployés d’autres domaines. Les échanges entre ces domaines sont facilités par des mécanismes de catalogue global et encadrés par des relations d’approbation automatiques, garantissant la circulation sécurisée des informations à travers l’ensemble de la structure.
La forêt s’étend également au-delà des frontières logiques avec la prise en compte de la répartition physique de l’annuaire via la notion de sites, qui permettent d’optimiser les communications et la réplication entre contrôleurs de domaine en fonction de la topologie réseau.
En résumé, la forêt Active Directory définit l’univers d’annuaire dans lequel évoluent tous les objets et tous les services. Elle en constitue la colonne vertébrale, à la fois sur le plan technique, organisationnel et sécuritaire.
1. Le domaine
Un domaine est une partition dans une forêt Active Directory. Il regroupe un ensemble d’objets tels que des utilisateurs, ordinateurs, groupes ou ressources (imprimantes, dossiers partagés, etc.).
Dans un réseau en workgroup (groupe de travail), chaque ordinateur gère ses propres utilisateurs et ses propres règles. Ce modèle devient rapidement inefficace dans un environnement professionnel dans la mesure où il n’y a pas de gestion unifiée, les mots de passe doivent être synchronisés manuellement, et aucune politique de sécurité cohérente ne peut être appliquée à l’ensemble du parc.
Le domaine, à l’inverse :
-
centralise l’authentification des utilisateurs et des ordinateurs via un ou plusieurs contrôleurs de domaine, en s’appuyant principalement sur le protocole Kerberos. Permet la gestion centralisée des comptes utilisateurs, des groupes et des ordinateurs grâce aux services d’annuaire accessibles notamment via LDAP ;
-
facilite le déploiement de stratégies de sécurité et de configuration (GPO) ;
-
offre une traçabilité ainsi qu’un meilleur contrôle des accès.
a. Le niveau fonctionnel
Les fonctionnalités disponibles au sein d’un domaine dépendent de son niveau fonctionnel, qui correspond à la version la plus ancienne de Windows Server...
Sites
Les sites Active Directory représentent la répartition physique de l’infrastructure sur le réseau. Un site correspond à un emplacement géographique ou réseau (ex. : une agence, un datacenter), défini par une ou plusieurs plages d’adresses IP.
Active Directory utilise les sites pour deux raisons principales :
-
Optimiser la réplication entre les contrôleurs de domaine : les échanges entre serveurs situés dans un même site sont plus fréquents, car ils supposent une bonne connectivité. Entre sites distants, la réplication est espacée et compressée pour économiser la bande passante.
-
Diriger les clients vers le contrôleur de domaine le plus proche : lors d’une authentification, un poste essaiera d’utiliser un contrôleur de domaine situé dans son propre site, évitant ainsi les ralentissements dus aux liaisons inter-sites.
Il est essentiel que chaque site dispose d’au moins d’un contrôleur de domaine, et idéalement d’un catalogue global, surtout si les utilisateurs du site doivent effectuer des recherches ou s’authentifier sans dépendre de liens vers des sites distants.
Pour connaître le site d’appartenance d’un contrôleur de domaine :
Get-ADDomainController | Select-Object Name, Site
La sécurité...
Protocole LDAP
Parmi les protocoles qui structurent le fonctionnement d’Active Directory, LDAP (Lightweight Directory Access Protocol) occupe une place centrale. Standardisé dès 1993 (RFC 1487), et dont la version actuelle LDAPv3 est définie par la RFC 4511 depuis 2006, ce protocole a été conçu pour accéder de manière souple et performante aux services d’annuaires. Il s’agit d’un protocole de niveau application, optimisé pour les opérations de recherche, de consultation et de gestion d’objets hiérarchiques, tels qu’on les trouve dans un annuaire d’entreprise.
Dans le cas d’Active Directory, LDAP permet à des clients, qu’ils soient interactifs ou automatisés, d’interroger et de manipuler la base d’annuaire : recherche d’un utilisateur, récupération des membres d’un groupe, lecture des attributs d’un ordinateur, etc. Bien que Microsoft ait enrichi l’implémentation LDAP avec des extensions spécifiques, le cœur du protocole reste conforme aux standards, assurant ainsi une bonne interopérabilité avec les outils tiers et les systèmes non Windows.
L’étude des objets d’annuaire, des identifiants comme le Distinguished Name (DN), ainsi que de la structure logique d’Active Directory ayant déjà été abordés dans les sections précédentes, nous nous contenterons ici de rappeler leur usage fonctionnel dans le cadre des requêtes LDAP.
1. Une interface d’interrogation standardisée
LDAP est utilisé par de nombreux composants d’un environnement Windows : par les interfaces d’administration comme la console Utilisateurs et ordinateurs Active Directory, les scripts PowerShell, les services d’applications, mais aussi des systèmes externes qui doivent interroger ou synchroniser l’annuaire.
Il repose sur un modèle client/serveur. Le client établit une connexion avec un contrôleur de domaine, généralement sur le port :
-
389/TCP pour LDAP en clair (avec ou sans StartTLS).
StartTLS sécurise une connexion en deux temps : d’abord non chiffrée, elle est ensuite mise à niveau via une commande StartTLS, qui initie une négociation TLS pour chiffrer les échanges de données.
-
636/TCP pour LDAP sur SSL (LDAPS).
Une fois la connexion établie, le client peut :
-
s’authentifier (anonyme, simple, SASL) ;
-
définir une base de recherche (Base DN) : définit où commence la recherche dans l’arborescence ;
-
spécifier une portée (scope) : précise l’étendue (objet, enfants, récursif) ;
-
appliquer un filtre LDAP : spécifie les critères de sélection ;
-
lister les attributs : indique quels champs retourner pour chaque objet trouvé.
a. Authentification
LDAP prend en charge plusieurs méthodes d’authentification, appelées bind, qui définissent comment un client s’identifie auprès du serveur. Le bind anonyme permettait historiquement aux clients d’interroger certaines informations publiques du répertoire sans fournir d’identifiants. Il était couramment utilisé dans les premiers déploiements LDAP pour faciliter la découverte de services ou de structures d’annuaire. Toutefois, en raison des risques de sécurité associés (exposition d’informations sensibles, énumération d’objets, etc.), cette méthode est désormais désactivée par défaut dans les environnements Active Directory et rarement autorisée. Le simple bind, plus répandu, consiste à envoyer un nom d’utilisateur (sous la forme DN ou UPN) et un mot de passe au serveur. Si ce bind est effectué sans chiffrement, les informations d’identification transitent en clair, ce qui le rend vulnérable aux attaques de type « man-in-the-middle ». Il est donc recommandé de l’utiliser uniquement avec un canal sécurisé. Enfin, le SASL bind (Simple Authentication...
Mécanismes d’authentification
L’authentification est le processus par lequel un système vérifie l’identité d’un utilisateur ou d’un service. Dans un environnement Windows, cette étape conditionne l’accès aux ressources : fichiers, services, applications ou informations sensibles. Une authentification réussie débouche sur la création d’un jeton de sécurité qui représente les droits et privilèges associés à l’utilisateur.
Dans un domaine Active Directory, l’authentification s’étend au réseau et repose sur une infrastructure centralisée : les contrôleurs de domaine. Ceux-ci jouent le rôle d’autorité de confiance, en validant les identifiants des utilisateurs et en délivrant les tickets d’accès nécessaires aux interactions réseau.
1. Les mots de passe
Le mot de passe peut être stocké à différents endroits, en clair, chiffré ou haché, directement dans le programme d’authentification, dans un fichier ou dans une base de données. Un mot de passe est stocké en clair lorsqu’il est directement lisible. Il est chiffré lorsqu’il a subi certaines transformations pour être stocké sans être lisible. Les opérations inverses seront alors effectuées pour récupérer et vérifier le mot de passe. Enfin, un mot de passe est dit haché lorsque des opérations irréversibles ont été effectuées pour le stocker. À la vérification, ces mêmes opérations seront appliquées à la saisie de l’utilisateur. Le résultat (le condensat) sera alors comparé à ce qui est stocké. L’égalité garantit que le mot de passe saisi est le bon. Avec le hachage, la sécurité repose sur le fait que les transformations irréversibles ne donnent généralement pas deux résultats identiques pour deux mots de passe différents. Si c’est le cas, on parle de collision.
Le hachage est la méthode la plus couramment utilisée, car elle ne permet pas de retrouver le mot de passe à partir de l’information sauvegardée. Mais un autre problème se pose car l’utilisation d’un même mot de passe par deux utilisateurs fournira le même hachage. Un procédé appelé salage ajoute une séquence de bits non liée directement au mot de passe (par exemple un mot généré aléatoirement) avant le hachage. Cela permet d’éviter d’avoir des hachages identiques pour des mots de passe identiques.
Ainsi, la manière dont les mots de passe sont stockés et protégés conditionne directement le niveau de sécurité d’un système. Même avec des mécanismes robustes comme le salage et le hachage, les informations d’authentification doivent être gérées avec soin en mémoire et lors des échanges. C’est précisément le rôle du LSASS (Local Security Authority Subsystem Service) sous Windows, qui centralise et protège les secrets liés à l’authentification et à la gestion des identités.
2. LSASS
Windows ne se limite pas à un unique protocole d’authentification. Il propose une architecture modulaire s’appuyant sur un sous-système dédié, appelé LSASS, capable de déléguer les opérations d’authentification à une série de composants spécialisés appelés SSP (Security Support Providers).
L’ensemble de cette architecture est accessible via l’interface SSPI (Security Support Provider Interface), utilisée par toutes les applications et services Windows souhaitant authentifier un utilisateur. Cette interface permet aux applications de s’authentifier sans avoir à implémenter directement les protocoles d’authentification. Elle est l’équivalent Microsoft...
DNS (Domain Name System)
1. Introduction
Dans tout environnement réseau structuré, le DNS joue un rôle central. Il constitue le système d’adressage logique de l’Internet et des réseaux d’entreprise, traduisant des noms de domaine lisibles par l’homme (comme www.microsoft.com) en adresses IP exploitables par les machines. Sans DNS, la navigation web, la messagerie électronique et l’authentification dans un environnement Active Directory deviennent extrêmement limitées, manuelles, voire impossibles.
Le DNS repose sur une architecture hiérarchique, distribuée et résiliente. À son sommet se trouvent les serveurs racine, identifiés par une simple notation point (.), qui orientent les requêtes vers les serveurs de domaine de premier niveau (TLD), tels que .com, .org ou .fr. Ces derniers délèguent la gestion des domaines spécifiques à des serveurs autoritaires, désignés par les détenteurs de chaque nom de domaine.
Dans l’écosystème DNS public, deux acteurs clés participent à cette organisation : le registry et le registrar. Le registry est l’autorité technique qui gère un TLD donné, par exemple l’AFNIC pour .fr ou Verisign pour .com. Il maintient la base de données centrale des noms enregistrés et publie les serveurs faisant autorité. En parallèle, le registrar est un prestataire accrédité, comme OVH ou Gandi, qui vend et enregistre des noms de domaine pour le compte des utilisateurs. Lorsqu’un domaine est acheté, le registrar communique avec le registry pour l’ajouter à la base globale du DNS. Certains registrars proposent également un service d’hébergement DNS, prenant en charge la gestion technique de la zone du client.
Un processus de résolution DNS peut être récursif ou itératif. Dans le cas d’une résolution récursive, c’est le résolveur DNS (généralement fourni par l’opérateur ou l’entreprise) qui prend en charge l’intégralité de la chaîne de requêtes jusqu’à obtenir la réponse finale. À l’inverse, une requête itérative reçoit des redirections successives vers des serveurs de plus en plus spécifiques, jusqu’à atteindre le serveur autoritaire. Cette distinction est essentielle pour comprendre les flux réseau et diagnostiquer d’éventuels dysfonctionnements.
Le système DNS s’appuie sur des enregistrements structurés appelés Resource Records. Les plus courants sont les enregistrements A (adresse IPv4) et AAAA (adresse IPv6), mais d’autres types remplissent des fonctions cruciales : CNAME pour les alias, MX pour la messagerie, NS pour la délégation de zones, SRV pour la publication de services, PTR pour la résolution inverse, et TXT pour les vérifications...
Système de fichiers
Le système de fichiers est l’un des éléments essentiels de tout système d’exploitation. C’est lui qui détermine la manière dont les données sont organisées, stockées et récupérées sur les disques. Dans l’écosystème Microsoft, plusieurs systèmes de fichiers ont été développés, cependant NTFS (New Technology File System) est devenu le standard depuis plusieurs années.
Historiquement, les premières versions de Windows utilisaient FAT (File Allocation Table), décliné en FAT12, FAT16, puis FAT32, apprécié pour sa simplicité et sa compatibilité, notamment avec les systèmes embarqués et les périphériques amovibles. Cependant, le système FAT présente de nombreuses limitations, notamment en ce qui concerne la taille maximale des fichiers. Bien qu’exFAT ait été introduit par la suite, il partage certaines des mêmes lacunes que ses prédécesseurs, notamment l’absence de gestion avancée des permissions et de journalisation. Avec l’arrivée de Windows NT dans les années 1990, Microsoft introduit NTFS, qui reste encore aujourd’hui le système de fichiers privilégié sur les stations et serveurs.
NTFS apporte des fonctionnalités cruciales pour un environnement professionnel :
-
prise en charge de grands volumes (jusqu’à 8 Po théoriquement depuis Windows 10 1709) ;
-
gestion fine des permissions via le modèle ACL, indispensable pour le contrôle des accès dans un domaine Active Directory ;
-
journalisation, permettant de limiter les risques de corruption en cas d’arrêt brutal ou de panne ;
-
compression et chiffrement via EFS (Encrypting File System) intégrés nativement ;
-
support des points de montage et des liens symboliques, facilitant la gestion de l’arborescence ;
-
quotas disque pour contrôler la consommation d’espace par utilisateur.
Pour obtenir plus de détails sur les différences entre les systèmes de fichiers, vous pouvez consulter l’URL suivante : https://learn.microsoft.com/fr-fr/windows/win32/fileio/filesystem-functionality-comparison.
Un autre format, ReFS (Resilient File System), a été introduit avec Windows Server 2012, pensé pour les environnements de stockage modernes et les très gros volumes de données. ReFS met l’accent sur la résilience face aux corruptions, l’intégrité des données et l’optimisation pour les workloads de type Hyper-V ou les espaces de stockage. Toutefois, ReFS ne remplace pas NTFS pour les environnements Active Directory : il n’offre pas toutes les fonctions nécessaires, notamment les permissions héritées.
Dans un environnement Microsoft, il est important de comprendre que le système de fichiers ne se limite pas à l’organisation des données sur le disque. Il est étroitement intégré au modèle de sécurité Windows. Les permissions NTFS sont évaluées conjointement avec les autorisations de partage réseau, et l’interprétation finale des droits repose sur la combinaison la plus restrictive. Cela implique qu’un administrateur doit maîtriser à la fois la console de gestion de disques et l’Explorateur Windows (ou les outils PowerShell comme Get-ACL et Set-ACL) pour administrer efficacement les accès.
Enfin, dans le contexte Active Directory, NTFS joue un rôle clé dans l’hébergement des bases et fichiers critiques dans la mesure où la base NTDS.dit, qui contient les objets AD, est stockée sur un volume NTFS, tout comme les fichiers physiques du registre Windows situés dans C:\Windows\System32\config\. Ce registre contient notamment les hives SAM, SECURITY, SOFTWARE et SYSTEM, essentiels au fonctionnement de l’annuaire. Les dossiers SYSVOL, utilisés pour la réplication des stratégies de groupe, reposent eux aussi sur NTFS avec des ACL strictement définies....