Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
Certighost_CVE-2026-54121 — # Exploit one-click per CVE-2026-54121 (Certighost) che mira allo spoofing dell'identità dei certificati AD CS. Automatizza la creazione di account macchina, il reindirizzamento del traffico, una CA rogue, PKINIT e l'estrazione degli hash NT per il compromesso del dominio. | Kitploit
Strumenti/GitHubGitHub/trya9ain/certighost_cve-2026-54121
Analisi delle VulnerabilitàExploitPost-ExploitPenetration TestingRed Teaming
GitHubtrya9ain/certighost_cve-2026-54121

Certighost_CVE-2026-54121

# Exploit one-click per CVE-2026-54121 (Certighost) che mira allo spoofing dell'identità dei certificati AD CS. Automatizza la creazione di account macchina, il reindirizzamento del traffico, una CA rogue, PKINIT e l'estrazione degli hash NT per il compromesso del dominio.

Vedi Repository
11h 32m faNon ancora revisionato

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

certighost-oneclick

Strumento di sfruttamento one-click per CVE-2026-54121 (Certighost) — esclusivamente per lab locali/test autorizzati.

Versione nativa Windows basata sul PoC upstream (analisi @h0j3n / implementazione @aniqfakhrul): redirector WinDivert integrato sviluppato internamente (pydivert), un solo comando per completare "creazione account → redirect → rogue listener → CA chase → certificato identità DC → PKINIT → hash NT account macchina DC", senza mai fermare il servizio Server, senza modificare alcuna configurazione dell'host, ripristino immediato all'uscita.

Differenze rispetto all'upstream (elenco patch)

