Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Arile! Scopri di più
I certificati digitali rappresentano uno dei pilastri dell'autenticazione in ambienti enterprise. Quando un avversario riesce a rubarli o a forgiarli, ottiene credenziali valide che sopravvivono ai reset delle password, aggirano l'MFA e operano con la piena fiducia dell'infrastruttura PKI. La tecnica T1649 si colloca nella tattica Credential Access (TA0006), la fase della kill chain in cui l'attaccante cerca di impossessarsi di nomi utente e credenziali per muoversi nell'ambiente vittima senza destare sospetti.
Il perimetro d'attacco è ampio: Active Directory Certificate Services (AD CS) in ambienti on-premise, certificati device in Entra ID (ex Azure AD) per contesti cloud, e chiavi private conservate nel registro Windows, nel file system o nel certificate store del sistema operativo. I vettori d'abuso spaziano dal furto di certificati già emessi — estratti dallo storage cifrato o da file mal protetti — alla richiesta fraudolenta di nuovi certificati sfruttando template mal configurati. Il caso più devastante è la cosiddetta golden certificate: l'avversario che compromette la chiave privata della CA radice o subordinata può emettere certificati arbitrari per qualsiasi identità del dominio, garantendosi persistenza praticamente illimitata.
I dati parlano di 1 gruppo APT documentato, 2 tool offensivi noti e 4 mitigazioni raccomandate — numeri contenuti che non devono ingannare: la superficie d'attacco cresce con ogni template pubblicato senza revisione.
La prima fase di ogni engagement su AD CS è l'enumerazione. Certipy (open source), il tool Python di riferimento per l'attacco ai servizi di certificazione Active Directory, permette di mappare l'intera infrastruttura PKI con un solo comando:
certipy find -u utente@dominio.local -p password -dc-ip 10.0.0.1
Questo produce un output in JSON e un file di testo con tutti i template vulnerabili, le CA disponibili, le permission di enrollment e i flag EKU. Certipy classifica automaticamente le misconfigurazioni note — come ESC1, ESC4, ESC8 — indicando chiaramente quali template consentono a un utente non privilegiato di specificare un Subject Alternative Name (SAN) arbitrario.
Per il corrispettivo Windows, Certify (open source, del progetto GhostPack) offre funzionalità analoghe in C#:
Certify.exe find /vulnerable
Enumera i template con enrollment aperto e SAN abilitato. Una volta identificato un template vulnerabile di tipo ESC1, si richiede un certificato impersonando un Domain Admin:
Certify.exe request /ca:DC01.dominio.local\dominio-CA /template:VulnerableTemplate /altname:administrator
Il certificato ottenuto in formato PEM va convertito in PFX per l'uso con Rubeus o con lo stesso Certipy. Per la conversione si usa OpenSSL:
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out admin.pfx
Con il PFX in mano, l'autenticazione via PKINIT consente di ottenere un TGT Kerberos senza conoscere la password:
certipy auth -pfx admin.pfx -dc-ip 10.0.0.1
Per simulare lo scenario golden certificate, se si ha accesso alla chiave privata della CA (tipicamente tramite backup o accesso fisico al server CA), Certipy forgia certificati arbitrari:
certipy forge -ca-pfx ca.pfx -upn administrator@dominio.local -subject "CN=Administrator"
Sul versante cloud, AADInternals (open source, modulo PowerShell) permette di creare e esportare certificati device per ambienti Entra ID. Il modulo è utile per testare scenari di device join e autenticazione certificato-based in tenant Azure AD.
Mimikatz completa il quadro con il modulo crypto, capace di esportare certificati e chiavi private dal certificate store locale, anche quando contrassegnati come non esportabili:
mimikatz # crypto::certificates /export /systemstore:LOCAL_MACHINE
In laboratorio, è fondamentale documentare ogni template vulnerabile individuato e la catena completa dall'enumerazione all'autenticazione, perché il valore del finding per il cliente sta nel dimostrare l'impatto reale, non la sola esistenza della misconfiguration.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo