28/12/2024

Active DirectoryAstuces

Astuce Windows : comment renouveler les tickets Kerberos sans fermer la session d’un utilisateur ?

I. Présentation

Dans ce tutoriel, nous allons découvrir une astuce très pratique pour forcer la suppression des tickets Kerberos, ainsi que l'obtention de nouveaux tickets Kerberos afin de pouvoir s'authentifier auprès de ressources sans fermer et rouvrir sa session.

L'authentification Kerberos est utilisée comme méthode privilégiée en environnement Active Directory, tandis que le NTLM est utilisée uniquement dans certains scénarios et en tant que solution de fallback pour l'authentification. Lorsque l'authentification est effectuée via Kerberos, vous recevez un ou plusieurs tickets d'authentification par l'intermédiaire du Centre de distribution de clés Kerberos (KDC).

Ensuite, ces tickets que l'on appelle les TGT (Ticket Granting Ticket) peuvent être utilisés pour vous authentifier auprès de ressources, et ainsi obtenir des tickets de service appelés TGS (Ticket Granting Service).

Chaque machine et chaque utilisateur peut disposer de ses propres tickets. Néanmoins, les tickets Kerberos contiennent la liste dont est membre l'utilisateur, mais cette liste, et donc ces permissions, ne sont pas "dynamiques".

Ainsi, si un utilisateur ouvre une session et que des permissions lui sont ajoutées après coup (par exemple : utilisateur ajouté dans un nouveau groupe de sécurité), alors il ne pourra pas accéder à la ressource en question. Il sera contraint de fermer et rouvrir sa session pour bénéficier des nouvelles permissions, avec de nouveaux tickets. Pour les permissions liées à la machine, cela passe par un redémarrage (ce qui peut être contraignant !).

Une astuce consiste à utiliser l'outil en ligne de commande "klist" pour purger les tickets Kerberos. C'est que nous allons voir dans ce tutoriel.

Remarque : cette méthode s'applique autant à Windows 10, Windows 11 que Windows Server.

II. Purger les tickets Kerberos avec klist

Avant de purger les tickets Kerberos, vous pouvez lister ceux actuels. Pour cela, ouvrez une Invite de commande ou une console PowerShell, puis saisissez cette commande :

klist sessions

Voici un exemple de résultat :

Nous pouvons constater qu'il y a plusieurs sessions, certaines correspondent à la machine, d'autres à des services et d'autres à un utilisateur. En l'occurrence ici, l'utilisateur "IT-Connect\Administrateur".

Ensuite, vous avez le choix entre purger les tickets Kerberos de l'utilisateur ou de la machine.

A. Purger les jetons Kerberos de la machine

Les jetons de la machine sont toujours associés au LogonId "0x3e7". Ainsi, nous pouvons obtenir des détails supplémentaires sur les jetons de la machine via cette commande :

klist -li 0x3e7

Ensuite, nous pouvons purger l'ensemble de ces jetons :

klist -li 0x3e7 purge

Vous obtiendrez un message de confirmation similaire à celui-ci :

LogonId est 0:0x6a52d
LogonId ciblé est 0 :0x3e7
        Suppression de tous les tickets :
        ticket(s) supprimé(s) !

B. Purger les jetons Kerberos de l'utilisateur

Bien souvent, ce sont les jetons Kerberos de l'utilisateur que l'on cherche à supprimer et à régénérer afin d'actualiser ses permissions. Ceci évite d'avoir à quitter sa session, et donc à fermer toutes ses applications...

La commande que vous devez retenir, c'est celle-ci :

klist purge

Cela va purger l'ensemble des tickets Kerberos pour l'utilisateur. Cette fois-ci, le message dans la console fait bien référence au LogonId de votre compte utilisateur :

LogonId est 0:0x6a52d
        Suppression de tous les tickets :
        ticket(s) supprimé(s) !

Qu'il soit question des jetons Kerberos de la machine ou de l'utilisateur, comment en obtenir de nouveaux ? Pour cela, vous devez simuler une action d'authentification sur une ressource. Vous pouvez vous connecter à un partage SMB, ou tout simplement mettre à jour les GPO sur la machine : c'est un moyen simple d'obtenir de nouveaux tokens.

Voilà, le tour est joué ! Pratique, n'est-ce pas ?

III. Conclusion

La commande klist dispose d'autres options, que vous pouvez tout à fait explorer via la ligne de commande ou depuis la documentation Microsoft. Néanmoins, dans de nombreux cas, c'est surtout la commande "klist purge" qui est utilisée, car elle est pratique et évitera parfois le mécontentement des utilisateurs finaux.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.