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
CVE-2026-54121-CertiGhost — CVE-2026-54121 (Certighost) PoC d'usurpation d'identité de DC AD CS. Gestion des SAN corrigée + réutilisation de compte compatible MAQ. | Kitploit
Outils/GitHubGitHub/marcgoam/cve-2026-54121-certighost
Authentification et AutorisationEscalade de PrivilègesAnalyse des VulnérabilitésExploitationMouvement LatéralTests d'IntrusionAttaque Adversariale
GitHubmarcgoam/cve-2026-54121-certighost

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 →

CVE-2026-54121-CertiGhost

CVE-2026-54121 (Certighost) PoC d'usurpation d'identité de DC AD CS. Gestion des SAN corrigée + réutilisation de compte compatible MAQ.

Voir le dépôt
1025il y a 1 moisPas encore vérifié
Partager

CVE-2026-54121 (Certighost) - fork corrigé

Un fork fonctionnel de l'outil de preuve de concept pour CVE-2026-54121, également connu sous le nom de Certighost. Recherche originale et PoC par @H0j3n et @aniqfakhrul, analyse détaillée sur :

  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26.

Ce fork corrige la gestion du SAN qui empêchait PKINIT de réussir sur les autorités de certification (CA) qui honorent le SAN demandé, durcit l'analyse de --target-san, et retravaille la gestion du compte machine afin de ne plus épuiser le quota ms-DS-MachineAccountQuota.

Utilisation

Exécuter en root car les services LDAP et SMB malveillants nécessitent les ports privilégiés 389 et 445.

root@kitploit:~
sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10

Une fois l'exécution terminée avec succès, le certificat cible (.pfx) et le cache Kerberos (.ccache) sont écrits dans le répertoire de travail courant.

Ce que fait ce script

  1. Réutilise un seul compte machine stable (CERTIGHOST$, créé lors de la première exécution) ou utilise celui spécifié via --computer-name.
  2. Démarre deux serveurs d'écoute malveillants : un serveur SMB/LSA sur le port 445 et un serveur LDAP sur le port 389.
  3. Envoie une demande de certificat en tant que ce compte machine, en intégrant un attribut cdc personnalisé pointant vers une IP contrôlée (via --listener ; optionnel, auto-détecté s'il est omis) ainsi qu'un attribut rmd contenant le nom DNS du contrôleur de domaine cible.
  4. L'autorité de certification se reconnecte aux serveurs d'écoute LSA/LDAP malveillants. Ceux-ci s'authentifient en tant que le compte créé (validé auprès du vrai contrôleur de domaine via Netlogon) et répondent aux requêtes de la CA avec l'identité du contrôleur de domaine cible (sAMAccountName, SID, dNSHostName) à la place.
  5. La CA émet un certificat valide appartenant au contrôleur de domaine.
  6. Le script effectue PKINIT avec le pfx du contrôleur de domaine pour demander le .ccache et le hash NT.

Changements dans ce fork

1. Correction du SAN (permet à PKINIT de réussir)

L'original construisait le SAN du certificat à la fois dans l'extension subjectAltName de la CSR et dans l'attribut de requête SAN:dns= avec le nom d'hôte du compte machine malveillant au lieu du FQDN du contrôleur de domaine cible. Sur une CA qui honore le SAN demandé, le certificat émis portait donc le dNSHostName du compte malveillant, si bien que PKINIT le mappait vers le mauvais principal et échouait avec :

root@kitploit:~
KDC_ERR_CLIENT_NAME_MISMATCH(Reserved for PKINIT)

Le SAN utilise désormais le dNSHostName du contrôleur de domaine cible (rmd_value / target_dns), ce qui est ce sur quoi PKINIT mappe un compte machine. Le certificat émis présente maintenant DNS:<dc>.<domain> et l'AS-REQ se conclut en tant que le contrôleur de domaine.

2. --target-san robuste

--target-san accepte désormais MEEREEN, MEEREEN$, ou le FQDN meereen.essos.local (correspondance par sAMAccountName ou dNSHostName), au lieu de seulement la forme courte NAME.

3. Réutilisation du compte machine (plus d'épuisement du MAQ)

L'original créait un nouveau compte aléatoire GHOST********$ à chaque exécution. Comme les comptes machine créés via le quota ms-DS-MachineAccountQuota sont possédés par les admins du domaine (et non par le créateur), un utilisateur à faibles privilèges ne peut pas les supprimer, si bien que des exécutions répétées épuisaient rapidement le quota (10 par défaut) avec des comptes orphelins.

Ce fork réutilise un seul compte stable (CERTIGHOST$, créé uniquement s'il n'existe pas déjà), de sorte que le quota ne croît jamais et qu'il n'y a rien à nettoyer entre les exécutions.

4. Avertissement concernant le compte résiduel

Lorsque le compte est créé pour la première fois, le script affiche un avertissement indiquant qu'il est laissé dans l'AD :

root@kitploit:~
[!] WARNING: computer account CERTIGHOST$ was created and is left in AD.

Le compte reste disponible pour être réutilisé lors des exécutions suivantes. Pour le supprimer complètement, supprimez-le avec un admin de domaine (le propriétaire de l'objet) :

root@kitploit:~
Get-ADComputer CERTIGHOST | Remove-ADComputer -Confirm:$false

Prérequis

  • Python 3
  • impacket
  • cryptography, pyasn1, asn1crypto, pycryptodomex

Références

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54121
  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26
  • https://github.com/aniqfakhrul/CVE-2026-54121 (PoC original)

Avertissement

Uniquement à des fins de tests de sécurité autorisés et d'éducation. Utilisez-le uniquement contre des systèmes pour lesquels vous avez une autorisation explicite de test.

Télécharger l’outil