Changer votre mot de passe krbtgt et pourquoi c’est important

Le compte “krbtgt” est présent dans toutes les domaines Active Directory du monde. Il est désactivé par défaut et vous n’avez jamais eu à choisir le mot de passe. Il est généré aléatoirement et c’est donc tout à fait normal que vous ne connaissiez pas le mot de passe.

Key Distribution Center Service Account
Key Distribution Center Service Account

Pourquoi ce compte est-il important ?

Et bien c’est parce que le mot de passe de ce compte est utilisé dans le mécanisme Kerberos pour générer les tickets lors du processus d’authentification au sein de votre Active Directory. 🙂

Par défaut, ce compte conserve les 2 derniers mots de passe de son historique. Donc, si vous modifiez 1 seule fois le mot de passe de ce compte, l’ancien mot de passe demeure connu et tous les tickets Kerberos restent valides. Donc, lorsque l’on dit qu’on change le mot de passe krbtgt, on doit réaliser le changement à 2 reprises. 😉

Pour rappel, la durée de validité par défaut d’un ticket Kerberos est de 10 heures (dès lors que le compte utilisateur concerné n’est pas membre du groupe Protected Users).

Dans quels cas le changer ?

En cas de compromission de votre infrastructure Active Directory et pour éviter que votre infrastructure puisse être sujette aux attaques de type Golden Ticket.

Par défaut, il est recommandé de changer le mot de passe au moins une fois tous les ans mais certaines entreprises peuvent aller plus loin pour des questions de sécurité en le changeant tous les 6 mois voir 3 mois…

Pour info, sachez que si vous utilisez des RODC, le hash du mot de passe de ce compte n’est pas stocké sur les RODC de votre infrastructure. En effet, chaque serveur RODC dispose de son propre compte krbtgt (qu’il faut donc gérer de manière séparée).

Comment changer le mot de passe du compte krbtgt ?

Evidemment, le changement de ce mot de passe doit être effectué suivant un processus particulier car le changement impactera potentiellement tous vos comptes utilisateurs mais également tous les comptes de services qui pourraient être en train de fonctionner… 😉

Pour ce faire, je vous recommande d’utiliser le script suivant : https://gallery.technet.microsoft.com/Reset-the-krbtgt-account-581a9e51. Il n’est pas supporté officiellement par Microsoft mais il n’en est pas moins redoutablement efficace.

Exemple d’exécution

Par défaut, le script ne pourra probablement pas être exécuté au sein de votre environnement – en fonction de votre policy PowerShell – je vous laisse le soin de vérifier de votre côté.

Une fois téléchargé, il ne vous reste plus qu’à exécuter le script. Vous allez voir qu’il est très simple d’utilisation et c’est le meilleur moyen de changer le mot de passe de votre compte krbtgt.

Le script dispose de 3 modes de fonctionnement.

Changement du mot de passe krbtgt - 1
Changement du mot de passe krbtgt – 1
  • Le mode 1 permet de faire un statut de l’infrastructure Active Directory et de vérifier notamment la qualité de votre réplication. Assurez-vous d’avoir tous les tests “dans le vert” avant d’aller plus loin.
Changement du mot de passe krbtgt - 2
Changement du mot de passe krbtgt – 2
  • Le mode 2 vous permet d’exécuter le changement “pour de faux“. Il vous permettra de vous rendre compte de la durée de réplication au sein de votre infrastructure (ou convergence Active Directory).
Changement du mot de passe krbtgt - 3
Changement du mot de passe krbtgt – 3

Cela vous donne alors une idée de la durée nécessaire pour qu’un changement soit répliqué au sein de votre Active Directory. Evidemment, au sein de mon Lab forêt mono-domaine composé de 2 DC, la durée est évidemment très rapide. 🙂

Effectuer le changement pour de vrai

  • Dès que vous êtes prêt, exécutez le mode 3. Vous devrez confirmer votre choix en appuyant sur la touche “Y” de votre clavier.

Ce n’est pas une obligation mais je vous recommande également de procéder au changement depuis le DC qui porte le rôle FSMO de PDC Emulator.

Changement du mot de passe krbtgt - 4
Changement du mot de passe krbtgt – 4

Le changement a été exécuté avec succès pour la première fois au sein de votre infrastructure.

Si vous tentez d’exécuter à nouveau le script une seconde fois sans attendre, vous verrez le FAILED ci-dessous. Cela vous indique que vous n’avez pas attendu la durée minimum de 10 heures (dans mon cas) et que le 2nd changement risque d’invalider certains tickets Kerberos.

Changement du mot de passe krbtgt - 5
Changement du mot de passe krbtgt – 5

Une fois que vous aurez attendu ces quelques heures – ou plus simplement le jour suivant, il ne vous reste plus qu’à exécuter une seconde fois le script avec le mode 3 et vous aurez alors procédé au changement avec succès ! 🙂

Et si vous vous demandiez quel est le mot de passe de ce compte… sachez que vous n’avez pas besoin de le connaître. Il sera donc généré automatiquement avec un mot de passe complexe de 32 caractères. 🙂

Enfin, sachez également que lors de l’augmentation du niveau fonctionnel de votre domaine Active Directory, le mot de passe krbtgt est automatiquement changé.

Bannière principale – Photo par Shane Avery