PatchDescrizione
--redirectRedirector WinDivert integrato (445 → --lsa-port, filtro a dominio ristretto: intercetta solo il traffico dell'IP listener), avvio/arresto con il processo, ripristino automatico della 445 all'uscita. Sostituisce il PortBender ufficiale (il cui artefatto ufficiale è una DLL riflessa 32-bit specifica per CS, non eseguibile in modo indipendente)
--lsa-portPorta di ascolto rogue LSA/SMB parametrizzata (default 445; con --redirect default 8445)
Guardia os.geteuidIl controllo root upstream crasha su Windows → guardia hasattr + suggerimento porta Windows
Check readiness parametrizzatoport_ok(127.0.0.1, 445) hardcoded upstream → args.lsa_port
Header PEP 723uv run certighost.py ... eseguito direttamente, dipendenze risolte automaticamente (incluso impacket git-master), zero inquinamento ambientale
--new-computer-nameNome personalizzato per la creazione account (evita la firma di rilevamento GHOST*)
--new-computer-passPassword personalizzata per la creazione account (deve superare la policy password del dominio)
Polyfill random.randbytesimpacket git-master usa API 3.9+ durante l'import di smbserver; necessario per Python 3.8, implementato con os.urandom
Uscita immediataflush + os._exit() dopo GGWP (risolve il blocco di minuti causato dai thread non-daemon di impacket)
Codici di uscita semantici0 successo / 1 fallimento
Salvataggio <dc>.hash.txtHash NT account macchina DC scritto su file (una sola riga name:lm:nt)

Utilizzo

① Pre-check (sola lettura, verifica CA e prerequisiti di sfruttamento):

root@kitploit:~
uv run check_ca.py -d bingo.com -dc-ip 192.168.16.144 -u zhaolei -p 'pass'

Output elenco Enterprise CA, autorizzazioni di emissione e registrazione template Machine (richiede Enroll per Domain Computers). Sulla macchina CA verificare anche il flag chase: certutil -getreg policy\EditFlags (dovrebbe avere EDITF_ENABLECHASECLIENTDC; verificato attivo nell'installazione predefinita di Server 2016).

② Sfruttamento one-click (Windows, amministratore):

root@kitploit:~
uv run certighost.py -d bingo.com -u zhaolei -p '[email protected]' \
  --dc-ip 192.168.16.144 --listener <IP raggiungibile da questa macchina> --redirect \
  --new-computer-name MACH$ --new-computer-pass 'Your@Pw123!'

Tre artefatti in output (salvati automaticamente nella directory di esecuzione):

FileContenuto
<dc>.pfxCertificato identità DC (materiale PKINIT)
<dc>.ccacheCache ticket Kerberos
<dc>.hash.txtHash NT account macchina DC (solo riga name:lm:nt)

③ Pulizia (eliminazione account creato):

root@kitploit:~
uv run cleanup_ghost.py -d bingo.com -dc-ip 192.168.16.144 -u administrator -p 'pass' --prefix MACH

Parametri (stile impacket)

ParametroDescrizione
-d / -u / -p / -HDominio / utente privilegi bassi / password / hash NTLM
--dc-ipIndirizzo DC (obbligatorio)
--listener IPIP listener rogue (specificare esplicitamente con più schede di rete)
--redirectNucleo Windows: redirect WinDivert 445 integrato (richiede amministratore + pydivert)
--lsa-port NPorta rogue LSA (default 8445 con --redirect)
--new-computer-nameNome personalizzato per l'account creato (aggiunge automaticamente $)
--new-computer-passPassword personalizzata per l'account creato (mutualmente esclusiva con il percorso existing)
--computer-name/--computer-pass/--computer-hashSenza MAQ: riutilizza account macchina già controllati
--target-san DC01$Specifica l'identità da impersonare (default: rilevamento automatico DC)
--templateTemplate certificato (default Machine)
--ca / --ca-ipSpecifica manuale CA
--debugTracciamento completo delle fasi di protocollo

Flusso interno

root@kitploit:~
Phase1  Utente privilegi bassi crea account macchina (percorso MAQ automatico / --new-computer-* personalizzato / --computer-* riutilizzo esistente)
Phase2  [Windows] Redirector WinDivert integrato: listener_ip:445 -> :lsa_port
        Filtro a dominio ristretto (solo quell'IP), pacchetti riscritti fuori dal filtro = nessun loop di re-iniezione; handle chiuso con il processo
Phase3  Server rogue: LDAP:389 + LSA/SMB:lsa_port (risponde a chase cdc/rmd, fornisce dati identità DC)
Phase4  Invio richiesta certificato come identità macchina (template Machine), CA richiama rogue → emissione certificato identità DC
Phase5  PKINIT → KDC restituisce hash NT account macchina DC nel PAC → estrazione e scrittura in .hash.txt
Phase6  (Successivo) secretsdump DCSync → krbtgt → compromissione totale dominio; cleanup_ghost elimina l'account creato

L'utilizzo Linux rimane invariato (bind diretto root su 445/389, senza --redirect).

Meccanismo di estrazione hash (non è DCSync)

L'estrazione hash della catena di attacco passa per PKINIT → PAC → NT hash, non DCSync:

  1. La CA viene ingannata per emettere un certificato con "identità = account macchina DC"
  2. Lo script usa il certificato per Kerberos PKINIT (pre-autenticazione a chiave pubblica)
  3. Il KDC restituisce l'hash NT dell'account in PAC_CREDENTIAL_INFO nella AS-REP (comportamento di design del protocollo Kerberos: inserisce l'hash NT nel PAC durante l'autenticazione con certificato, per compatibilità con vecchie app NTLM)
  4. Lo script decripta il PAC ed estrae l'hash → stampa + salvataggio su file

Usare secretsdump per DCSync dopo aver ottenuto l'hash è un'operazione successiva, non la fonte dell'hash.

Packaging (exe singolo file, forma di consegna Architettura A)

root@kitploit:~
# PowerShell 7
./build_exe.ps1              # Livello predefinito  (Win10 / Server 2016+)
./build_exe.ps1 3.10         # Livello compatibilità  (Win8.1 / Server 2012 R2+)
./build_exe.ps1 legacy       # Livello legacy  (Win7 SP1 / Server 2008 R2 x64)

Output dist\certighost_x64.exe: 19-27MB (a seconda del livello), auto-elevazione --uac-admin, zero dipendenze, lo script genera automaticamente il checksum SHA256.

Prerequisiti di build livello legacy

Richiede CPython 3.8.10 ufficiale da python.org installato nel seguente percorso (ultima build binaria ufficiale che supporta il kernel Win7, senza dipendere dalle nuove API UCRT):

root@kitploit:~
D:\网安相关\Tools\Python\cpython-3.8.10-x64\

Comando di installazione (silenzioso, senza PATH, senza launcher):

root@kitploit:~
python-3.8.10-amd64.exe /quiet InstallAllUsers=0 TargetDir=D:\网安相关\Tools\Python\cpython-3.8.10-x64 PrependPath=0 Include_launcher=0

Inoltre bloccare PyInstaller==5.13.2 (il bootloader 6.x non supporta il kernel Win7) e cryptography==38.0.4 (le wheel Rust richiedono Win10+ dalla 38.x), entrambi già fissati nello script.

Matrice di verifica su macchine reali

LivelloSistema realeCatena completaNote
PredefinitoWin11✅
Compatibilità 3.10Win11 / Win10 / Server 2012 R2✅ ×3Include test reale WinDivert
LegacyWin11 / Server 2008 R2 x64✅ ×23.8.10 ufficiale + PyInstaller 5.13.2

Nota: PyInstaller+impacket è una zona ad alta firma per gli antivirus, valutare autonomamente prima del deployment.

Architettura di deployment operativo (modello dual-machine)

  • Architettura A (forma predefinita di questo strumento): l'intero exe viene consegnato al foothold con accesso in uscita (richiede amministratore) ed eseguito direttamente;
  • Architettura B (foothold di valore): lo strumento resta in locale, il foothold ospita solo il tunnel di inoltro remoto (bind diretto 389 + 445 richiede il redirector dello stesso tipo di questo strumento).

Punti di rilevamento (Blue Team)

  • Nel database CA compaiono certificati sospetti emessi per identità DC (residuo permanente) — primo ancoraggio forense
  • Eventi CA 4886/4887 (emissione certificati) con disallineamento richiedente-identità target (Elastic/Nextron hanno regole pronte)
  • Nuovi account macchina GHOST*/personalizzati (4741) + richieste di registrazione a CA da utenti privilegi bassi
  • Evento di caricamento driver WinDivert sul foothold (comune ad Architettura A/B)

Limiti noti

  • Richiede Enterprise CA + utente privilegi bassi con permesso di registrazione + DC senza patch 2026-07 + flag chase attivo
  • Il target può essere solo un account computer (limitato dai permessi di registrazione del template Machine e dal meccanismo di identità dNSHostName) ma l'account macchina DC = DCSync = intero dominio, effetto equivalente all'ottenimento di tutti gli admin di dominio
  • Server 2016 verificato su catena completa; 2012R2~2025 ritenuto fattibile (stesso meccanismo chase)
  • Il percorso di creazione account è una scala discendente: fallimento LDAPS → fallback automatico a SAMR
  • Durante la fase PKINIT occasionalmente ciphertext integrity failure: osservato una volta, si risolve con un retry
  • Il redirector è progettato per dominio ristretto IPv4, scenario IPv6 non coperto

Elenco file

root@kitploit:~
certighost.py            Exploit principale (upstream + patch native Windows + PEP 723)
certighost_redirect.py   Redirector WinDivert 445 sviluppato internamente (pydivert; auto-test --selftest/--e2e)
check_ca.py              Pre-check: CA/template/permessi registrazione/flag chase (sola lettura)
cleanup_ghost.py         Pulizia finale: eliminazione account creato
build_exe.ps1            Packaging PyInstaller file singolo (pwsh7, matrice tre livelli, SHA256 automatico)

Upstream e ringraziamenti

  • Ricerca originale e PoC: @h0j3n (analisi gist), @aniqfakhrul/CVE-2026-54121 (implementazione upstream)
  • Kudelski Security (scopritore della vulnerabilità); PortBender (Praetorian, fonte dell'idea di redirect)
  • pydivert (binding Python WinDivert 2.2.2)
Scarica lo strumento