A complete hands-on learning path — from AD basics to advanced attack, defence, cloud identity, risk and enterprise incident response — using free tools and Windows Server evaluation lab
| Software | Purpose | Download | Cost |
|---|---|---|---|
| VMware Workstation Player | Virtualisation platform (or use VirtualBox) | vmware.com | Free |
| Windows Server 2022 Eval | Domain Controller OS — 180-day free eval | microsoft.com | 180-day eval |
| Windows 10/11 Enterprise Eval | Domain-joined workstation — 90-day free eval | microsoft.com | 90-day eval |
| Kali Linux | Attacker VM for offensive labs | kali.org | Free |
lab.local → Set DSRM password → Install → Server will reboot automatically.WS01.192.168.1.10lab.local → Enter DC Administrator credentials → Reboot.lab-baseline-clean before starting the modules. Revert to this snapshot between labs.A Domain is a logical grouping of AD objects (users, computers, groups). A Forest is a collection of one or more domains sharing a schema and configuration. Think: Domain = country, Forest = continent. Your lab uses one domain (lab.local) in one forest.
The server that runs AD. It handles authentication (who are you?), authorisation (what can you access?), and stores the NTDS.dit database — the crown jewels of any AD environment.
Users — people and service accounts. Computers — domain-joined machines. Groups — collections of objects (Security vs Distribution). Organisational Units (OUs) — folders that organise objects and apply Group Policy. Group Policy Objects (GPOs) — settings pushed to users/computers.
The default authentication protocol in AD. Three parties: Client, KDC (DC), and Service. Key tickets: TGT (Ticket Granting Ticket — your "master pass") and TGS (Service Ticket — access to a specific service). Understanding this is essential for attacks like Kerberoasting and Pass-the-Ticket.
The older, weaker fallback authentication protocol. Uses challenge-response with NTLM hashes. Still widely used (SMB shares, older apps). Vulnerable to Pass-the-Hash, NTLM relay, and offline cracking.
| Tool | Purpose | Platform | Cost |
|---|---|---|---|
| BloodHound + SharpHound | Visual AD attack path mapping — the most powerful AD recon tool | Any (Docker/Linux/Win) | Free |
| PowerView | PowerShell AD enumeration — situational awareness | Windows | Free |
| ADRecon | Comprehensive AD reconnaissance report generator | Windows | Free |
| ldapdomaindump | Dumps AD info via LDAP — HTML/JSON/CSV output | Kali Linux | Free |
| enum4linux-ng | Enumerate Windows/Samba shares, users, groups over SMB | Kali Linux | Free |
| rpcclient | Manual RPC enumeration — great for stealth | Kali Linux | Free |
http://localhost:8080 in your browser. Default creds: admin / bloodhound
$krb5asrep$23$...
| Event ID | Meaning | Attack Indicator |
|---|---|---|
4624 | Successful logon | Unexpected logon times/locations |
4625 | Failed logon | Multiple failures = spray/brute force |
4768 | Kerberos TGT requested | AS-REP Roasting |
4769 | Kerberos TGS requested | Kerberoasting (RC4 encryption type) |
4771 | Kerberos pre-auth failed | Password spray against Kerberos |
4776 | NTLM auth attempt | Pass-the-Hash, NTLM relay |
4662 | Operation on AD object | DCSync (replication rights used) |
4720 | User account created | Backdoor account creation |
4728 | Member added to security group | Privilege escalation |
| Room | Focus | Difficulty | Link |
|---|---|---|---|
| Active Directory Basics | AD fundamentals and structure | 🟢 Easy | Link → |
| Attacktive Directory | Full AD attack chain on a real DC | 🟡 Medium | Link → |
| Post-Exploitation Basics | Mimikatz, BloodHound, PtH, Golden Ticket | 🟡 Medium | Link → |
| Kerberos 101 | Kerberoasting, AS-REP Roasting deep dive | 🟡 Medium | Link → |
| BloodHound | BloodHound CE setup and attack path analysis | 🟡 Medium | Link → |
| AD Hardening | Defence, GPO hardening, tiered admin | 🟡 Medium | Link → |
| Compromising Active Directory | Full attack chain: enumeration → DA | 🔴 Hard | Link → |
| Concept | On-Prem AD Equivalent | Key Difference |
|---|---|---|
| Entra ID Tenant | Forest | Cloud-native, no trust boundaries the same way |
| Entra ID User | AD User Object | Can be cloud-only or synced (hybrid) |
| Conditional Access Policy | GPO + NTLM restrictions | Risk-based, signal-driven (location, device, risk score) |
| Entra ID Roles | AD Security Groups (Domain Admins etc.) | Granular RBAC, no inherent SID history risk |
| PIM (Privileged Identity Mgmt) | Manual privileged group membership | Just-in-time, time-bound role activation |
| Entra Connect | N/A — the sync bridge | High-value target: compromise = on-prem + cloud pivot |
| Control | Why |
|---|---|
| Treat as Tier 0 asset | Compromise grants on-prem + cloud admin |
| No internet access from the server | Reduces malware/C2 risk on a crown-jewel host |
| Restrict RDP to PAW/jump host only | Same lateral-movement logic as DC tiering |
| Enable Entra Connect Health monitoring | Detect sync anomalies and outages |
| Disable sync for the on-prem Domain Admins group | Prevents on-prem compromise from auto-granting cloud privilege |
seamless SSO, staged rollout, and writeback features (password writeback, group writeback) — each expands the attack surface differently between on-prem and cloud.| STRIDE Category | AD Example | Relevant Module |
|---|---|---|
| Spoofing | LLMNR/NBT-NS poisoning to impersonate a legitimate host (Responder) | Module 3 |
| Tampering | Modifying ACLs on objects (GenericAll/WriteDACL abuse) | Module 4 |
| Repudiation | Clearing Security event logs after a Golden Ticket attack | Module 4 / 6 |
| Information Disclosure | Anonymous LDAP bind exposing the full directory | Module 2 |
| Denial of Service | Account lockout policy abuse — locking out all privileged accounts | Module 1 / 5 |
| Elevation of Privilege | Kerberoasting, DCSync, unconstrained delegation abuse | Module 3 / 4 |
| Finding | Likelihood (1-5) | Impact (1-5) | Risk Score | Priority |
|---|---|---|---|---|
| Kerberoastable service account with weak password | 5 | 5 | 25 | 🔴 Critical |
| Anonymous LDAP bind enabled | 4 | 3 | 12 | 🟠 High |
| No tiered admin model (Domain Admins log into workstations) | 4 | 5 | 20 | 🔴 Critical |
| Legacy auth protocols not blocked in Entra ID | 4 | 4 | 16 | 🟠 High |
| Audit logging not centralised to SIEM | 3 | 4 | 12 | 🟠 High |
| Outdated password policy (no length/complexity) | 3 | 3 | 9 | 🟡 Medium |
P: Confirm baseline of normal TGS request volume per service account.
I: Validate the alert — pull the source account, source IP, and targeted SPNs. Check if the requesting account should ever request that ticket.
C: Disable the source account if compromise is confirmed; force a password reset on the targeted service account(s) immediately (don't wait to investigate further — the hash is already crackable offline).
E: Rotate the service account password to a long random value or migrate to a gMSA (Module 5.2). Review for use of the account elsewhere (lateral movement check).
R: Re-enable accounts once secured; monitor for recurrence for 14 days.
L: Was SPN exposure necessary? Could a gMSA have prevented this entirely?
P: Maintain an up-to-date list of accounts authorised for replication (should be DCs and backup service accounts only).
I: Identify the source host and account. Check Get-ADReplicationConnection and replication metadata for unexpected sync partners.
C: This is a Tier-0/critical incident. Isolate the source host from the network immediately. Assume Domain Admin credentials are compromised.
E: Reset krbtgt password twice, 24 hours apart (single reset is insufficient — see Module 4 Golden Ticket notes). Reset all privileged account passwords. Rebuild the compromised host from clean media — do not trust it.
R: Monitor all authentication for 30 days; consider re-issuing the entire domain's Kerberos tickets are invalidated by the double krbtgt reset.
L: How did the attacker reach a privilege level capable of replication rights? Trace the full attack chain back to initial access.
P: Maintain a list of internet-facing auth endpoints (VPN, OWA, Entra ID) as primary spray targets.
I: Identify the source IP(s) and the targeted account list. Cross-reference against a leaked credential list if available.
C: Block the source IP at the perimeter/Conditional Access (Module 7.2 — named locations). Force MFA on all targeted accounts that don't already have it.
E: Identify any accounts where the spray succeeded (low-and-slow attacks often get at least one hit) — treat those as fully compromised.
R: Reset passwords for any compromised accounts; verify MFA enrolment across the org.
L: Was legacy auth blocked (Module 7.2)? Was the account lockout policy (Module 1) tuned to detect this pattern without enabling a DoS condition?
P: Baseline normal Kerberos ticket lifetimes (default max 10h TGT) via Group Policy.
I: Confirm via ticket lifetime anomaly and cross-reference Event 4768/4769 pairs — a Golden Ticket has no matching legitimate AS-REQ.
C: This indicates krbtgt hash compromise. Treat as full domain compromise — assume attacker has persistent, hard-to-revoke access.
E: Double krbtgt reset (24h apart, same as Playbook 2). Audit and remove any rogue computer/service accounts created during the dwell time. Rebuild any hosts where Mimikatz/credential dumping tools executed.
R: Full domain authentication monitoring for 30–60 days; consider a forest recovery exercise if dwell time was extensive.
L: Conduct a full timeline reconstruction — Golden Tickets imply the attacker likely had DA-equivalent access for some period before detection.
P: Maintain a change-control record of all approved privileged group modifications.
I: Identify who made the change (Event 4738/4670 for the actor), confirm it wasn't an approved change.
C: Immediately remove the unauthorised member from the privileged group.
E: Investigate how the actor obtained rights to modify the group — ACL abuse (Module 4) is the most common path. Audit ACLs on all Tier-0 groups for unexpected WriteDACL/GenericAll/GenericWrite grants.
R: Re-verify privileged group membership against your authoritative list (Module 1.1 baseline).
L: Was this caught by automated alerting or manual review? Tune the SIEM rule (Lab 6.4) to reduce time-to-detect for next time.
| AD Control | HIPAA | SOX | PCI-DSS v4.0 |
|---|---|---|---|
| Unique user accounts, no shared logins | §164.312(a)(2)(i) Unique User ID | ITGC — Access Control | Req 8.2 — Unique IDs |
| MFA on privileged + remote access | §164.312(d) Person/Entity Authentication | ITGC — Logical Access | Req 8.4 — MFA for all access to CDE |
| Tiered admin model / least privilege | §164.308(a)(4) Access Authorization | SOD — Segregation of Duties | Req 7 — Restrict access by business need |
| Password policy (length, complexity, rotation) | §164.308(a)(5)(ii)(D) Password Management | ITGC — Access Control | Req 8.3 — Strong authentication |
| Audit logging (Module 6) + SIEM (Lab 6.4) | §164.312(b) Audit Controls | ITGC — Logging & Monitoring | Req 10 — Log and monitor all access |
| Account lockout / inactivity timeout | §164.312(a)(2)(iii) Automatic Logoff | ITGC — Access Control | Req 8.2.8 — Idle session timeout |
| Periodic access review (privileged groups) | §164.308(a)(3) Workforce Security | ITGC — User Access Recertification | Req 7.2.4 — Review user accounts ≥ every 6 months |
| Incident response procedures (Module 9) | §164.308(a)(6) Security Incident Procedures | ITGC — Change/Incident Mgmt | Req 12.10 — Incident response plan |
| Encryption of authentication traffic (SMB signing, LDAPS) | §164.312(e)(1) Transmission Security | ITGC — Data Protection | Req 4 — Encrypt transmission of CHD |
| gMSA / no plaintext service account passwords | §164.308(a)(5)(ii)(D) | ITGC — Credential Management | Req 8.6 — Manage app/service accounts |
| Risk assessment (Module 8) | §164.308(a)(1)(ii)(A) Risk Analysis | SOX 404 — Risk Assessment | Req 12.3 — Annual risk assessment |
| Conditional Access / risk-based sign-in (Module 7) | §164.312(d) | ITGC — Access Control | Req 8.4.2 — MFA for cloud access |
| Category | Tool | Purpose | Platform | Cost |
|---|---|---|---|---|
| Enumeration | ||||
| Enum | BloodHound CE | Visual AD attack path mapping via graph analysis | Docker/Any | Free |
| Enum | SharpHound | BloodHound data collector — runs on Windows | Windows | Free |
| Enum | PowerView | PowerShell AD situational awareness | Windows | Free |
| Enum | ldapdomaindump | Dump AD info via LDAP to HTML/JSON | Linux | Free |
| Enum | enum4linux-ng | SMB/RPC enumeration of Windows hosts | Linux | Free |
| Enum | ADRecon | Comprehensive AD audit report generator | Windows | Free |
| Exploitation | ||||
| Exploit | Impacket Suite | Python tools — secretsdump, psexec, ntlmrelayx, GetNPUsers, GetUserSPNs | Linux | Free |
| Exploit | CrackMapExec | Swiss army knife for AD — spray, relay, exec, dump | Linux | Free |
| Exploit | Rubeus | Kerberos abuse — Kerberoast, AS-REP, PtT, Golden Ticket | Windows | Free |
| Exploit | Mimikatz | Credential extraction from LSASS, DCSync, Golden Ticket | Windows | Free |
| Exploit | Responder | LLMNR/NBT-NS poisoning — capture NTLM hashes | Linux | Free |
| Exploit | evil-winrm | WinRM shell with PtH and Kerberos support | Linux | Free |
| Exploit | kerbrute | Username enumeration and password spray via Kerberos | Linux | Free |
| Password Cracking | ||||
| Cracking | Hashcat | GPU-accelerated offline hash cracking | Any | Free |
| Cracking | John the Ripper | CPU-based hash cracking — great for quick tests | Any | Free |
| Cracking | rockyou.txt | Default wordlist — 14M passwords from real breaches | Kali built-in | Free |
| Defence & Detection | ||||
| Defence | Pingcastle | AD security health score and risk assessment report | Windows | Free |
| Defence | Purple Knight | AD security posture assessment by Semperis | Windows | Free |
| Defence | Microsoft LAPS | Auto-rotate local admin passwords on all machines | Windows | Free |
| Defence | BadBlood | Auto-populate realistic AD lab with misconfigs | Windows | Free |
| Detection | Sysmon | Deep Windows event logging (process, network, registry) | Windows | Free |
| Detection | Elastic SIEM (free) | Centralise and query Windows event logs | Any | Free |
| Detection | Velociraptor | Endpoint visibility and threat hunting at scale | Any | Free |
| Cloud Identity (Module 7) | ||||
| Cloud IAM | Microsoft Entra Admin Centre | Manage cloud identities, Conditional Access, PIM, and risk policies | Browser | Free tenant |
| Cloud IAM | AzureAD / Graph PowerShell | Enumerate and manage Entra ID via CLI — same enumeration logic as on-prem AD modules | Any | Free |
| Cloud IAM | ROADtools | Entra ID enumeration and attack tooling — cloud equivalent of BloodHound for Entra | Linux/Any | Free |
| Cloud IAM | Entra Connect Health | Monitor Entra Connect sync health and alert on anomalies | Windows/Azure | Free (with Entra ID P1) |
| SIEM & Log Management (Module 6.4) | ||||
| SIEM | Splunk Free | 500MB/day ingest — enough for a lab DC. Full SPL query language. Industry standard. | Any | Free (500MB/day) |
| SIEM | Elastic Stack (ELK) | Open source SIEM — Elasticsearch + Kibana + Winlogbeat. No ingest cap. | Any | Free (open source) |
| SIEM | Winlogbeat | Ship Windows Security/Sysmon logs to Elastic — the forwarder used in Lab 6.4 | Windows | Free |
| Threat Modeling & Risk (Module 8) | ||||
| Threat Model | Microsoft Threat Modeling Tool | Free STRIDE-based diagramming tool — build and analyse data flow diagrams | Windows | Free |
| Threat Model | OWASP Threat Dragon | Open source, browser-based threat modeling — good alternative to MS TMT | Browser/Any | Free |
Practical Network Penetration Tester. Includes a dedicated AD course and a live AD exam environment. Affordable ($400). Highly respected for practical skills.
Certified Red Team Professional. 100% focused on AD attacks — Kerberoasting, BloodHound, ACL abuse, domain trusts. Includes an AD lab.
Industry gold standard. Includes AD-specific challenges since 2022 update. Demonstrates deep practical hacking skills. 24-hour exam.
Azure Security Technologies. Covers Entra ID identity protection, Privileged Identity Management, Conditional Access, and hybrid AD. Module 7 of this workbook maps directly to AZ-500 exam objective SC4 (Manage identity and access). Free practice assessments at learn.microsoft.com.
Identity and Access Administrator. The deepest Microsoft cert on Entra ID — Conditional Access, PIM, hybrid identity, entitlement management. This workbook's Module 7 labs (7.1–7.4) cover the core hands-on objectives. SC-100 is the architect tier above it.
Certified Red Team Lead — covers advanced AD techniques including forest trusts, cross-domain attacks, and Azure AD integration.
GIAC Certified Incident Handler. Covers the full IR lifecycle (Module 9 of this workbook) — preparation, identification, containment, eradication, and recovery, with AD-specific scenario coverage. Strong SOC / blue-team credential.
CySA+ maps to Modules 6–9 of this workbook: threat detection, SIEM use, IR procedures, and compliance. PenTest+ maps to Modules 2–4. Both sit between Security+ and OSCP on the difficulty ladder — affordable stepping stones.