ADCS ESC1 → Domain Admin
A low-priv domain user discovers a certificate template that lets enrollees supply an arbitrary subjectAltName, enrolls a cert as Administrator, and authenticates via PKINIT.
§ Context
Assumed environment: ADCS is deployed; at least one published cert template has 'Enrollee supplies subject' enabled, EKU = Client Authentication, and Domain Users have Enroll rights. PKINIT is enabled on the DC.
§ Steps
- 01Low-priv domain userInitial AccessT1078— Valid Accounts
- 02Kerberos auth with cert (PKINIT)Lateral MovementT1550.003— Pass the Ticket
certipy auth -pfx administrator.pfx → TGT and NT hash for Administrator.
- 03DCSync as AdministratorCredential AccessT1003.006— DCSync
- 04Request cert with SAN=AdministratorCredential AccessAD-ESC1— ADCS ESC1 — Misconfigured Template (SAN)
certipy req -u <user>@<dom> -p <pw> -ca <ca> -template <vuln_template> -upn administrator@<dom>
- 05Find vulnerable templateCredential AccessAD-ESC1— ADCS ESC1 — Misconfigured Template (SAN)
certipy find -u <user>@<dom> -p <pw> -dc-ip <dc> -vulnerable
§ References
- T1078Valid Accounts
- T1550.003Pass the Ticket
- T1003.006DCSync
§ Frequently asked
- What is the "ADCS ESC1 → Domain Admin" attack path?
- A low-priv domain user discovers a certificate template that lets enrollees supply an arbitrary subjectAltName, enrolls a cert as Administrator, and authenticates via PKINIT. It chains 5 steps drawn from real-world offensive-security techniques.
- What starting position does this attack require?
- The first step is Low-priv domain user (T1078) — a initial access primitive. Assumed environment: ADCS is deployed; at least one published cert template has 'Enrollee supplies subject' enabled, EKU = Client Authentication, and Domain Users have Enroll rights.
- What is the final impact of this kill-chain?
- The final step lands on Find vulnerable template (AD-ESC1), which falls under Credential Access. From here, an operator typically pivots into post-exploitation or maintains persistence.
- How can defenders detect or prevent this attack?
- Detection and prevention vary per step. Refer to each linked MITRE ATT&CK entry under "References" — every technique on that page lists defensive controls, detection telemetry, and known threat-actor usage.
§ Related dossiers
- Shared techniques3
mitm6 IPv6 SLAAC → NTLM relay → DA
Even when IPv4 is hardened, Windows clients prefer IPv6 with default DHCPv6. mitm6 makes the attacker the IPv6 DNS server, advertises wpad, and relays the captured NTLM to LDAPS for RBCD.
- Shared techniques3
ADCS ESC11 → certificate via RPC (no web enrollment)
When the CA's ICertPassage RPC interface allows NTLM without signing, relay any coerced auth directly to RPC and obtain a cert — bypasses HTTP-only mitigations.
- Shared techniques3
PetitPotam + ADCS ESC8 → Domain Controller takeover
Coerce a DC's machine account to authenticate to the attacker, relay that NTLM to the ADCS HTTP web-enrollment endpoint, and obtain a DC certificate for full domain compromise.
- Shared techniques3
Unconstrained delegation → Capture DC TGT → DCSync
Compromise a host with TRUSTED_FOR_DELEGATION, coerce a DC to authenticate to it, harvest the DC's TGT from its LSASS, then DCSync.
- Shared techniques2
Citrix Bleed → steal authenticated session → MFA bypass
Send a long Host header to a vulnerable NetScaler — memory disclosure leaks an authenticated session token already past MFA. Replay the token to log into the corporate VPN.
- Shared techniques2
Shadow Credentials → PKINIT → NT hash
Where GenericWrite is held over a target, write a fake KeyCredentialLink (whfb-like) and authenticate via PKINIT to recover the target's NT hash.