Actuellement, nous travaillons sur un test de sécurité interne mensuel qui, entre autres, devrait contenir une vérification de la force réelle du mot de passe que les utilisateurs choisissent. Pour cette raison, je souhaite extraire les hachages de mot de passe de tous les utilisateurs via LDAP. Tout ce que j'ai trouvé était cette discussion technet me disant que je ne peux pas extraire les hachages même pas en tant qu'administrateur, ce que je ne peux vraiment pas (ne veux pas) croire.
Existe-t-il un moyen d'extraire les hachages de mot de passe d'un serveur Active Directory?
Ce que nous voulons faire est d'extraire les hachages bien que nous puissions lancer une attaque syllabique contre eux pour vérifier si les mots de passe sont vraiment ou simplement techniquement bons.
Vous devez obtenir le NTDS.DIT
fichier binaire sur %SystemRoot%\ntds
.
Vous pouvez utiliser ntdsutil
pour créer un instantané de la base de données AD afin de pouvoir copier NTDS.DIT
.
Ensuite, vous pouvez utiliser quelque chose comme l'outil de récupération de mot de passe Windows pour extraire les hachages.
https://technet.Microsoft.com/en-us/library/cc753343.aspx
https://technet.Microsoft.com/en-us/library/cc753609 (WS.10) .aspx
Vous n'avez pas besoin de traiter le fichier DIT pour acquérir des hachages depuis AD ou AD LDS, il existe également un accès au protocole.
Même si un LDAP-reads régulier sur l'attribut "userpassword" (comme vous pouvez le faire sur d'autres produits d'annuaire) sera toujours complètement bloqué dans AD, il existe une autre façon officielle de lire les hachages depuis AD ou AD LDS et il est officiellement là depuis à Server 2003. Vous devez utiliser une autorisation d'accès AD spéciale (DS-Replication-Get-Changes-All) et un protocole Microsoft officiellement documenté (le protocole de réplication AD). Ce n'est pas un secret interne de Microsoft, même des implémentations tierces existent, par exemple: https://www.dsinternals.com/en/retrieving-active-directory-passwords-remotely/ (bien que ce lien surfasse un peu, en prétendant qu'il s'agit d'un piratage) - Vous ne piratez pas le protocole AD ou LDAP avec cela, vous accordez manuellement un privilège AD au préalable qui n'est pas là par défaut.
Une utilisation légitime de ce privilège DS-Replication-Get-Changes-All est par exemple la synchronisation de mot de passe Microsoft Asure AD - il synchronise les mots de passe AD de votre entreprise avec les mots de passe cloud Azure en transférant les hachages. vous avez besoin d'un privilège LDAP spécial attribué à un compte AD pour cela, qui s'appelle "DS-Replication-Get-Changes-All" https://msdn.Microsoft.com/en-us/library/windows/ desktop/ms684355 (v = vs.85) .aspx
Différenciation: Le contrôle DIRSYNC peut également être utilisé avec un autre privilège légèrement différent appelé "DS-Replication-Get-Changes" (sans le "-Tout" à la fin). Le privilège sans "-Tout" à la fin ne peut pas extraire les données de hachage de mot de passe sensibles (Il existe des produits de synchronisation de données d'annuaire commerciaux, comme Microsoft MIIS/ILM/FIM/MIM qui s'appuient sur ce privilège. Également les contrôleurs de domaine de type READONLY pour DMZ usage utilise le privilège sans le "-Tout")
Les DLL de filtrage de mot de passe ou les installations PCNS sur les contrôleurs de domaine n'utilisent pas ces deux privilèges et n'accordent pas non plus l'accès aux hachages AD stockés. Ils permettent simplement de transmettre un mot de passe (au moment où il est modifié par l'utilisateur) à une cible de traitement externe qui définira ensuite le même mot de passe sur les systèmes tiers de votre entreprise.
Bien qu'une DLL/PCNS de filtre de mot de passe ne puisse synchroniser les mots de passe modifiés par l'utilisateur qu'une fois la solution de filtrage/PCNS déployée, la Relication avec DS-Replication-Get-Changes-All peut également synchroniser les hachages de mot de passe AD qui existaient avant le déploiement de la solution de synchronisation.
Ni les deux privilèges ne sont mauvais. Cela pourrait bien sûr être très problématique s'il est utilisé avec négligence. Mais il en va de même pour les modifications imprudentes de l'ACL dans votre AD, accordant un accès distant étendu à votre AD, autorisant les administrateurs de domaine et de schéma à n'importe qui et ainsi de suite ... C'est une porte ouverte, si vous l'ouvrez. Si vous n'en avez pas besoin, n'ouvrez pas cette porte. Et si vous ouvrez cette porte, durcissez-la correctement, de sorte que seul l'invité prévu puisse entrer dans cette porte pour toucher vos pièces précieuses.
Par conséquent, les analyses de rentabilisation habituelles de ce mécanisme de lecture de mot de passe de hachage à partir d'AD consistent à synchroniser les hachages AD avec d'autres systèmes d'authentification légitimes ou à migrer les hachages AD de l'entreprise existante vers un autre répertoire d'authentification tiers. (Dans les deux cas, l'autre système doit cependant être capable de comprendre les hachages à des fins d'authentification)
Donc, tout ce raisonnement est un peu fou. L'audit de l'exactitude du mot de passe après coup est une mauvaise idée (car vous avez besoin soit du mot de passe d'origine, soit d'un hachage faible qui peut effectivement être déposé en arc-en-ciel), et l'écriture de services ou d'outils pour extraire les hachages faibles est sujette à de graves erreurs ou dangers. Plus important encore, c'est une surpuissance et un gaspillage de cycles et de ressources.
La meilleure solution consiste à simplement utiliser un filtre de mot de passe et à vérifier que les changements de mot de passe répondent aux exigences minimales avant de permettre à l'utilisateur d'effectuer réellement le changement. Ensuite, expirez tous les mots de passe si vous voulez vraiment garantir la complexité (bien que cela puisse ennuyer certaines personnes).
Pour extraire les mots de passe à distance, la meilleure solution consiste à utiliser les techniques DC SYNC (DRSUAPI). Les contrôleurs de domaine utilisent ce protocole pour synchroniser les informations entre elles. Si vous disposez des informations d'identification d'administrateur de domaine, vous pouvez utilisez ce protocole pour récupérer tous les hachages du contrôleur de domaine. Il existe deux outils simples pour ce faire:
Pour Windows: Mimikatz ( https://github.com/gentilkiwi/mimikatz )
Instructions d'utilisation et aperçu: https://adsecurity.org/?p=1729
Pour Linux: Impacket, en particulier l'exemple de script secretsdump.py ( https://github.com/CoreSecurity/impacket )
Instruction pour son utilisation: https://room362.com/post/2015/using-domain-controller-account-passwords-to-hashdump-domains/