Retour aux mises à jour
UpdatedAug 1, 2026

CVE-2026-54121 — Mis à jour !

Certighost POC

Partager

CVE-2026-54121 (Certighost)

Il s'agit d'un outil de preuve de concept pour démontrer la CVE-2026-54121, alias Certighost. Lisez ici https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26 pour l'analyse détaillée.

Installer les dépendances

La preuve de concept est un script Python autonome. Elle nécessite impacket, cryptography, pyasn1, asn1crypto et dnspython.

sudo pip install --break-system-packages git+https://github.com/fortra/impacket.git cryptography pyasn1 asn1crypto pycryptodome dnspython

Utilisation

Exécutez en root car les services LDAP et SMB pirates écoutent sur les ports privilégiés 389 et 445.

sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10

Une exécution réussie écrit le certificat cible (.pfx) et le cache Kerberos (.ccache) dans le répertoire courant.

Ce que fait ce script

  1. Créez un nouveau compte machine (par ex. GHOSTABCDEFGH$) ou réutilisez celui passé via --computer-name.
  2. Démarrez deux écouteurs pirates : un serveur SMB/LSA sur le port 445 et un serveur LDAP sur le port 389.
  3. Envoyez 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 ; facultatif, auto-détecté si omis) ainsi qu'un attribut rmd contenant le nom DNS du contrôleur de domaine cible.
  4. L'AC se reconnecte aux écouteurs LSA/LDAP pirates. Ils s'authentifient en tant que compte créé (validé via le vrai DC sur Netlogon) et répondent aux requêtes de l'AC avec l'identité du contrôleur de domaine cible (sAMAccountName, SID, dNSHostName) à la place.
  5. L'AC délivre un certificat valide appartenant au DC.
  6. Le script effectue également PKINIT avec le pfx du DC pour demander le .ccache et le hash NT.

Chronologie

  • 28 juillet 2026 — Remerciements à @GregDurys pour la PR corrigeant le problème STATUS_NOLOGON_SERVER_TRUST_ACCOUNT. certighost fournit désormais un hotpatch approprié intégré au script du chemin NetLogon SMB pirate (définissant le bit E 0x20 en plus du bit K 0x800 dans ParameterControl, selon MS-NRPC 2.2.1.4.15), afin que l'exploit fonctionne contre une AC hébergée sur un contrôleur de domaine sans avoir à installer une version différente / forkée d'Impacket.
  • 28 juillet 2026 — Remerciements à @Hack0ura pour avoir mentionné le correctif du SAN demandé. Sur une AC qui honore les SAN fournis dans la demande (EDITF_ATTRIBUTESUBJECTALTNAME2 / ESC6), la demande de certificat définit désormais l'identité SAN:dns sur le nom DNS du contrôleur de domaine cible (rmd_value) au lieu de celui de la machine pirate, évitant KDC_ERR_CLIENT_NAME_MISMATCH à l'étape PKINIT. Sur les modèles construits à partir d'AD, le SAN de la demande est ignoré, ce changement est donc un no-op sûr.

Références

Catégories