Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
KRBUACBypass — Exploite les tickets Kerberos pour contourner l'UAC Windows et obtenir les privilèges SYSTEM en injectant un faux MachineID dans les tickets de service, en utilisant la technique tgtdeleg et l'accès SCM. | Kitploit
Outils/GitHubGitHub/wh0amitz/krbuacbypass
Escalade de PrivilègesExploitationTests d'IntrusionAuthentificationRed Teaming
GitHubwh0amitz/krbuacbypass

KRBUACBypass

Exploite les tickets Kerberos pour contourner l'UAC Windows et obtenir les privilèges SYSTEM en injectant un faux MachineID dans les tickets de service, en utilisant la technique tgtdeleg et l'accès SCM.

Voir le dépôt
51364il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Contexte

Ce POC s'inspire de James Forshaw (@tiraniddo) présenté à BlackHat USA 2022 dans une intervention intitulée « Taking Kerberos To The Next Level » (lien PDF). Il y a partagé une démonstration d'abus de tickets Kerberos pour contourner l'UAC. En ajoutant une entrée KERB-AD-RESTRICTION-ENTRY au ticket de service, mais en renseignant un faux MachineID, on peut facilement contourner l'UAC et obtenir les privilèges SYSTEM en accédant au SCM pour créer un service système. James Forshaw a expliqué le principe dans un article de blog intitulé « Bypassing UAC in the most Complex Way Possible! », ce qui m'a beaucoup intéressé. Bien qu'il n'ait pas fourni le code d'exploitation complet, j'ai construit un POC basé sur Rubeus. En tant qu'ensemble d'outils C# pour l'interaction brute avec Kerberos et l'abus de tickets, Rubeus offre une interface simple qui nous permet de lancer facilement des requêtes Kerberos et de manipuler les tickets Kerberos.

Vous pouvez consulter des articles connexes sur KRBUACBypass dans mon blog « Revisiting a UAC Bypass By Abusing Kerberos Tickets », qui incluent le principe général et la mise en œuvre. Comme indiqué dans l'article, celui-ci a été inspiré par l'intervention de @tiraniddo « Taking Kerberos To The Next Level » (je ne l'aurais pas fait sans son partage) et je l'ai simplement implémenté en tant qu'outil avant d'obtenir mon diplôme universitaire.

Astuce Tgtdeleg

Nous ne pouvons pas générer manuellement un TGT car nous ne possédons pas et n'avons pas accès aux identifiants de l'utilisateur actuel. Cependant, Benjamin Delpy (@gentilkiwi) a ajouté une astuce (tgtdeleg) dans son Kekeo qui permet d'abuser de la délégation non contrainte pour obtenir un TGT local avec une clé de session.

Tgtdeleg abuse de l'API GSS-API Kerberos pour obtenir les TGT disponibles pour l'utilisateur actuel sans nécessiter de privilèges élevés sur l'hôte. Cette méthode utilise la fonction AcquireCredentialsHandle pour obtenir le handle des informations d'identification de sécurité Kerberos pour l'utilisateur actuel, puis appelle la fonction InitializeSecurityContext pour HOST/DC.domain.com en utilisant le drapeau ISC_REQ_DELEGATE et le SPN cible afin de préparer un contexte de pseudo-délégation à envoyer au contrôleur de domaine. Cela provoque l'inclusion dans la sortie GSS-API du KRB_AP-REQ contenant le KRB_CRED dans le checksum de l'authentificateur. La clé de session du ticket de service est ensuite extraite du cache Kerberos local et utilisée pour déchiffrer le KRB_CRED dans l'authentificateur, ce qui permet d'obtenir un TGT utilisable. L'ensemble d'outils Rubeus intègre également cette technique. Pour plus de détails, consultez « Rubeus – Now With More Kekeo ».

Avec ce TGT, nous pouvons générer notre propre ticket de service, et le processus opérationnel possible est le suivant :

  1. Utiliser l'astuce Tgtdeleg pour obtenir le TGT de l'utilisateur.
  2. Utiliser le TGT pour demander au KDC de générer un nouveau ticket de service pour la machine locale. Ajouter une entrée KERB-AD-RESTRICTION-ENTRY, mais en renseignant un faux MachineID.
  3. Soumettre le ticket de service dans le cache.

Krbscm

Une fois que vous possédez un ticket de service, vous pouvez utiliser l'authentification Kerberos pour accéder aux pipes nommés du Service Control Manager (SCM) ou au TCP via les SPN HOST/NOMHOTE ou RPC/NOMHOTE. Notez que l'API Win32 du SCM utilise toujours l'authentification Negotiate. James Forshaw a créé un POC simple : SCMUACBypass.cpp, en hookant les deux API AcquireCredentialsHandle et InitializeSecurityContextW pour remplacer le nom du package d'authentification appelé par SCM (pszPack age ) par Kerberos, afin que le SCM utilise Kerberos lors de l'authentification locale.

Pour plus de détails, veuillez lire :

  • Pour EN-US : https://whoamianony.top/posts/revisiting-a-uac-bypass-by-abusing-kerberos-tickets/
  • Pour ZH-CN : https://paper.seebug.org/3003/

Voyons-le en action

Regardons maintenant l'effet en action, comme illustré ci-dessous. Tout d'abord, demandez un ticket pour le service HOST du serveur actuel via la fonction asktgs, puis créez un service système via krbscm pour obtenir le privilège SYSTEM.

root@kitploit:~
KRBUACBypass.exe asktgs
KRBUACBypass.exe krbscm

Animation

Télécharger l’outil