Active Directory Enumeration & Attacks Cheatsheet
A comprehensive reference for AD enumeration and attack paths — covering external/internal recon, password spraying, network poisoning, credentialed enumeration, ACL abuse, Kerberos attacks, delegation abuse, lateral movement, domain dominance, GPO exploitation, ADCS misconfigurations, cross-forest trust abuse, and advanced exploits. Designed for Red Team engagements.
1. ACL Abuse
Misconfigured permissions on AD objects (users, groups, computers, OUs) are the most common privesc path. Use BloodHound to find them fast.
1.1 GenericAll
Full control over the target object — reset passwords, change SPNs, modify group membership, set RBCD. The most dangerous ACL misconfiguration.
::Enumeration
::Exploitation
OpSec: Password reset generates Event 4724, group changes generate 4728/4732 — both log your SID.
1.2 GenericWrite
Write to any non-protected attribute — set SPNs for Kerberoasting, change logon scripts, add group members, or configure RBCD on computers. Cannot modify the DACL itself (unlike GenericAll).
::Enumeration
::Exploitation
OpSec: SPN changes generate Event 5136. Overwriting a real SPN breaks the legitimate service — always clean up.
1.3 WriteDacl
Modify the DACL of the target object — grant yourself any permission, including GenericAll or DCSync rights. WriteDacl on the domain object = game over.
::Enumeration
::Exploitation
OpSec: Modifying the domain DACL is extremely noisy — generates Event 5136 on the domain root. MDI detects this instantly.
1.4 WriteOwner
Change the owner of an object. The owner implicitly has WriteDacl, so: WriteOwner → take ownership → WriteDacl → grant GenericAll → full compromise.
::Enumeration
::Exploitation
OpSec: Owner change generates Event 5136. The original owner loses implicit rights — may trigger identity governance alerts.
1.5 Self (AddSelf)
Add yourself to a group directly — single-step escalation. If this is on a privileged group (Domain Admins, Server Operators), it's instant privilege escalation.
::Enumeration
::Exploitation
1.6 AllExtendedRights
All extended rights on the target — includes ForceChangePassword (reset password without knowing the current one). On user objects, this = instant account takeover.
::Enumeration
::Exploitation
2. Kerberos Attacks
These require no special privileges — any domain user can perform them. Crack the tickets offline at your leisure.
2.1 AS-REP Roasting
Targets accounts with "Do not require Kerberos preauthentication" enabled. The DC sends back an encrypted TGT without verifying the password first — crack it offline.
::Enumeration
::Exploitation
OpSec: Generates Event 4768 on the DC. Unauthenticated request — hard to attribute without packet capture.
2.2 Kerberoasting
Any domain user can request a service ticket for any SPN. The ticket is encrypted with the service account's NTLM hash — crack it offline. Target accounts with SPNs registered.
::Enumeration
::Exploitation
OpSec: Generates Event 4769 per SPN. Rapid sequential requests are a detection signature — target only high-value SPNs.
3. Delegation Abuse
Kerberos delegation lets a service impersonate users to other services. Misconfigured delegation = impersonate anyone to anything.
3.1 Unconstrained Delegation
A server with unconstrained delegation stores the TGT of every user that authenticates to it. Compromise the server → extract TGTs → impersonate anyone.
::Enumeration
::Exploitation
OpSec: Forced authentication (PetitPotam/PrinterBug) is the noisiest step — consider passive TGT monitoring instead.
3.2 Constrained Delegation
The server can only impersonate users to specific SPNs. With protocol transition (TrustedToAuthForDelegation), you can impersonate any user without them authenticating first.
::Enumeration
::Exploitation
OpSec: S4U2Self/S4U2Proxy generate Event 4769 with the impersonated user's name and target SPN — fully visible to defenders.
3.3 Resource-Based Constrained Delegation (RBCD)
The resource (target) decides who can delegate to it via the msDS-AllowedToActOnBehalfOfOtherIdentity attribute. If you can write to a computer object (GenericAll/GenericWrite), you can configure RBCD and impersonate any user.
::Enumeration
::Exploitation
OpSec: New machine account (Event 4741) + immediate RBCD attribute change (Event 5136) + S4U requests (Event 4769) — strong detection signature.
4. Domain Dominance
Post-DA techniques for persistence and full credential extraction. Once you're here, the domain is owned.
4.1 DCSync
Simulate a Domain Controller and replicate all password hashes from AD. Requires Replicating Directory Changes + Replicating Directory Changes All permissions (default for DA/EA/DC).
::Enumeration
::Exploitation
OpSec: Generates Event 4662 with DCSync GUID. MDI (Microsoft Defender for Identity) detects DCSync from non-DC sources as high-severity.
4.2 Golden Ticket
Forge a TGT using the krbtgt NTLM hash. Grants unrestricted access to everything in the domain. Survives all password resets except krbtgt rotation (must be reset twice).
Prerequisites: krbtgt NTLM hash + domain SID
::Exploitation
OpSec: Nearly impossible to detect — the TGT is cryptographically valid. Defenders look for: abnormal ticket lifetimes, PAC inconsistencies, and Credential Guard.
4.3 Silver Ticket
Forge a Service Ticket (TGS) using a machine account NTLM hash. Grants access to specific services on that machine only. Even harder to detect than Golden Tickets because TGS isn't validated by the KDC.
::Exploitation
OpSec: Nearly undetectable — TGS is validated only by the target service, not the KDC. Enable
ValidateKdcPacSignature registry key on critical servers to defend.
5. GPO Abuse
If you can write to a GPO (GenericAll/GenericWrite on the GPO object), you can push malicious config to every machine in the GPO's scope — local admin, scheduled tasks, logon scripts, software deployment.
::Enumeration
::Exploitation
OpSec: GPO version number increments on every change. SYSVOL modifications + widespread policy reapplication (Event 5312) = strong detection signature.
6. ADCS — ESC1 through ESC8
AD Certificate Services misconfigurations let you request certificates as any user — turning a cert into a password equivalent. ESC1 is the most common and impactful.
ESC1 — Template Substitution (Most Common)
A template is vulnerable if it has: Client Authentication EKU + ENROLLEE_SUPPLIES_SUBJECT enabled + no manager approval + you have enrollment rights. Request a cert as administrator@domain.local.
ESC2 — Any Purpose EKU
Same as ESC1, but the template has no EKU or Any Purpose EKU (2.5.29.37.0) — the cert can be used for anything. Same exploitation as ESC1.
ESC3 — Enrollment Agent
Two-step attack: request an Enrollment Agent certificate → use it to request a cert on behalf of another user.
ESC4 — Writable Certificate Template
You have write permissions on a template object → modify it to become ESC1-vulnerable → exploit as ESC1.
ESC5 — PKI Enrollment Misconfiguration
Misconfigured enrollment endpoints or PKI infrastructure permissions. Broad category — check CA security descriptors and web enrollment service configs.
ESC6 — EDITF_ATTRIBUTESUBJECTALTNAME2
CA-level flag that lets you supply arbitrary SANs on any template — makes every Client Auth template ESC1-equivalent.
ESC7 — Vulnerable Certificate Authority
You have ManageCA or ManageCertificates permissions on the CA itself → enable ESC6 flag, approve pending requests, or issue certs directly.
ESC8 — NTLM Relay to AD CS
Relay NTLM auth to the CA's HTTP enrollment endpoint → get a certificate as the relayed user. Chain with PetitPotam/PrinterBug for domain compromise.
OpSec: ADCS attacks generate Event 4886/4887 on the CA. Requesting a cert for administrator
while logged in as a low-priv user is obvious in logs.
Quick Reference: Attack Path Decision Matrix
| Starting Condition | Attack | Tools |
|---|---|---|
| Any domain user | Kerberoast / AS-REP Roast | Rubeus, Impacket |
| GenericAll on user | Password reset | PowerView, bloodyAD |
| GenericAll on group | Add self to group | PowerView, bloodyAD |
| GenericAll/Write on computer | RBCD | PowerMad + Rubeus, bloodyAD |
| WriteDacl on domain | Self-grant DCSync | PowerView, dsacls |
| Constrained delegation (S4U) | S4U2Self + S4U2Proxy | Rubeus, Impacket |
| Unconstrained delegation | TGT extraction | Mimikatz, Rubeus |
| DA-equivalent access | DCSync → Golden Ticket | Mimikatz, secretsdump |
| Computer account hash | Silver Ticket | Mimikatz, ticketer |
| GPO write access | Local admin / scheduled task | SharpGPOAbuse |
| ADCS ESC1 template | Request cert as admin | Certify, Certipy |
| ADCS ESC4 template | Modify template + ESC1 | Certipy, PowerView |
| ADCS ESC6 CA flag | Any template → ESC1 | Certify, Certipy |
| ADCS ESC8 relay | Relay to CA enrollment | ntlmrelayx, PetitPotam |
Detection & Event IDs
| Event ID | Log Source | Attack Type | Description |
|---|---|---|---|
| 4662 | Security | DCSync / ACL abuse | Object accessed with extended rights |
| 4670 | Security | WriteDacl / WriteOwner | Permissions changed on an object |
| 4724 | Security | Password reset | Password was reset |
| 4728 | Security | Group modification | Member added to global security group |
| 4732 | Security | Group modification | Member added to local security group |
| 4738 | Security | Account change | User account was changed |
| 4741 | Security | RBCD | Computer account created |
| 4768 | Security | AS-REP Roast / Golden Ticket | Kerberos TGT request |
| 4769 | Security | Kerberoast / Delegation | Kerberos TGS request |
| 4886 | CA Audit | ADCS | Certificate request submitted |
| 4887 | CA Audit | ADCS | Certificate issued |
| 5136 | Security | ACL / RBCD / GPO | Directory object modified |
| 5312 | Security | GPO abuse | Group Policy applied on target |
7. External Reconnaissance
Passive intelligence gathering before touching the target network. No direct interaction with the target's infrastructure.
7.1 Passive Domain & Infrastructure Discovery
- ▹ASN/IP Registrars: IANA, ARIN, RIPE, BGP Toolkit
- ▹DNS Utilities: Domaintools, PTRArchive, viewdns.info, ICANN
- ▹Breach Data & Credentials: HaveIBeenPwned, Dehashed, Greyhat Warfare, Trufflehog
7.2 Actionable Commands
OpSec: Passive recon generates no alerts on the target. Breach data queries may log your IP on third-party platforms.
8. Internal Network Recon & Unauthenticated Enumeration
First steps after landing on the internal network — no credentials required.
8.1 Host Discovery & Packet Sniffing
8.2 Unauthenticated User Enumeration
8.3 Unauthenticated Password Policy Extraction
OpSec: Kerberos enumeration (Kerbrute) generates Event 4768 but avoids lockout. SMB NULL session attempts generate Event 4625. Check password policy first to avoid lockouts.
9. Password Spraying
Try a small set of passwords against many accounts. Always check the password policy first to avoid lockouts.
9.1 Target List Generation
9.2 Execution
OpSec: SMB spraying generates Event 4625 per failed attempt. Kerbrute avoids this but still increments the bad password count. Respect the lockout threshold and observation window.
10. Network Poisoning (LLMNR / NBT-NS)
Poison name resolution broadcasts to capture NTLMv2 hashes from users authenticating to non-existent hosts.
10.1 Responder (Linux)
10.2 Inveigh (Windows)
10.3 Cracking Captured NTLMv2 Hashes
OpSec: Active poisoning is detectable by network monitoring (duplicate responses, suspicious LLMNR/NBT-NS replies). Use passive analysis mode first to assess the environment.
11. Credentialed Enumeration
With valid domain credentials — enumerate users, groups, shares, sessions, and graph the full attack surface.
11.1 CrackMapExec (CME)
11.2 SMBMap
11.3 Windapsearch
11.4 BloodHound Ingestors
11.5 Windows Native & PowerView
Bypass EDR trigger: Use net1 instead of net.
OpSec: BloodHound/SharpHound generates thousands of LDAP queries — detectable by MDI and SIEM.
Use targeted collection (-c Session,ACL) instead of -c All when stealth matters.
12. Lateral Movement & Remote Access
Moving between hosts after obtaining credentials or hashes.
12.1 Remote Connections
12.2 SQL Server Execution
OpSec: PSExec creates a service (Event 7045) and writes a binary to ADMIN$. WMIExec is
stealthier but still generates Event 4688 (process creation). Evil-WinRM uses WinRM (Event
91/168).
13. Living Off The Land / Host Recon
Post-compromise host reconnaissance and evasion using built-in tools.
13.1 Environment & Network Checks
13.2 Evasion Techniques
13.3 WinRM "Double Hop" Workarounds
OpSec: PowerShell V2 downgrade generates Event 400/403 in the PowerShell log. PSSession configuration changes generate Event 91.
14. Cross-Forest / Trust Abuse
Enumerating and abusing trust relationships between domains and forests.
14.1 Trust Enumeration
14.2 ExtraSids Attack (Child → Parent Domain Compromise)
Requires full compromise of the child domain (KRBTGT hash).
OpSec: ExtraSids tickets contain SID history from another domain — MDI detects this as "Suspicious SID-History addition." The forged ticket also generates abnormal Event 4769 with cross-domain SIDs.
15. GPP & SYSVOL Misconfigurations
Group Policy Preferences (GPP) stored passwords in SYSVOL encrypted with a publicly known AES key (MS14-025). Legacy environments may still have these artifacts.
OpSec: Accessing SYSVOL is normal domain behavior and generates minimal logging. The GPP passwords may be stale — always verify credentials before using them.
16. Advanced Exploits
16.1 NoPac — SamAccountName Spoofing (CVE-2021-42278 / CVE-2021-42287)
Exploits the lack of validation when renaming a computer account to match a Domain Controller's sAMAccountName. Combined with Kerberos PAC confusion to impersonate a DC.
16.2 PetitPotam — NTLM Relay to ADCS (CVE-2021-36942)
Force a DC to authenticate to your relay, then relay to the ADCS web enrollment endpoint to obtain a certificate as the DC machine account.
OpSec: PetitPotam triggers NTLM authentication from the DC (Event 4624 Type 3). The relay generates Event 4886/4887 on the CA. Patched in KB5005413 — but many environments remain vulnerable.
