This is a proof-of-concept tool to demonstrace CVE-2026-54121 a.k.a Certighost. Read here https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26 for the detailed analysis.
uv tool install git+https://github.com/0xNDI/certighostThis installs a certighost command (symlinked into ~/.local/bin).
certighost -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10Successful execution writes the target certificate (.pfx) and Kerberos cache (.ccache) to the current directory.
- Create a new computer account (e.g.
GHOSTABCDEFGH$) or reuse one passed via--computer-name. - Start two rogue listeners: an SMB/LSA server on port 445 and an LDAP server on port 389.
- Send a certificate request as that computer account, embedding a custom
cdcattribute pointing to a controlled IP (via--listener; optional, auto-detected if omitted) plus anrmdattribute carrying the target DC's DNS name. - The CA connects back to the rogue LSA/LDAP listeners. They authenticate as the created account (validated through the real DC over Netlogon) and answer the CA's lookups with the target DC's identity (sAMAccountName, SID, dNSHostName) instead.
- The CA issues a valid certificate belonging to the DC.
- The scripts also performs PKINIT with the DC's pfx to request .ccache and NT hash