Back to All Modules

Active Directory Attack Overview

#Overview

Active Directory is the backbone of enterprise identity management. A misconfiguration chain from unauthenticated enumeration through to Domain Admin typically follows a predictable progression: anonymous access reveals usernames or credentials, authenticated access unlocks BloodHound ingestion and ACL abuse, and privileged access enables credential dumping and persistence. This index maps 15 distinct AD attack techniques across five access levels, providing a full-spectrum reference for internal pentests.

#Attack Progression

UNAUTHENTICATED
  |-- Anonymous LDAP bind -> password in description (7-anonymous-ldap-to-foothold)
  |-- SMB null session -> GPP cpassword (5-gpp-password-extraction)
  |-- RID cycling (lookupsid) -> user list
  |-- AS-REP Roasting (2-as-rep-roasting)

AUTHENTICATED USER
  |-- Password spraying across protocols (4-password-spraying)
  |-- Kerberoasting (3-kerberoasting)
  |-- BloodHound ingestion -> ACL analysis
  |-- NTLM relay (6-ntlm-theft-and-relay)
  |-- ADCS enumeration (9-adcs-exploitation)

PRIVILEGED USER (specific groups)
  |-- Server Operators: service binary hijack (11-group-membership-abuse)
  |-- Backup Operators: NTDS.dit dump (11-group-membership-abuse)
  |-- DNSAdmins: DLL injection (11-group-membership-abuse)
  |-- Account Operators: group manipulation (11-group-membership-abuse)
  |-- ReadLAPSPassword: local admin retrieval (12-laps-and-gmsa)
  |-- ReadGMSAPassword: managed account hash (12-laps-and-gmsa)

DOMAIN PRIVILEGED (ACL holder)
  |-- GenericAll on user -> force password / shadow credential (10-acl-abuse)
  |-- WriteOwner on group -> add self -> escalate (10-acl-abuse)
  |-- WriteDACL on domain -> grant DCSync (10-acl-abuse)
  |-- Targeted Kerberoasting via WriteSPN (10-acl-abuse)
  |-- RBCD (8-kerberos-delegation-attacks)
  |-- Constrained delegation abuse (8-kerberos-delegation-attacks)
  |-- AD Recycle Bin recovery (15-ad-recycle-bin-attacks)

DOMAIN ADMIN
  |-- DCSync (13-dcsync-and-golden-ticket)
  |-- Golden/Silver/Diamond Tickets (13-dcsync-and-golden-ticket)
  |-- Cross-forest attacks (14-trusts-and-cross-forest)
  |-- ADFS/SAML attacks (16-adfs-and-saml-attacks)
TEXT

#Decision Tree: From Access Level to Attack

What access do you have?
|
+-- NO CREDENTIALS
|   +-- SMB Null Session? --> GPP password extraction, user enumeration
|   +-- Anonymous LDAP? ---> windapsearch, user description passwords
|   +-- User list exists? -> AS-REP Roasting (GetNPUsers)
|   +-- Username list? ----> Password spraying
|
+-- LOW-PRIVILEGED USER
|   +-- Kerberos enabled? --> Kerberoasting (GetUserSPNs)
|   +-- WinRM access? -----> Upload BloodHound collector, enumerate
|   +-- SMB write share? -> ntlm_theft, SCF/LNK attacks
|   +-- ADCS present? -----> certipy find (ESC1-16)
|   +-- SPN write rights? -> Targeted Kerberoasting
|
+-- PRIVILEGED GROUP MEMBER
|   +-- Server Operators? -> sc config binPath hijack
|   +-- Backup Operators? -> NTDS.dit dump via diskshadow or wbadmin
|   +-- DNSAdmins? ---------> DLL injection via DNS service
|   +-- Account Operators? -> Add self to Exchange groups -> DCSync
|   +-- LAPS_Readers? ------> Get-AdmPwdPassword
|   +-- Infrastructure (gMSA)? -> Read msDS-ManagedPassword
|
+-- ACL HOLDER
|   +-- GenericAll on User? ----> ForceChangePassword / Shadow Credential
|   +-- WriteOwner on Group? --> Take ownership -> add self -> escalate
|   +-- WriteDACL on Domain? --> Grant DCSync to controlled account
|   +-- GenericWrite on User? -> Targeted Kerberoasting (set SPN)
|   +-- GenericWrite on Computer? -> RBCD attack
|   +-- WriteProperty on GPO? -> GPO abuse via SharpGPOAbuse
|   +-- AddSelf on Group? ------> Add self to Infrastructure/LAPS_Readers
|
+-- DOMAIN ADMIN
    +-- DCSync with secretsdump.py
    +-- Forge Golden Ticket (krbtgt hash + domain SID)
    +-- Cross-forest: foreign group membership, trust key abuse
    +-- ADFS: Golden SAML, token signing certificate extraction
TEXT

#Cross-Reference Map

