Krbtgt

Krbtgt est un compte critique d’infrastructure dans la sécurité Active Directory, tout simplement !

Il s’agit d’un un compte built-in présent dans tout annuaire Active Directory, situé au niveau du chaque domaine et enfin porté par les contrôleurs en lecture/écriture.

Par défaut, son statut est désactivé, le mot de passe associé est inconnu dans la mesure où il est généré aléatoirement et enfin il historise les deux derniers mots de passe.

Krbtgt est particulier, important et stratégique, puisque son mot de passe est utilisé dans le mécanisme du protocole Kerberos pour générer les tickets, au niveau du KDC, lors des processus d’authentification au sein de l’annuaire Active Directory.
Précisément, le hash du mot de passe du compte krbtgt est utilisé pour crypter et signer tous les tickets Kerberos.

Par rapport à l’historisation évoquée, une unique modification du mot de passe du compte krbtgt est insuffisante. C’est inefficace puisque l’ancien mot de passe demeure connu, donc effectif et valable dans ce cas, faisant que tous les tickets Kerberos déjà émis restent valides.

Par rapport au risque de compromission de l’annuaire Active Directory, la recommandation est de changer deux fois le mot de passe du compte krbtgt. Cela, dans le but d’éviter que celui-ci puisse être sujet aux attaques baptisées Golden Ticket.

D’une façon générale, pour des questions de sécurité et de prévention, il est recommandé de changer régulièrement ce mot de passe ; comme par exemple, tous les six mois en laissant au moins dix heures entre les deux changements requis.
Lors du premier changement, il faut laisser le temps au système de cacher (au sens mise en cache) l’ancien hash pour assurer la réplication vers l’ensemble des contrôleurs de domaine.
La recommandation de l’ANSSI quant à elle est de changer le mot de passe krbtgt tous les 40 jours. Aussi, ajustez votre cadence de changement selon la taille de votre infrastructure d’une part et selon la capacité de vos équipes.

Cette modification du mot de passe reste une opération simple et élémentaire. Elle demande toutefois une certaine organisation ainsi que le respect de certaines règles. Le risque que vous encourez est d’invalider tous les tickets en cours en cas de changement successif trop rapide. Ceci déstabilisera votre infrastructure en cassant l’authentification Kerberos.
Pour rappel, la durée maximale par défaut d’un ticket Kerberos est de 10 heures, pour l’ensemble des comptes en dehors du groupe « Protected Users« .

Enfin, les contrôleurs de domaine de type RODC (en lecture seule) ont chacun leur propre compte krbtgt avec la convention de nommage suivante : krbtgt_xxxxx. Par analogie, il est utilisé pour crypter et signer les tickets Kerberos sur leurs propres sites. Chaque RODC a un compte krbtgt spécifique pour garantir une isolation cryptographique.

Le compte krbtgt ne doit pas être supprimé.

 

Thierry Adrian, août 2020