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
ForgeCert — Forgia certificati per l'autenticazione in Active Directory utilizzando chiavi private rubate dell'Autorità di Certificazione, consentendo l'accesso persistente al dominio con file .pfx falsificati. | Kitploit
Strumenti/GitHubGitHub/ghostpack/forgecert
Generazione di PayloadMeccanismi di PersistenzaExploitAutenticazione
GitHubghostpack/forgecert

ForgeCert

Forgia certificati per l'autenticazione in Active Directory utilizzando chiavi private rubate dell'Autorità di Certificazione, consentendo l'accesso persistente al dominio con file .pfx falsificati.

Vedi Repository
7151153 anni faRevisionato da Kitploit

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

ForgeCert

ForgeCert utilizza l'API C# di BouncyCastle e un certificato di Autorità di Certificazione (CA) rubato + chiave privata per falsificare certificati per utenti arbitrari in grado di autenticarsi ad Active Directory.

Questo attacco è codificato come DPERSIST1 nel nostro whitepaper "Certified Pre-Owned". Questo codice è stato rilasciato circa 45 giorni dopo la pubblicazione del whitepaper.

@tifkin_ è l'autore principale di ForgeCert.

@tifkin_ e @harmj0y sono gli autori principali della ricerca associata sui Servizi di Certificato di Active Directory (blog e whitepaper).

Contesto

Come descritto nelle sezioni Background e Forging Certificates with Stolen CA Certificates - DPERSIST1 del nostro whitepaper, la chiave privata del certificato di un'Autorità di Certificazione è protetta sul server CA tramite DPAPI o hardware (HSM/TPM). Inoltre, il certificato (senza la chiave privata) viene pubblicato nell'oggetto della foresta NTAuthCertificates, che definisce i certificati CA che consentono l'autenticazione ad AD. Insieme, un CA il cui certificato è presente in NTAuthCertificates utilizza la propria chiave privata per firmare le richieste di firma del certificato (CSR) dai client richiedenti. Questo grafico riassume il processo:

La sicurezza della chiave privata della CA è fondamentale. Come accennato, se la chiave privata non è protetta da una soluzione hardware come un TPM o un HSM, verrà crittografata con Data Protection API (DPAPI) e archiviata su disco sul server CA. Se un attaccante riesce a compromettere un server CA, può estrarre la chiave privata per qualsiasi certificato CA non protetto da hardware utilizzando Mimikatz di @gentilkiwi o il progetto SharpDPAPI di GhostPack. THEFT3 nel whitepaper descrive questo processo per i certificati macchina.

Poiché l'unico materiale di chiave utilizzato per firmare i certificati emessi è la chiave privata della CA, se un attaccante ruba tale chiave (per un certificato in NTAuthCertificates) può falsificare certificati in grado di autenticarsi al dominio. Questi certificati falsificati possono essere per qualsiasi entità del dominio (anche se l'account deve essere "attivo" per consentire l'autenticazione, quindi account come krbtgt non funzioneranno) e i certificati saranno validi per tutto il tempo in cui il certificato CA è valido (di solito 5 anni per impostazione predefinita, ma può essere impostato per durare più a lungo).

Inoltre, poiché questi certificati non sono il prodotto del normale processo di emissione, la CA non è a conoscenza della loro creazione. Pertanto, i certificati non possono essere revocati.

Nota: la chiave privata per QUALSIASI certificato CA in NTAuthCertificates (CA radice o subordinata) può essere utilizzata per falsificare certificati in grado di autenticarsi nella foresta. Se il certificato/chiave proviene da una CA subordinata, è necessario fornire una CRL legittima per la verifica della catena di certificati.

ForgeCert utilizza X509V3CertificateGenerator di BouncyCastle per eseguire le falsificazioni.

Utilizzo da riga di comando

root@kitploit:~
C:\Temp>ForgeCert.exe
ForgeCert 1.0.0.0
Copyright c  2021

ERROR(S):
  Required option 'CaCertPath' is missing.
  Required option 'SubjectAltName' is missing.
  Required option 'NewCertPath' is missing.
  Required option 'NewCertPassword' is missing.

  --CaCertPath         Required. CA private key as a .pfx or .p12 file

  --CaCertPassword     Password to the CA private key file

  --Subject            (Default: CN=User) Subject name in the certificate

  --SubjectAltName     Required. UPN of the user to authenticate as

  --NewCertPath        Required. Path where to save the new .pfx certificate

  --NewCertPassword    Required. Password to the .pfx file

  --CRL                ldap path to a CRL for the forged certificate

  --help               Display this help screen.

  --version            Display version information.

Utilizzo

Nota: per una guida completa al furto di una chiave privata CA e alla falsificazione di certificati di autenticazione, vedere DPERSIST1 nel whitepaper.

