Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
tgt-monitor-bof — Async BOF pour extraire ou renouveler automatiquement les TGTs Kerberos sur un système cible. | Kitploit
Outils/GitHubGitHub/jakobfriedl/tgt-monitor-bof
Mouvement LatéralPost-ExploitationTests d'IntrusionAuthentificationRed TeamingDéveloppement de Charges Utiles
GitHubjakobfriedl/tgt-monitor-bof

tgt-monitor-bof

Async BOF pour extraire ou renouveler automatiquement les TGTs Kerberos sur un système cible.

Voir le dépôt
1341014il y a 2 moisVé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

Surveillance et renouvellement automatique des TGT Kerberos

Ce dépôt contient deux fichiers objets de beacon asynchrones (BOF). Le premier, tgt-monitor, surveille le système pour les événements d'ouverture de session Kerberos et réveille l'agent dès qu'un nouveau TGT Kerberos est capturé. Similaire à la commande monitor de Rubeus, ce BOF s'exécute indéfiniment et vérifie périodiquement le cache de tickets LSA du système. Lorsqu'un nouveau TGT est détecté, il imprime les métadonnées du ticket et produit un blob kirbi encodé en base64 qui peut être utilisé pour un mouvement latéral via des attaques pass-the-ticket. Le second, tgt-renew, renouvelle automatiquement les TGT du système si leur durée de vie restante est inférieure à un seuil spécifié (par exemple, 15 minutes).

[!Important] Les BOF de ce dépôt nécessitent des capacités de chargement de fichiers objets asynchrones. Une telle fonctionnalité est fournie par le framework Conquest.

  • Surveillance et renouvellement automatique des TGT Kerberos
    • Comment ça fonctionne
      • Surveillance des tickets
      • Renouvellement des tickets
    • Utilisation
      • tgt-monitor
      • tgt-renew
    • Installation
    • Remerciements

Comment ça fonctionne

Les deux BOF nécessitent d'être exécutés depuis un contexte NT AUTHORITY\SYSTEM. Les privilèges sont vérifiés selon la même logique.

  1. Le BOF vérifie le jeton du processus actuel pour l'accès SYSTEM.
  2. Si le jeton du processus n'est pas SYSTEM, le BOF parcourt tous les threads du processus actuel à la recherche d'un jeton d'emprunt avec privilèges SYSTEM et le duplique. Cela permet l'utilisation à partir d'un processus agent de faible intégrité qui a volé un jeton SYSTEM (par exemple via SeImpersonatePrivilege). Le BOF se termine si cela ne donne pas non plus un accès de niveau SYSTEM.
  3. Les handles du package d'authentification LSA et Kerberos sont récupérés.

Les étapes ci-dessous sont répétées en boucle jusqu'à ce que le BOF soit annulé via l'événement d'arrêt. Un intervalle défini par l'utilisateur définit le délai entre les sondages.

Surveillance des tickets

  1. Toutes les sessions d'ouverture de session actives sont énumérées. Pour chaque session, le cache de tickets Kerberos est interrogé et filtré pour les TGT. Si un argument --user a été fourni, seules les sessions correspondant à ce nom d'utilisateur sont prises en compte.
  2. Le cache de tickets actuel est comparé à l'instantané précédent. Les nouveaux TGT déclenchent l'impression des métadonnées et la sortie kirbi encodée en base64, suivie d'un appel à BeaconWakeup() pour forcer l'agent à se signaler et renvoyer la sortie.

Workflow du moniteur TGT

Renouvellement des tickets

  1. Toutes les sessions d'ouverture de session actives sont énumérées. Pour chaque session, le cache de tickets Kerberos est interrogé et filtré pour les TGT. Si un argument --user a été fourni, seules les sessions correspondant à ce nom d'utilisateur sont prises en compte.
  2. Chaque TGT est vérifié selon deux conditions :
    • Si le ticket a dépassé son heure RenewUntil, il est marqué comme expiré et une ré-authentification est nécessaire.
    • Si la durée de vie restante du ticket est dans le seuil défini par l'utilisateur, le TGT est renouvelé et importé. En cas de succès, les métadonnées du ticket mises à jour et la sortie kirbi encodée en base64 sont imprimées, suivies d'un appel à BeaconWakeup().

