Comment les identifiants de domaine Active Directory mis en cache sont-ils stockés sur un client Windows ? Sont-ils stockés dans la base de données SAM locale, les rendant ainsi susceptibles aux mêmes attaques par tables arc-en-ciel que les comptes utilisateur locaux, ou sont-ils stockés différemment ? Notez que je sais qu’ils sont salés et hachés, donc pas stockés en texte clair, mais sont-ils hachés de la même manière que les comptes locaux et sont-ils stockés au même endroit ?
Je réalise qu’au minimum, ils seraient susceptibles à une attaque par force brute, mais c’est une bien meilleure situation que d’être vulnérable aux tables arc-en-ciel en cas de vol de machine.
Les identifiants mis en cache pour un domaine AD sont en fait des doubles hachages salés du mot de passe et sont stockés dans la ruche de registre HKLM\Security. L’emplacement du fichier de la ruche est : %systemroot%\System32\config\SECURITY
Seul l’utilisateur « system » a accès aux clés de registre :
HKLM\Security\Cache\NL$n où n est un index de 1 au nombre maximum d’identifiants mis en cache.
Vulnérabilité aux attaques
De WinNT à WinXP, les hachages « Lan Manager » étaient utilisés pour les comptes locaux, qui sont facilement cassables sur du matériel moderne. Le cassage prend généralement plusieurs minutes (j’ai récemment cassé 3 mots de passe en 00:08:06) avec juste un ordinateur de bureau « normal ». Les hachages Lan Manager ne sont pas salés, il existe donc aussi des tables arc-en-ciel publiquement disponibles.
Vista et les versions ultérieures utilisent des hachages NT pour les comptes locaux. Windows 2000 et les versions ultérieures utilisent des hachages NT pour les comptes de domaine également. Les hachages NT sont des doubles hachages MD4 salés. Le sel par entrée empêche l’utilisation de tables arc-en-ciel, mais MD4 peut être exécuté très rapidement sur du matériel moderne : environ 6 années de calcul pour un mot de passe de 60 bits. Avec de la chance et un cluster de 6 GPU, un attaquant peut casser ce type de mot de passe en environ 6 mois. En passant au cloud, environ 35 000 $ sur Amazon EC2 GPU — selon la disponibilité, cela pourrait prendre quelques heures.