Réinitialiser « krbtgt »

Le compte « krbtgt » dans Active Directory est un compte du domaine particulier qui est désactivé par défaut. Le mot de passe de ce compte est utilisé pour générer les tickets pour l'authentification Kerberos. Il ne faut donc surtout pas le supprimer. Néanmoins son mot de passe est lié à la sécurité et en plus il ne change jamais. Ce compte conserve par défaut les 2 derniers mots de passe dans son historique, donc si vous le modifiez les tickets générés avec l'ancien mot de passe restent valide, les nouveaux tickets utilisant le nouveau mot de passe.

La durée maximale par défaut d'un ticket kerberos est de 10 heures. La modification du mot de passe n'est pas une opération complexe mais elle demande un respect strict de certaines règles, sinon vous risquez d'invalidité tous les tickets en cours et donc de perturber votre environnement en fonctionnement. Lorsque vous modifier le mot de passe de ce compte il est important qu'il soit répliqué sur l'ensemble des contrôleurs de domaines avant d'être modifié une deuxième fois (il faut la modifier deux fois pour que l'ancien mot de passe ne puisse plus être utilisé dans des attaques).

Le script suivant vous permet de réinitialiser régulièrement le mot de passe et effectue les contrôles nécessaires en amont.

https://gallery.technet.microsoft.com/Reset-the-krbtgt-account-581a9e51/view/Discussions

Le script dispose de 3 modes :

  • 1 : mode d'information qui effectue juste des contrôles
  • 2 : mode simulation qui teste sans modifier le mot de passe
  • 3 : mode réinitialisation.

Le script n'étant pas signé vous devez d'abord autoriser l'exécution du script, par exemple avec la commande :

Set-execution policy unrestricted

 

Vous pouvez ensuite exécuter le script, en exécutant d'abord le mode « 1 ».

Si vous êtes sur une version française de Windows vous risquez de rencontrer des erreurs sur le test de connectivité RPC et sur le test de réplication.

En effet, la valeur vérifie le texte renvoyé par la version anglaise du produit.

 

Si vous effectuez manuellement le test  « rpcping », vous verrez qu'une réponse correcte ne contient pas le mot « completed ».

Vous devez modifier la ligne 62 en remplaçant « completed » par « *appels effectu‚s en* ».

If ($RpcPingResult -like "*appels effectu‚s en*") {Return (New-Object -TypeName PSObject -Property @{'Success'=$true; 'Message'="$Hostname - RPC connectivity successful."})}

Ainsi que la ligne 84 : « Successfully replicated object* » en « a ‚t‚ correctement r‚pliqu »

If ($RepAdminResult -like "*a ‚t‚ correctement r‚pliqu*") {Return (New-Object -TypeName PSObject -Property @{'Success'=$true; 'Message'="$ObjectDN - Successfully replicated from $SourceDC to $TargetDC."})}

 

Une fois cette modification effectuée votre script devrait fonctionner.

Réalisez l'étape 1 et vérifiez qu'il n'y a pas d'erreur.

Sur l'étape 2, vous allez devoir confirmer votre test avec « y »

Si tout est OK, vous pouvez utiliser l'étape 3 qui va réinitialiser le mot de passe.

Un avertissement vous informe que le mot de passe va être réinitialisé et un contrôle vérifiera la réplication avec les autres DC.

Il est possible de consulter le résultat de chaque étape dans le fichier log, créé au même emplacement que le script.

Enfin si vous essayez de modifier le mot de passe deux fois de suite, vous aurez un message d'erreur vous indiquant qu'il y a encore des tickets Kerberos avec l'ancien mot de passe. Vous devez attendre au moins 10 heures avant de procéder à une autre modification, afin de ne pas perturber l'activité.

 

Je vous conseille de lire la documentation fournit avec le script avant de modifier le mot de passe de ce compte.

Tags: 

Theme: 

Systeme: 

Annee: 

Commentaires

update

Bonjour,

Citation : "Vous devez modifier la ligne 62 en remplaçant « completed » par « *appels effectu‚s en* »."

PS P:\> RpcPing.exe -s mon-ad-01 -u 9 -a connect
1 appels effectués en 16 ms
62 T/S ou 16.000 ms/T

Il faut donc remplacer « *appels effectu‚s en* » en « *appels effectués en* »

Les tests passent.

Par contre, j'ai tout bon sur l'étape 1 et l'étape 2 Fail ...

J'ai le message suivant :
Single object replication failed to one or more writable domain controllers. All failures should be remediated before at tempting Mode 3.
One or more items failed. Resolve failures and retry.

Une aide ?

RE : update

Il y a apparemment une erreur détectée dans la réplication de votre annuaire entre les différents controleur de domaine. Utilisez dcdiag et repadmin /showrepl pour diagnostiquer le problème.

Bonjour,

Bonjour,
J'ai eu le même problème sur l'étape 2.
En testant le repadmin avec les variables extraites du script, il m'a été clairement signifié que le problème venait des droits utilisateur.
J'ai testé de nouveau en lançant le script avec un compte admin du domaine et tout s'est bien passé.
Bonne journée.