Active Directory Hold-up ... give me all the information ... i'm "Authenticated Users" (Part 1)

Pourquoi parler du groupe "Authenticated Users" ?

Si vous posez la question "Quel compte AD est le plus susceptible d'être compromis lors d'une intrusion ?", il y a de fortes chances que la réponse la plus populaire soit "un compte Domain Admins". Il va de soi qu'un compte membre du groupe "Domain Admins" soit ciblé en priorité, car il offre la clé du château Active Directory ainsi que le contrôle quasi total de vos infrastructures.

Mais comme dans toute bonne offre d'achat de château qui se respecte, il peut être nécessaire de visiter et d'inspecter tous les racoins de ce dernier avant d'en prendre possession officiellement.

Je crains que beaucoup d'administrateurs AD ne soient pas à l'affût de ce fait, mais c'est exactement ce que le groupe "Authenticated Users" offre à ses clients ... un droit de visite complet de l'AD d'un domaine. (Ainsi que de la forêt si on cible un Global Catalog)

Comme son nom l'indique, le groupe "Authenticated Users" contient par défaut TOUS les utilisateurs authentifiés d'un domaine. Ceci inclut les comptes de services réseau, les comptes génériques « autologon » dans les salles de réunions, les comptes de consultants, le compte des partenaires en accès VPN, les comptes de tests compromis avec un mot de passe « Qwerty123 » ... bref vous comprenez le principe ;)

Donc la logique veut que tous les usagers authentifiés au domaine aient accès à tous les objets AD en lecture seule à l'exception de certains attributs protégés comme les mots de passe. Veuillez noter que dans les cas suivants, cet accès en lecture seule est aussi disponible aux usagers anonymes (non authentifiés) :

  • AD Windows 2000
  • AD Windows 2003 (mise à niveau d'AD Windows 2000)
  • AD Windows 2003 avec activation du mode compatibilité  AD Windows 2000


Si pour vous, Active Directory représente seulement un service d'authentification contenant des usagers et des mots de passe, vous êtes dans l'erreur. La définition officielle du service Active Directory selon Microsoft founit un excellent sommaire du type d'information qu'il contient :

"Active Directory Domain Services, is the central location for configuration information, authentication requests, and information about all of the objects that are stored within your forest. Using Active Directory, you can efficiently manage users, computers, groups, printers, applications, and other directory-enabled objects from one secure, centralized location."

Maintenant que vous avez une meilleure idée du type d'information disponible dans un AD, vous êtes en droit de vous demander comment prévenir cet accès trop permissif.  Actuellement, il n'y a pas vraiment de solution, seulement des suggestions très limitées visant à  contrôler l'information :

  • Éviter les commentaires et descriptions trop détaillées lors de la création de comptes utilisateurs et ordinateurs.
  • Marquer certains attributs comme "confidentiel" en éditant le schéma AD  (http://support.microsoft.com/kb/922836)


Fin de la théorie … place à l’exemple !

Disons qu'un utilisateur de votre domaine soit compromis suite à une attaque par social engineering "Java Signed Applet" (ok vous me direz peut-être qu'en partant, le scénario ne s'applique pas à vous, car tous vos utilisateurs sont sensibilisés à ce type d'attaque et ne cliquent jamais "yes" quand un popup Java apparaît ... si c'est le cas ... good for you ;)

L'attaquant possède un accès au poste client dans le contexte d'un simple utilisateur authentifié (donc membre du groupe Authenticated Users). Avant de partir en grand avec un scan Nmap pour trouver des serveurs et faire un maximum de bruit sur le réseau, il peut demander à AD la liste des postes/serveurs à l'aide d'une requête ldap ... aucun bruit sur le réseau et beaucoup d'informations.

dsquery * -filter (objectclass=computer) -attr cn description operatingsystem operatingsystemservicepack operatingsystemversion


Wow !!! Une simple requête ldap pour obtenir la liste de tous les serveurs/postes du domaine avec leur description et une version précise de leur système d’exploitation. Notre intrus possède maintenant des détails assez pertinents lui permettant de planifier la suite de ses attaques en vue d’étendre son contrôle sur votre environnement.

Si vous désirez faire le test et que vous n'êtes pas un LDAP-fu master, vous pouvez utiliser ADexplorer de la suite d'outils Sysinternals de Microsoft. Il s'agit d'un client LDAP puissant et simple d'utilisation qui tient dans un simple exécutable sans installation. (Pratique sur un poste restreint sans droit d’installation)

Voici la procédure de connexion AD « for dummies » avec ADexplorer:

  • Télécharger ADexplorer (http://live.sysinternals.com/ADExplorer.exe)
  •  Assurez-vous d'être authentifié à votre domaine (en tant qu’usagé non admin)
  •  Exécuter ADexplorer.exe
  •  Cliquer OK sans entrer de valeur dans la boîte de dialogue "Connect to active directory"
  • La connexion à AD s’effectue avec votre usager en cours


Vous devriez voir apparaître l'arborescence complète de votre AD. Votre ticket d'entrée était valide!!! Vous pouvez maintenant commencer la visite de votre château en vous promenant dans l'arborescence ldap. Lorsque vous sélectionnez un objet dans la section de gauche, vous pouvez voir tous les attributs disponibles ainsi que leurs valeurs dans la section de droite.

Je vous laisse donc vous familiariser avec le concept jusqu'au prochain article où il y aura moins de théorie et plus d'AD Enumeration Kung Fu.

Stay tuned !!!