Active Directory Attack Paths
An attack path is a chain of misconfigurations and stolen credentials that takes an attacker from one compromised account to control of an Active Directory domain. This course covers how those chains are found, the Kerberos and NTLM abuses that make them work, and how to map them with graph tooling.
itOffensive security and application security | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Active Directory Attack Paths
An attack path is the route an attacker walks from one boring account to the keys of a whole Windows domain. Not a hole. Not a missing patch. A chain of perfectly reasonable decisions, each of which hands the walker one more edge of the map. That is the annoying part: the domain is not broken. It is helpfully connected.
The load-bearing idea is the graph. Users, computers, and groups are nodes; memberships, local admin rights, sessions, and delegated permissions are edges. Attackers run pathfinding on this graph, most famously with BloodHound. Defenders, slightly later, run the same tooling, which tells you something about the graph's honesty.
Three abuses carry most of the weight. Kerberoasting: any user can request a service ticket for any account with a service principal name, and a weak service password makes that ticket crackable offline, quietly, with no failed logons anywhere. Pass the hash: NTLM needs the hash, not the password, so one shared local admin password means one compromised laptop means every laptop. Golden ticket: the krbtgt account signs every ticket-granting ticket in the domain, and whoever holds its key, usually via DCSync, can forge membership in anything, for anyone, until that key is rotated twice.
Here is the surprise: direct membership in Domain Admins barely matters. What matters is everything that connects an ordinary account to that privilege. A help desk worker's password-reset right. A writable attribute on one computer, which since 2019 converts a single relayed machine logon into full host takeover. Ten free computer accounts per user, courtesy of MachineAccountQuota, waiting to become delegation stepping stones. The CISA red team walked an entire domain, undetected for three months, without ever doing anything exotic.
The Cheatsheet is the map of which edge feeds which attack, and the Practice reference walks the whole chain in a lab you own. GOAD, in the Exercise, is deliberately vulnerable on purpose. The Field Notes tab carries what teams get wrong at a cost nobody states out loud.
One honest warning before you go further: these techniques are a crime outside an authorized engagement, and the scope document, not your curiosity, decides what authorized means. The techniques also assume a classic on-premises Kerberos world; cloud-synced estates shift the path surface toward tokens, which play by different rules entirely.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://learn.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview
Supports
- Kerberos version 5 is the authentication protocol implemented by Windows Server domains
- The KDC is integrated with domain controller security services and uses the AD DS database as its security account database
- Delegated authentication lets a service impersonate a client when accessing back-end resources
- Renewable session tickets mean servers do not contact a DC for each client authentication
- https://learn.microsoft.com/en-us/windows-server/security/kerberos/kerberos-constrained-delegation-overview
Supports
- Constrained delegation restricts the services to which a server can act on behalf of a user
- Resource-based constrained delegation is configured on the resource service account and works across domains
- S4U2Proxy extensions allow a service to obtain a service ticket to a back-end service on a user's behalf
- The KDC always allows protocol transition when performing resource-based constrained delegation
- https://learn.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/protected-users-security-group
Supports
- Protected Users members cannot authenticate with NTLM, DES, or RC4
- Members cannot delegate with unconstrained or constrained delegation
- TGT lifetime is capped at 240 minutes for members and cannot be renewed
- Kerberos stops caching plaintext credentials for members after the initial TGT
- The built-in Administrator account is exempt from authentication policy silos
- https://learn.microsoft.com/en-us/security-updates/securitybulletins/2014/ms14-068
Supports
- MS14-068 (CVE-2014-6324) allowed elevation of unprivileged domain user to domain administrator
- The flaw was in Kerberos KDC signature validation, allowing forged tickets claiming elevated membership
- Published November 18, 2014; known targeted attacks existed at publication
- https://attack.mitre.org/techniques/T1550/
Supports
- Alternate authentication material (password hashes, Kerberos tickets, tokens) enables lateral movement without passwords
- Mitigation M1026: limit credential overlap across systems to prevent lateral movement
- Mitigation M1018: do not allow a domain user in local administrator groups on multiple systems
- https://attack.mitre.org/techniques/T1550/002/
Supports
- Pass the hash authenticates with a stolen NT hash, bypassing cleartext password requirements
- Overpass the hash uses a password hash to create a valid Kerberos ticket
- Named adversary use includes Wizard Spider, APT28, LAPSUS$, and ransomware operations
- https://attack.mitre.org/techniques/T1558/
Supports
- Golden ticket recovery requires resetting the KRBTGT password twice with replication between, invalidating existing golden tickets
- Mitigation M1041: enable AES rather than RC4 for Kerberos encryption
- Mitigation M1027: strong 25+ character passwords for service accounts, Group Managed Service Accounts
- https://attack.mitre.org/techniques/T1558/001/
Supports
- Possession of the KRBTGT hash enables forging TGTs for any account in the domain
- The KDC runs on domain controllers; KRBTGT encrypts and signs all Kerberos tickets
- Consider rotating the KRBTGT password every 180 days
- https://attack.mitre.org/techniques/T1558/003/
Supports
- Kerberoasting requests TGS tickets for any SPN, permitted for any authenticated user
- RC4-encrypted tickets (etype 23) use the service account NT hash as the key, crackable offline
- Detection: event 4769 with RC4 encryption (0x17) and unusual request volume
- Tools used by FIN7, Wizard Spider, and SolarWinds intruders include Rubeus, Mimikatz, and Invoke-Kerberoast
- https://attack.mitre.org/techniques/T1003/006/
Supports
- DCSync simulates domain controller replication from a remote host using the directory replication API
- Members of Administrators, Domain Admins, Enterprise Admins, or DC computer accounts can pull password data including KRBTGT hashes
- Mitigation M1015: manage the Replicating Directory Changes permissions
- Detection: replication (DRSUAPI) operations from non-DC endpoints
- Observed use by LAPSUS$, Scattered Spider, Earth Lusca, and APT29
- https://attack.mitre.org/techniques/T1098/
Supports
- Account manipulation preserves or elevates adversary access, including adding accounts to groups
- Mitigation M1026: do not allow domain administrator accounts for day-to-day operations on unprivileged systems
- https://attack.mitre.org/techniques/T1136/002/
Supports
- Domain account creation via net user /add /domain requires sufficient access but establishes secondary credentialed access
- Detection: process creation on a domain controller followed by event 4720
- Observed in Sandworm and ransomware intrusions
- https://attack.mitre.org/software/S0521/
Supports
- BloodHound collects AD relationship data and identifies attack paths within an environment
- SharpHound is the BloodHound collector used to scrape AD information including users, groups, ACLs, and sessions
- Used by Wizard Spider, Chimera, APT29, TA505, and Play ransomware operations
- Originally released 2016, demonstrating hidden paths to Domain Admins
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-059a
Supports
- Complete attack path narrative: spearphishing to enumeration to unconstrained delegation server compromise to DCSync to golden tickets
- DFSCoerce abused MS-DFSNM to relay DC authentication to a compromised SharePoint server with unconstrained delegation
- Unconstrained delegation hosts store TGTs of all users who authenticate to them; 52 such hosts found active
- krbtgt password unchanged for over a decade enabled golden ticket persistence
- Organization with mature posture failed to detect the entire three-month assessment, including 13 deliberate measurable events
- Standard user accounts with local admin access to critical servers enabled the path from phished user to domain compromise
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-347a
Supports
- SVR (APT29) used Mimikatz in memory and Rubeus to craft golden tickets for long-term access
- PowerSploit PowerView commands used for domain reconnaissance in real intrusions
- Registry hives exfiltrated and registry modifications used to weaken defenses
- https://eladshamir.com/2019/01/28/Wagging-the-Dog.html
Supports
- S4U2Proxy for resource-based constrained delegation accepts non-forwardable evidence tickets by documented design (MS-SFU 3.2.5.2)
- Every TGS produced by S4U2Proxy is forwardable
- Any domain user can abuse MachineAccountQuota (default 10) to create a computer account with an SPN
- RBCD requires only write access to the target's msDS-AllowedToActOnBehalfOfOtherIdentity plus any SPN-bearing account
- The printer bug can force domain controllers to authenticate to attacker-controlled hosts
- RBCD to krbtgt is a persistence technique producing TGTs on demand
- https://dirkjanm.io/worst-of-both-worlds-ntlm-relaying-and-kerberos-delegation/
Supports
- mitm6 plus WPAD spoofing coerces authentications over HTTP without SMB signing applying
- Relaying a machine account into LDAP writes the RBCD attribute, yielding SYSTEM on any Windows computer with zero credentials
- LDAP relay mitigations require both LDAP signing and channel binding
- Computer accounts can also create new computer accounts via MachineAccountQuota
- https://www.thehacker.recipes/ad/movement/kerberos/delegations/rbcd
Supports
- msDS-AllowedToActOnBehalfOfOtherIdentity introduced with Windows Server 2012; RBCD needs that functional level
- Delegating account needs an SPN, a trailing-dollar machine account, or SPN-less U2U abuse
- Protected Users and sensitive-accounts block S4U2Proxy delegation, with RID 500 Administrator a documented edge case
- RBCD chain tooling: rbcd.py to write the attribute, getST.py for S4U, pass the ticket to finish
- https://thedfirreport.com/2020/10/08/ryuks-return/
Supports
- Real intrusion: email to domain-wide ransomware in 29 hours using AdFind, Rubeus Kerberoasting, and Cobalt Strike
- Discovery outputs exfiltrated over FTP; Kerberoasting performed with Rubeus on day 2
- Backup servers targeted first for encryption; Veeam and SQL services stopped before ransomware execution
- https://www.crowdstrike.com/blog/hidden-administrative-accounts-bloodhound-to-the-rescue/
Supports
- Hidden administrator accounts hold ACL-based admin access to domain controllers without Domain Admins membership or monitoring
- A monitoring service account had local admin on every domain controller, invisible to group-based reviews
- A service account reused across two domains with the same password enabled cross-domain compromise
- BloodHound's derivative local admin queries reveal accounts missed by group membership inspection
- https://github.com/Orange-Cyberdefense/GOAD
Supports
- GOAD is a deliberately vulnerable pentest Active Directory lab distributed as code for practicing common attack techniques
- Variants: GOAD (5 VMs, 2 forests, 3 domains), GOAD-Light (3 VMs), MINILAB, SCCM
- The lab must be isolated; it is intentionally vulnerable
- https://github.com/BloodHoundAD/BloodHound
Supports
- BloodHound is the canonical graph tool for AD attack path analysis, with SharpHound as its ingestor
- https://github.com/GhostPack/Rubeus
Supports
- Rubeus is the standard C# toolkit for Kerberos interaction and abuse, including roasting, S4U, and ticket capture
- https://github.com/fortra/impacket
Supports
- Impacket provides the Python example scripts used Linux-side: GetUserSPNs, secretsdump, getST, rbcd, ntlmrelayx
- https://github.com/gentilkiwi/mimikatz
Supports
- Mimikatz implements sekurlsa LSASS dumping, lsadump DCSync, and kerberos golden ticket modules referenced by course files
- https://github.com/Pennyw0rth/NetExec
Supports
- NetExec is the maintained CrackMapExec successor for network execution validation, listed in the awesome-pentest ecosystem
- https://github.com/lgandx/Responder
Supports
- Responder poisons LLMNR, NBT-NS, and mDNS to capture NetNTLM responses on local networks
- https://github.com/kevin-robertson/Powermad
Supports
- Powermad implements MachineAccountQuota abuse, creating machine accounts over LDAP from user context
- https://github.com/PowerShellMafia/PowerSploit
Supports
- PowerSploit's PowerView module provides the domain enumeration functions used in the practice reference; archived but standard vocabulary
- https://github.com/dirkjanm/krbrelayx
Supports
- krbrelayx implements Kerberos unconstrained delegation abuse and NTLM relay targets for S4U chains
- https://github.com/fox-it/mitm6
Supports
- mitm6 performs DHCPv6-based DNS takeover enabling WPAD and relay scenarios on IPv4 networks
- https://github.com/dirkjanm/CVE-2020-1472
Supports
- Zerologon (CVE-2020-1472) exploits Netlogon AES-CFB8 to reset the domain controller machine account password
- https://github.com/SpecterOps/SharpHound
Supports
- SharpHound is the BloodHound data collector for users, groups, ACLs, sessions, delegation, and trusts
- https://hashcat.net/hashcat/
Supports
- hashcat is the GPU password recovery tool used to crack Kerberoast (mode 13100) and AS-REP (mode 18200) material offline
- https://www.openwall.com/john/
Supports
- John the Ripper is the classic CPU password cracker with Kerberos ticket format support
- https://www.bloodhoundenterprise.io/
Supports
- BloodHound Enterprise operationalizes attack path management for defenders as continuous measurement
- https://www.pingcastle.com/
Supports
- PingCastle grades AD misconfiguration posture including delegation sprawl and relay exposure
- https://www.microsoft.com/en-us/security/business/siem-and-xdr/microsoft-defender-for-identity
Supports
- Defender for Identity monitors the behaviors covered in this course, including DCSync and Kerberoast patterns
- https://github.com/enaqx/awesome-pentest
Supports
- The awesome-pentest list curates the ecosystem tooling this course's awesome links draw from: BloodHound, Rubeus, Impacket, Responder, CrackMapExec, PowerSploit, hashcat, John the Ripper, Metasploit
- https://github.com/sbilly/awesome-security
Supports
- The awesome-security list carries network pentesting tooling including Metasploit Framework, Nmap, and CrackMapExec
- https://attack.mitre.org/techniques/T1558/002/
Supports
- A silver ticket is forged with the service account's key and is valid for that one service
- Silver ticket forgery involves no KDC exchange, so no domain controller ticket events are generated
- https://attack.mitre.org/techniques/T1558/004/
Supports
- AS-REP roasting collects crackable material from accounts without Kerberos preauthentication, requiring no prior TGT
- https://www.thehacker.recipes/ad/movement/mitm-and-coerced-authentications/rpc-coercions/ms-efsr
Supports
- MS-EFSR coercion primitives (PetitPotam) force machines to authenticate to attacker-chosen hosts
- https://www.thehacker.recipes/ad/movement/kerberos/delegations/bronze-bit
Supports
- Bronze bit (CVE-2020-17049) allowed forging the forwardable flag in S4U constrained delegation requests, patched December 2020
- https://en.wikipedia.org/wiki/Kerberos_(protocol)
Supports
- Kerberos version 5 published 1993 as RFC 1510, obsoleted by RFC 4120 in 2005
- Kerberos became the default authentication method for Windows 2000 and later
- KDC compromise allows an attacker to impersonate any user, the property behind golden ticket impact
- Clock skew tolerance is five minutes by default, a limitation on ticket replay
