Introduction à l'Active Directory

A la base de tout réseau d’entreprise se trouve un domaine Active Directory. Dans cet article j’essayerai d’expliquer assez rapidement ce que c’est et surtout ce qu’on y trouve.

I/ Introduction à l’Active Directory

Selon Wikipédia (oui parce que je n’ai pas trouvé de meilleur définition que la leur….) :

Active Directory (AD) est la mise en œuvre par Microsoft des services d’annuaire LDAP pour les systèmes d’exploitation Windows.

Active Directory c’est surtout un ensemble de fonctionnalités (authentification, partage de ressources, installation de mises à jour, ou encore déploiement de règles de sécurité) qui permettent de simplifier la gestion des ressources sur un réseau pour les administrateurs.

Lors de la création d’un domaine Active Directory, le serveur sur lequel on l’a créé devient ce que l’on appelle un Domain Controller (DC). Ce DC est la pièce maîtresse de l’Active Directory. S’il est compromis ou n’est plus joignable alors le domaine est inutilisable.

Suivant la version de Windows Server utilisée par le Domain Controller on va pouvoir déterminer le niveau fonctionnel du domaine. En fait c’est simple, si le DC fonctionne sous Windows Server 2012 alors le niveau fonctionnel du domaine Active Directory est Windows Server 2012. Ce niveau fonctionnel, on peut l’upgrader (passer sous Windows Server 2016 par exemple) mais pas le downgrader (passer sous Windows Server < 2012). En revanche les versions Server 2012/2016 sont compatibles avec Windows Server 2008/R2 et autres (par exemple).

Active Directory est une suite de cinq rôles différents :

  • Active Directory Domain Services (AD DS)
  • Active Directory Certificate Services (AD CS)
  • Active Directory Federation Services (AD FS)
  • Active Directory Right Management Services (AD RMS)
  • Active Directory Lightweight Directory Services (AD LDS)

Le plus important de tous, c’est Active Directory Domain Services (plus communément appelé AD DS ou tout simplement AD). Ce rôle va nous permettre de gérer nos ressources (utilisateurs, ordinateurs, groupes etc…). Pour cela on va disposer d’une suite d’outils d’administrations dont le plus important est « Utilisateurs et ordinateurs Active Directory ». Voici un aperçu :

azVad1.png

Grâce à cet outil on va pouvoir lister la totalité des utilisateurs/groupes et des ordinateurs/serveurs du domaine Active Directory. Par exemple ici on peut voir les attributs de l’utilisateur Administrateurs :

vH0ad2.png

Si c’est vide, c’est tout simplement parce que -par pure flemme- je n’ai pas complété les informations du compte. Dans mon cas ce n’est pas trop trop grave vu qu’il n’y a que trois comptes sur mon laboratoire Active Directory mais ça peut devenir très vite embêtant sur un vrai domaine ! Donc n’oubliez pas de compléter les informations quand vous créez des comptes  !

Toutes les informations que l’on peut voir via cet outil sont stockées dans une base de données appelée NTDS.dit. Ce fichier est trouvable dans le répertoire C:\Windows\NTDS\ du DC :

ns6ad4.png

NTDS.dit c’est un peu le saint Graal de tous les pentesters, le trophée final qui montre que le domaine a été totalement compromis. En effet pour pouvoir dumper cette base de données il faut avoir les droits Administrateur du domaine et avoir compromis le DC (ce qui implique que vous avez déjà bien explosé le domaine !) :

2.png

Quand on joint un ordinateur à un domaine, on indique juste à cet ordinateur que désormais l’autorité d’authentification est le domain controller et non plus le processus lsass. Par conséquent quand vous allez vous connecter à un ordinateur connecté à un domaine, vos identifiants seront « envoyées » au domain controller et lui, et lui seul, validera, ou non, l’authentification.

Enfin bref, il y a pleeeeeeeeeeeeeeeeins de trucs à voir sur le fonctionnement d’un domaine Active Directory donc on y reviendra plus tard dans d’autres article. Pour le moment on va juste jeter un coup d’œil aux notions de forêt, d’arbre et de domaine.

II/ Forêt, arbre et domaine

On parle de « domaine Active Directory » lorsque plusieurs ressources (utilisateurs, imprimantes, ordinateurs, services) partagent les informations d’un même annuaire et utilisent une méthode d’authentification commune. Par convention on représente un domaine par un triangle. Ci-dessous nous avons donc le domaine whiteflag.fr :

huXad5.png

Suivant la taille des entreprises il peut arriver qu’un seul domaine soit trop contraignant à gérer. Imaginez une très grande entreprise qui emploie plusieurs milliers de personnes dans le monde. Il serait très compliqué de gérer toutes ces ressources sur un seul domaine. A la place, on va pouvoir découper ce domaine en plusieurs sous domaines que l’on appelle plus communément des domaines enfants

Par exemple, on pourra créer trois domaines enfant : un pour l ‘Europe, un pour l’Asie et un pour l’Amérique :

ek5ad6.png

En faisant ça, on vient de créer un arbre ! Un arbre, c’est tout simplement un domaine lié à plusieurs domaines enfants. Notez que les domaines enfants et le domaine principale ont tous la même racine DNS : whiteflag.fr.

De la même manière, si on lie deux arbres différents entre eux, on va créer ce qu’on appelle une forêt ! Par exemple, si en plus des domaines enfants, l’entreprise décide d’acheter une autre entreprise qui dispose elle même d’un domaine (disons blackflag.fr) et qu’elle désire lier les deux domaines alors on aura ceci :

D9yad7.png

Alors pourquoi ferait-on ce genre de raccord ? Eh bien tout simplement parce que dans une forêt, tous les domaines/arbres se font confiance les uns les autres. C’est ce qu’on appelle le « two way transitive trusts« .

Par conséquent un utilisateur du domaine whiteflag.fr pourrait très bien se connecter à un serveur du domaine blackflag.fr. De plus, tous les domaines d’une forêt partage un même catalogue global. Ce catalogue contient tous les objets de la forêt (donc dans notre cas de nos deux domaines) mais ne contient pas tous les attributs de tous nos objets. L’idée du catalogue global c’est d’avoir une idée globale des objets présents dans la forêt sans pour autant avoir une base de données gigantesque.

En revanche, les domaines/arbres présents dans une même forêt sont indépendants et n’ont pas la même racine DNS.