Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-54121-CertiGhost — CVE-2026-54121 (Certighost) PoC di impersonificazione del DC per AD CS. Gestione SAN corretta + riutilizzo account sicuro per MAQ. | Kitploit
Strumenti/GitHubGitHub/marcgoam/cve-2026-54121-certighost
Autenticazione e AutorizzazioneEscalation di PrivilegiAnalisi delle VulnerabilitàExploitMovimento LateralePenetration TestingAttacco Avversario
GitHub

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
marcgoam/cve-2026-54121-certighost

CVE-2026-54121-CertiGhost

CVE-2026-54121 (Certighost) PoC di impersonificazione del DC per AD CS. Gestione SAN corretta + riutilizzo account sicuro per MAQ.

Vedi Repository
102132 mesi faNon ancora revisionato

CVE-2026-54121 (Certighost) - fork corretto

Un fork funzionante del proof-of-concept per CVE-2026-54121, noto anche come Certighost. Ricerca originale e PoC di @H0j3n e @aniqfakhrul con analisi dettagliata su:

  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26.

Questo fork corregge la gestione del SAN che impediva a PKINIT di avere successo su CA che rispettano il SAN richiesto, irrobustisce il parsing di --target-san e rivede la gestione dell'account computer in modo da non esaurire più la ms-DS-MachineAccountQuota.

Utilizzo

Esegui come root perché i servizi LDAP e SMB rogue richiedono le porte privilegiate 389 e 445.

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

Al completamento con successo, il certificato di destinazione (.pfx) e la cache Kerberos (.ccache) vengono scritti nella directory di lavoro corrente.

Cosa fa questo script

  1. Riutilizza un singolo account computer stabile (CERTIGHOST$, creato alla prima esecuzione) oppure usa uno specificato tramite --computer-name.
  2. Avvia due listener rogue: un server SMB/LSA sulla porta 445 e un server LDAP sulla porta 389.
  3. Invia una richiesta di certificato come quell'account computer, incorporando un attributo cdc personalizzato che punta a un IP controllato (tramite --listener; opzionale, auto-rilevato se omesso) e un attributo rmd che trasporta il nome DNS del DC di destinazione.
  4. La CA si riconnette ai listener LSA/LDAP rogue. Questi si autenticano come l'account creato (validato tramite il DC reale su Netlogon) e rispondono invece alle interrogazioni della CA con l'identità del DC di destinazione (sAMAccountName, SID, dNSHostName).
  5. La CA emette un certificato valido appartenente al DC.
  6. Lo script esegue PKINIT con il pfx del DC per richiedere la .ccache e l'hash NT.

Modifiche in questo fork

1. Fix del SAN (consente a PKINIT di avere successo)

L'originale costruiva il SAN del certificato sia nell'estensione subjectAltName della CSR sia nell'attributo di richiesta SAN:dns= usando l'hostname del computer rogue invece del FQDN del DC di destinazione. Su una CA che rispetta il SAN richiesto, il certificato emesso conteneva quindi il dNSHostName dell'account rogue, così PKINIT lo associava al principale sbagliato e falliva con:

KDC_ERR_CLIENT_NAME_MISMATCH(Reserved for PKINIT)

Il SAN ora usa il dNSHostName del DC di destinazione (rmd_value / target_dns), che è ciò su cui PKINIT mappa un account computer. Il certificato emesso ora presenta DNS:<dc>.<domain> e la AS-REQ si conclude come il DC.

2. --target-san robusto

--target-san ora accetta uno qualsiasi tra MEEREEN, MEEREEN$ o il FQDN meereen.essos.local (identificato tramite sAMAccountName o dNSHostName), invece della sola forma breve NAME.

3. Riutilizzo dell'account computer (niente più esaurimento della MAQ)

L'originale creava un account casuale GHOST********$ a ogni esecuzione. Poiché gli account computer creati tramite ms-DS-MachineAccountQuota sono di proprietà dei Domain Admins (non di chi li crea), un utente con privilegi limitati non può eliminarli, quindi esecuzioni ripetute esaurivano rapidamente la quota (predefinita a 10) con account orfani.

Questo fork riutilizza un singolo account stabile (CERTIGHOST$, creato solo se non esiste già), quindi la quota non cresce mai e non c'è nulla da pulire tra un'esecuzione e l'altra.

4. Avviso sugli account residui

Quando l'account viene creato per la prima volta, lo script stampa un avviso che segnala che rimane in AD:

[!] WARNING: computer account CERTIGHOST$ was created and is left in AD.

L'account rimane per essere riutilizzato nelle esecuzioni successive. Per rimuoverlo del tutto, eliminalo con un Domain Admin (il proprietario dell'oggetto):

Get-ADComputer CERTIGHOST | Remove-ADComputer -Confirm:$false

Requisiti

  • Python 3
  • impacket
  • cryptography, pyasn1, asn1crypto, pycryptodomex

Riferimenti

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54121
  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26
  • https://github.com/aniqfakhrul/CVE-2026-54121 (PoC originale)

Dichiarazione di non responsabilità

Solo per test di sicurezza autorizzati e finalità educative. Usalo solo contro sistemi per cui hai il permesso esplicito di eseguire test.

Scarica lo strumento