
UpdatedAug 1, 2026
CVE-2026-54121 — Updated!
Certighost POC
CVE-2026-54121 (Certighost)
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.
Installa le dipendenze
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
Utilizzo
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.
Cosa fa questo script
- Crea un nuovo account computer (es.
GHOSTABCDEFGH$) o riutilizza uno passato tramite--computer-name. - Avvia due listener rogue: un server SMB/LSA sulla porta 445 e un server LDAP sulla porta 389.
- Invia una richiesta di certificato come account computer, incorporando un attributo
cdcpersonalizzato che punta a un IP controllato (tramite--listener; opzionale, auto-rilevato se omesso) oltre a un attributormdche trasporta il nome DNS del DC di destinazione. - La CA si riconnette ai listener rogue LSA/LDAP. Questi si autenticano come l'account creato (validato tramite il DC reale su Netlogon) e rispondono alle ricerche della CA con l'identità del DC di destinazione (sAMAccountName, SID, dNSHostName) invece.
- La CA emette un certificato valido appartenente al DC.
- Lo script esegue anche PKINIT con il pfx del DC per richiedere .ccache e NT hash.
Cronologia
- 28 luglio 2026 — Ringraziamenti a @GregDurys per la PR che corregge il problema
STATUS_NOLOGON_SERVER_TRUST_ACCOUNT.certighostora include un hotpatch in-script del percorso NetLogon SMB rogue (impostando il bit E0x20insieme al bit K0x800inParameterControl, 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. - 28 luglio 2026 — Ringraziamenti a @Hack0ura per aver segnalato la correzione del request-SAN. Su una CA che onora i SAN forniti nella richiesta (
EDITF_ATTRIBUTESUBJECTALTNAME2/ ESC6), la richiesta di certificato ora imposta l'identitàSAN:dnsal nome DNS del DC di destinazione (rmd_value) invece di quello del computer rogue, evitandoKDC_ERR_CLIENT_NAME_MISMATCHnella fase PKINIT. Sui modelli build-from-AD il SAN della richiesta viene ignorato, quindi la modifica è un no-op sicuro.