Contesto:

  • Il certificato CA rubato è ca.pfx, crittografato con una password di Password123!
  • Il soggetto è arbitrario poiché stiamo specificando un nome alternativo del soggetto per il certificato.
  • Il nome alternativo del soggetto (cioè l'utente per cui stiamo falsificando un certificato) è [email protected].
  • Il certificato falsificato verrà salvato come localadmin.pfx, crittografato con la password NewPassword123!
root@kitploit:~
C:\Tools\ForgeCert>ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword "Password123!" --Subject "CN=User" --SubjectAltName "[email protected]" --NewCertPath localadmin.pfx --NewCertPassword "NewPassword123!"
CA Certificate Information:
  Subject:        CN=theshire-DC-CA, DC=theshire, DC=local
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     1/4/2021 10:48:02 AM
  End Date:       1/4/2026 10:58:02 AM
  Thumbprint:     187D81530E1ADBB6B8B9B961EAADC1F597E6D6A2
  Serial:         14BFC25F2B6EEDA94404D5A5B0F33E21

Forged Certificate Information:
  Subject:        CN=User
  SubjectAltName: [email protected]
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     7/26/2021 3:38:45 PM
  End Date:       7/26/2022 3:38:45 PM
  Thumbprint:     C5789A24E91A40819EFF7CFD77150595F8B9878D
  Serial:         3627A48F90F6869C3215FF05BC3B2E42

Done. Saved forged certificate to localadmin.pfx with the password 'NewPassword123!'

Questa falsificazione può essere eseguita su un sistema controllato dall'attaccante e il certificato risultante può essere utilizzato con Rubeus per richiedere un TGT (e/o recuperare l'NTLM dell'utente ;)

Considerazioni difensive

Il TypeRefHash del codice corrente di ForgeCert è b26b451ff2c947ae5904f962e56facbb45269995fbb813070386472f307cfcf0.

Il GUID TypeLib di ForgeCert è bd346689-8ee6-40b3-858b-4ed94f08d40a. Questo è riflesso nelle regole Yara attualmente in questo repository.

Vedere PREVENT1, DETECT3 e DETECT5 nel nostro whitepaper per indicazioni su prevenzione e rilevamento.

Fabian Bader ha pubblicato un ottimo post su come mitigare molti usi dei "Golden Certificates" attraverso modifiche all'OCSP di Microsoft. Si noti però che nella sezione Final Thoughts menziona This method is not bulletproof at all. Since the attacker is in charge of the certificate creation process, she could just change the serial number to a valid one. Questo è stato implementato nella sua PR, ma ricorda che per impostazione predefinita il numero di serie sarà randomizzato, il che significa che la prevenzione OSCP dovrebbe funzionare in molti casi e vale la pena implementarla secondo noi.

Crediamo che ci siano opportunità per creare regole Yara/altre regole di rilevamento per i tipi di certificati falsificati che questo progetto produce - se qualche ricercatore difensivo trova un buon modo per firmare questi file, ci informi e aggiorneremo le regole Yara/le linee guida difensive qui.

Riflessioni

C'è un chiaro parallelo tra i "Golden Tickets" (TGT falsificati) e questi "Golden Certificates" (certificati AD CS forzati). Sia l'hash krbtgt che la chiave privata della CA sono materiale crittografico fondamentale per la sicurezza di un ambiente Active Directory, ed entrambi possono essere utilizzati per falsificare autenticatori per utenti arbitrari. Tuttavia, mentre l'hash krbtgt può essere recuperato da remoto tramite DCSync, una chiave privata CA deve (almeno per quanto ne sappiamo) essere recuperata tramite esecuzione di codice sulla macchina CA stessa. Mentre un hash krbtgt può essere ruotato relativamente facilmente, ruotare una chiave privata CA è significativamente più difficile.

Sul tema della divulgazione pubblica, abbiamo auto-embargato il rilascio dei nostri strumenti offensivi (ForgeCert così come Certify) per circa 45 giorni dopo la pubblicazione del nostro whitepaper per dare alle organizzazioni la possibilità di prendere confidenza con i problemi relativi ai Servizi di Certificato di Active Directory. Tuttavia, abbiamo scoperto che organizzazioni e fornitori storicamente spesso non hanno risolto i problemi o costruito rilevamenti per attacchi "teorici" fino a quando qualcuno non dimostra che qualcosa è possibile con una prova di concetto.

Questo si riflette nella reazione di alcune persone alla ricerca: this IS StUPId, oF COurse YoU Can FORge CERts WITH ThE ca PriVAtE KeY. Al che rispondiamo, sì, molte cose sono possibili, ma PoC||GTFO

Scarica lo strumento