Workflow du renouvellement TGT

Le processus de renouvellement du ticket comprend les étapes suivantes :

  1. Extraire le TGT Kerberos encodé en ASN.1 via ExtractTicket() en utilisant le LUID et le SPN de la structure PTICKET_ENTRY.
  2. Décoder le ticket en ASN.1 et récupérer le credential Kerberos.
  3. Créer un paquet TGS-REQ pour demander le renouvellement du ticket en utilisant le ticket expirant pour la pré-authentification.
  4. Envoyer les octets TGS-REQ au contrôleur de domaine sur le port 88.
  5. Récupérer, décoder en ASN.1 et analyser la réponse TGS-REP.
  6. Construire le ticket renouvelé, purger l'ancien ticket du cache et importer le ticket renouvelé en utilisant Pass-the-Ticket.
  7. Mettre à jour startTime, endTime, renewUntil, ticketFlags et encryptionType sur la structure PTICKET_ENTRY, imprimer les informations du ticket et le base64.

Utilisation

Ce dépôt propose un Module Conquest qui implémente les deux commandes suivantes.

tgt-monitor

Le BOF tgt-monitor alerte lorsque de nouveaux TGT sont capturés et les renvoie sous forme de blob encodé en Base64. Les arguments suivants doivent être passés au fichier objet :

NomTypeDescription
intervalintDélai entre les vérifications en secondes.
targetUsersstringListe insensible à la casse, séparée par des virgules, des noms d'utilisateurs cibles. Lorsque ce champ est défini, seuls les TGT des utilisateurs spécifiés sont récupérés. Sinon, les TGT sont collectés pour tous les utilisateurs. Notez que les comptes d'ordinateur doivent se terminer par $.
Usage: tgt-monitor [--interval interval] [--user user]
Example: tgt-monitor --interval 5 --user DC01$

Optional arguments:
  --interval interval       INT        Polling interval in seconds (default: 60).
  --user user               STRING     Comma-separated list of target usernames (default: all users).

Moniteur TGT

Le ticket encodé peut être utilisé directement avec Rubeus.exe ptt /ticket:<base64> ou impacket-ticketConverter pour un mouvement latéral ultérieur, comme illustré dans la capture d'écran ci-dessous. Dans Conquest, il est possible d'utiliser la commande ptt pour injecter directement le ticket dans la session d'ouverture de session actuelle afin d'usurper l'utilisateur cible.

Vol de tickets avec le moniteur TGT

tgt-renew

Le BOF tgt-renew renouvelle automatiquement les tickets qui expirent bientôt jusqu'à ce qu'ils ne puissent plus être renouvelés. Les arguments suivants doivent être passés au fichier objet :

NomTypeDescription
intervalintDélai entre les vérifications en secondes.
thresholdintSeuil de renouvellement en minutes. Le ticket est renouvelé lorsque le temps restant jusqu'à EndTime est inférieur à ce seuil.
targetUsersstringListe insensible à la casse, séparée par des virgules, des noms d'utilisateurs cibles. Lorsque ce champ est défini, seuls les TGT des utilisateurs spécifiés sont renouvelés. Sinon, les TGT sont renouvelés pour tous les utilisateurs. Notez que les comptes d'ordinateur doivent se terminer par $.
targetLuidsstringListe insensible à la casse, séparée par des virgules, des LUID cibles. Lorsque ce champ est défini, seuls les TGT des LUID spécifiés sont renouvelés.
Usage: tgt-renew [--interval seconds] [--threshold minutes] [--user user] [--luid luid]
Example: tgt-renew --luid 0x3e4 --interval 300 --threshold 30
Télécharger l’outil