#FileAccess RequiredKey ToolsReal-World Machines
2as-rep-roasting.mdNone (user list)GetNPUsers, hashcat 18200Blackfield, Forest, Sauna, Rebound
3kerberoasting.mdDomain userGetUserSPNs, hashcat 13100Active, Rebound
4password-spraying.mdNone (user list)netexec, crackmapexecCicada, Monteverde
5gpp-password-extraction.mdSMB read accessgpp-decrypt, smbclientActive
6ntlm-theft-and-relay.mdSMB write accessResponder, ntlmrelayxFlight, Fluffy
7anonymous-ldap-to-foothold.mdLDAP network accesswindapsearch, ldapsearchCascade, Forest, Monteverde
8kerberos-delegation-attacks.mdVariousRubeus, getST, rbcd.pyRebound, Authority
9adcs-exploitation.mdDomain usercertipy, Certify, PKINITtoolsEscape, Fluffy, Certified, Authority, TombWatcher
10acl-abuse.mdDomain userbloodyAD, PowerView, dacleditForest, Fluffy, Certified, Multimaster, TombWatcher
11group-membership-abuse.mdGroup membersc, robocopy, diskshadowReturn, Blackfield, Forest, Multimaster
12laps-and-gmsa.mdSpecific groupLAPSToolkit, netexec, bloodyADTimelapse, TombWatcher, Rebound
13dcsync-and-golden-ticket.mdReplication rightssecretsdump, ticketerSauna, Forest, Flight, Rebound, Authority
14trusts-and-cross-forest.mdDomain usernetdom, Get-ADTrust, nltest(conceptual)
15ad-recycle-bin-attacks.mdDomain userGet-ADObject, Restore-ADObjectCascade, TombWatcher
16adfs-and-saml-attacks.mdDA / ADFS admin(conceptual)(conceptual)

#Start Here: Automated Enumeration

Before working through the techniques below one by one, run the Automated Active Directory Enumeration Playbook -- a single script that performs the full unauthenticated and authenticated sweep (BloodHound, Kerberoasting, delegations, ADCS/ESC, trusts, ACLs, honeypot heuristics) and saves every result into organized files mapped to the attack pages in this module. The manual flow below is what that playbook automates.

#Common Enumeration Flow

# Step 1: Scan and identify domain controller
nmap -p- --min-rate=1000 -T4 <TARGET>
nmap -p<open_ports> -sC -sV <TARGET>

# Step 2: Attempt anonymous access
smbclient -L //<TARGET>                          # Null session share listing
smbmap -H <TARGET>                                # Anonymous share enumeration
ldapsearch -x -H ldap://<TARGET> -b "dc=<domain>"  # Anonymous LDAP bind
./windapsearch.py -d <domain> --dc-ip <TARGET> -U  # User enumeration

# Step 3: Get user list
lookupsid.py guest@<TARGET> -no-pass 10000         # RID cycling
impacket-lookupsid '<domain>/guest'@<TARGET> -no-pass | grep 'SidTypeUser'

# Step 4: Try AS-REP roasting
GetNPUsers.py -usersfile users.txt <domain>/ -no-pass -dc-ip <TARGET>

# Step 5: Spray common passwords
netexec smb <TARGET> -u users.txt -p passwords.txt

# Step 6: BloodHound ingestion (once credentials exist)
bloodhound-python -d <domain> -u <user> -p '<pass>' -dc <dc> -c all -ns <ip>

# Step 7: ADCS enumeration (once credentials exist)
certipy find -u <user>@<domain> -p '<pass>' -dc-ip <TARGET> -vulnerable
BASH

#Tool Quick Reference

ToolPurposeInstall
ImpacketGetNPUsers, GetUserSPNs, secretsdump, ticketer, getST, lookupsidpip install impacket
netexec / crackmapexecSMB/LDAP/WinRM enumeration, spraying, module executionpipx install git+https://github.com/Pennyw0rth/NetExec
BloodHoundAD relationship visualization and attack path discoveryapt install bloodhound; pip install bloodhound-python
certipyADCS exploitation (ESC1-16)pip3 install certipy-ad
bloodyADACL abuse, group manipulationpip install bloodyad
PowerViewDomain object enumeration and ACL manipulation (Windows)PowerShell module
hashcatPassword crackingapt install hashcat
Evil-WinRMPowerShell Remoting shellgem install evil-winrm
ResponderNTLM hash capture via LLMNR/NBT-NS/mDNS poisoningapt install responder
PKINITtoolsShadow credential exploitationGitHub: dirkjanm/PKINITtools

#Source Machines

  • Active (Easy) -- GPP + Kerberoasting
  • Sauna (Easy) -- AS-REP + DCSync
  • Forest (Easy) -- AS-REP + Account Operators + DCSync
  • Cicada (Easy) -- Password spray + SeBackupPrivilege
  • Cascade (Medium) -- Anonymous LDAP + VNC decrypt + AD Recycle Bin
  • Return (Easy) -- Printer LDAP capture + Server Operators
  • Timelapse (Easy) -- SMB + PFX cracking + LAPS
  • Fluffy (Easy) -- NTLM theft + ACL chain + Shadow Credentials + ESC16
  • Certified (Medium) -- ACL chain + Shadow Credentials + ESC9
  • Escape (Medium) -- NTLM relay via MSSQL + ESC1
  • Monteverde (Medium) -- Password spray + Azure AD Connect extraction
  • Authority (Medium) -- Ansible vault cracking + ESC1 + PassTheCert
  • Blackfield (Hard) -- AS-REP + LSASS dump + Backup Operators
  • Flight (Hard) -- NTLM theft + DCSync via machine account
  • TheFrizz (Medium) -- CVE-2023-45878 + password cracking + GPO abuse
  • Rebound (Insane) -- Pre-auth Kerberoasting + Descendant Object Takeover + Cross-session relay + gMSA + RBCD
  • Multimaster (Insane) -- SQLi + VSCode debugger + GenericWrite AS-REP + Server Operators
  • TombWatcher (Medium) -- Targeted Kerberoasting + gMSA + ForceChangePassword + Shadow Credential + AD Recycle Bin + ESC15