
Certighost POC
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.
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
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.
GHOSTABCDEFGH$) ou réutilisez celui passé via --computer-name.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.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.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.