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
Certify — Strumento C# per enumerare e sfruttare configurazioni errate nei Servizi Certificati di Active Directory (AD CS), consentendo l'abuso di modelli di certificato, l'escalation dei privilegi e la persistenza nel dominio. | Kitploit
Strumenti/GitHubGitHub/ghostpack/certify
Autenticazione e AutorizzazioneEscalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingRed Teaming
GitHubghostpack/certify

Certify

Strumento C# per enumerare e sfruttare configurazioni errate nei Servizi Certificati di Active Directory (AD CS), consentendo l'abuso di modelli di certificato, l'escalation dei privilegi e la persistenza nel dominio.

Vedi Repository
2.0k2828 giorni 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

Certify

Certify è uno strumento C# per enumerare e abusare delle configurazioni errate nei Servizi Certificati di Active Directory (AD CS).

@harmj0y e @tifkin_ sono gli autori principali di Certify e della ricerca associata su AD CS (blog e whitepaper).

Table of Contents

  • Certify
  • Utilizzo
  • Considerazioni difensive
  • Istruzioni per la compilazione
    • Nota a margine: Esecuzione di Certify tramite PowerShell
      • Doppia nota: Esecuzione di Certify tramite PSRemoting
  • Riflessioni
  • Riconoscimenti

Utilizzo

Una panoramica dei comandi e i dettagli completi sull'utilizzo si trovano nella wiki.

Considerazioni difensive

Certify è stato rilasciato al Black Hat 2021 con il nostro talk "Certified Pre-Owned: Abusing Active Directory Certificate Services".

Consulta il nostro whitepaper per linee guida su prevenzione e rilevamento.

Istruzioni per la compilazione

Non abbiamo intenzione di rilasciare binari per Certify, quindi dovrai compilare da te :)

Certify è stato sviluppato per .NET 4.7.2 ed è compatibile con Visual Studio 2022 Community Edition. Basta aprire il file .sln del progetto, selezionare "Release" e compilare.

Nota a margine: Esecuzione di Certify tramite PowerShell

Se vuoi eseguire Certify in memoria tramite un wrapper PowerShell, prima compila Certify e codifica in base64 l'assembly risultante:

root@kitploit:~
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Temp\Certify.exe")) | Out-File -Encoding ASCII C:\Temp\Certify.txt

Certify può quindi essere caricato in uno script PowerShell con il seguente codice (dove "aa..." viene sostituito con la stringa base64 dell'assembly di Certify):

root@kitploit:~
$CertifyAssembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String("aa..."))

Il metodo Main() e qualsiasi argomento possono quindi essere invocati come segue:

root@kitploit:~
[Certify.Program]::Main("enum-templates --filter-enabled --filter-vulnerable".Split())

Doppia nota: Esecuzione di Certify tramite PSRemoting

A causa del modo in cui PSRemoting gestisce l'output, dobbiamo reindirizzare stdout in una stringa e restituire quella invece. Fortunatamente, Certify ha una funzione che aiuta in questo.

Se segui le istruzioni in Nota a margine: Esecuzione di Certify tramite PowerShell per creare un Certify.ps1, aggiungi qualcosa come il seguente allo script:

root@kitploit:~
[Certify.Program]::MainString("enum-templates --filter-enabled --filter-vulnerable")

Dovresti quindi essere in grado di eseguire Certify tramite PSRemoting con qualcosa come:

root@kitploit:~
$s = New-PSSession dc.theshire.local
Invoke-Command -Session $s -FilePath C:\Temp\Certify.ps1

In alternativa, l'argomento /outfile:C:\FILE.txt di Certify reindirizzerà tutti i flussi di output al file specificato.

Riflessioni

Sul tema della divulgazione pubblica, abbiamo auto-imposto un embargo sulla pubblicazione dei nostri strumenti offensivi (Certify e ForgeCert) per circa 45 giorni dopo la pubblicazione del nostro whitepaper, per dare alle organizzazioni la possibilità di comprendere i problemi relativi ai Servizi Certificati di Active Directory. Abbiamo anche pubblicato anticipatamente alcune Yara rule/IOC per entrambi i progetti e rilasciato il progetto PowerShell PSPKIAudit incentrato sulla difesa insieme al whitepaper. Tuttavia, abbiamo riscontrato che organizzazioni e fornitori spesso non hanno risolto i problemi o creato rilevamenti per attacchi "teorici" finché qualcuno non dimostra che qualcosa è possibile con un proof of concept.

Riconoscimenti

Certify ha utilizzato alcune risorse trovate online come riferimento e ispirazione:

  • Questo post sulla richiesta di certificati da C#.
  • Questa gist per la specifica del SAN.
  • Questo post su StackOverflow sull'esportazione delle chiavi private.
  • Questo post di PKISolutions sulla conversione di pkiExpirationPeriod.
  • Questa sezione di MS-CSRA che descrive i DACL di sicurezza dell'agente di registrazione.

Il lavoro su AD CS è stato costruito sul lavoro di molti altri. Il whitepaper fornisce un trattamento completo, ma per riassumere:

  • Benjamin Delpy per il suo lavoro approfondito su smart card/certificati con Mimikatz e Kekeo.
  • PKI Solutions per i loro eccellenti articoli su PKI in Active Directory, così come il loro modulo PowerShell PSPKI, su cui si basa il nostro toolkit di audit.
  • Il libro "Windows Server 2008 – PKI and Certificate Security" di Brian Komar.
  • Le seguenti specifiche tecniche aperte fornite da Microsoft:
    • [MS-CERSOD]: Certificate Services Protocols Overview
    • [MS-CRTD]: Certificate Templates Structure
    • [MS-CSRA]: Certificate Services Remote Administration Protocol
    • [MS-ICPR]: ICertPassage Remote Protocol
    • [MS-WCCE]: Windows Client Certificate Enrollment Protocol
  • Il repository GitHub di Christoph Falta che copre alcuni dettagli sull'attacco ai modelli di certificato, incluse le smart card virtuali e alcune idee sugli abusi basati su ACL.
  • L'articolo di CQURE "The tale of Enhanced Key (mis)Usage" che copre alcuni abusi dei Subject Alternative Name.
  • L'articolo di Keyfactor del 2016 "Hidden Dangers: Certificate Subject Alternative Names (SANs)"
  • I post di @Elkement "Sizzle @ hackthebox – Unintended: Getting a Logon Smartcard for the Domain Admin!" e "Impersonating a Windows Enterprise Admin with a Certificate: Kerberos PKINIT from Linux" descrivono configurazioni errate dei modelli di certificato.
  • Carl Sörqvist ha scritto uno scenario dettagliato e plausibile su come si verificano alcune di queste configurazioni errate intitolato "Supply in the Request Shenanigans".
Scarica lo strumento
  • Ceri Coburn ha pubblicato un eccellente post nel 2020 su "Attacking Smart Card Based Active Directory Networks" descrivendo alcuni abusi delle smart card e aggiunte a Certify.
  • Brad Hill ha pubblicato un whitepaper intitolato "Weaknesses and Best Practices of Public Key Kerberos with Smart Cards" che ha fornito un buon background su Kerberos/PKINIT da una prospettiva di sicurezza.