
Certighost POC
Questo è uno strumento proof-of-concept per dimostrare la CVE-2026-54121, nota anche come Certighost. Leggi qui https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26 per l'analisi dettagliata.
Lo proof of concept è uno script Python autocontenuto. Richiede impacket, cryptography, pyasn1, asn1crypto e dnspython.
sudo pip install --break-system-packages git+https://github.com/fortra/impacket.git cryptography pyasn1 asn1crypto pycryptodome dnspython
Esegui come root perché i servizi rogue LDAP e SMB ascoltano sulle porte ad alto privilegio 389 e 445.
sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10
Un'esecuzione riuscita scrive il certificato di destinazione (.pfx) e la cache Kerberos (.ccache) nella directory corrente.
GHOSTABCDEFGH$) o riutilizza uno passato tramite --computer-name.cdc personalizzato che punta a un IP controllato (tramite --listener; opzionale, auto-rilevato se omesso) oltre a un attributo rmd che trasporta il nome DNS del DC di destinazione.STATUS_NOLOGON_SERVER_TRUST_ACCOUNT. certighost ora include un hotpatch in-script del percorso NetLogon SMB rogue (impostando il bit E 0x20 insieme al bit K 0x800 in ParameterControl, secondo MS-NRPC 2.2.1.4.15), quindi l'exploit funziona contro una CA ospitata su un Domain Controller senza preoccuparsi di installare una versione diversa / fork di Impacket.EDITF_ATTRIBUTESUBJECTALTNAME2 / ESC6), la richiesta di certificato ora imposta l'identità SAN:dns al nome DNS del DC di destinazione (rmd_value) invece di quello del computer rogue, evitando KDC_ERR_CLIENT_NAME_MISMATCH nella fase PKINIT. Sui modelli build-from-AD il SAN della richiesta viene ignorato, quindi la modifica è un no-op sicuro.