Introduction: Why AD Hardening Still Fails in Mature Environments
Most enterprise Active Directory environments have some hardening in place. Domain controllers are on a dedicated VLAN. Antivirus is deployed. Password policies are set. A penetration test two years ago came back with only medium-severity findings. And yet the breach investigation still starts — and ends — at AD.
The reason is not that the controls are wrong. The reason is that partial hardening creates a false confidence gap. Tier 0 assets get a GPO baseline, but no one validates that the baseline is applied. Delegation is constrained on new accounts, but legacy service accounts from a 2014 migration still carry unconstrained delegation. Kerberos AES enforcement is on the backlog, blocked by a line-of-business app no one has tested against AES.
This checklist is built around that gap. Every section maps a control to its attack-reduction value, an effort estimate, and a measurable validation step. The goal is not to produce a compliance checkbox — it is to give your security operations team a scored, tier-aware playbook they can execute, automate, and repeat.
War Story: Audit Passed, Breach Followed
The Situation: A financial services client completed a third-party AD
security assessment 14 months before a breach. The assessment closed with a clean bill
of health on their Tier 0 controls: RDP was blocked to DCs, local admin was removed via
LAPS, and Domain Admins had fewer than 10 members. Six weeks later, a threat actor
obtained
Domain Admin credentials through a compromised IT workstation that had a forgotten entry
in
the Allowed to Act on Behalf of Other Identity attribute — resource-based
constrained delegation silently configured during a SharePoint migration two years
prior.
The Impact: The attacker moved laterally via RBCD within four hours of initial access, harvested credentials from six servers using DCSync, and exfiltrated payroll data before the SIEM triggered an alert. Recovery required a full forest rebuild lasting 72 hours and cost approximately $2.3M in incident response and lost productivity.
The Lesson: A point-in-time audit does not equal a continuous security posture. Delegation misconfigurations introduced after the last assessment — including RBCD, legacy unconstrained SPN accounts, and unreviewed AdminSDHolder-protected objects — were invisible to controls that had not been re-evaluated since the migration. This checklist addresses perpetual drift, not just initial deployment.
Table of Contents
- Introduction
- Scope and Threat Model
- Hardening Design Principles
- Baseline Readiness and Prerequisites
- Tier 0 Hardening Checklist
- Tier 1 Hardening Checklist
- Tier 2 Hardening Checklist
- 30/60/90 Implementation Roadmap
- PowerShell Automation Pack
- Security Validation and Audit Evidence
- Operations and Maintenance Cadence
- Common Failure Modes and Troubleshooting
- Resources and References
Scope and Threat Model
What this checklist covers
This guide covers the identity and administrative plane of Active Directory: account controls, Kerberos and NTLM protocol hardening, delegation governance, Group Policy baseline enforcement, and domain controller security. It follows a three-tier model aligned to Microsoft's Enterprise Access Model and/or Tiering Model — Tier 0 (identity infrastructure), Tier 1 (server and service layer), and Tier 2 (user endpoint layer).
What this checklist does not cover
Network segmentation, firewall policy, endpoint detection, and SIEM tuning are out of scope here — not because they are unimportant, but because they are addressed in companion guides. The controls in this document assume network isolation of Tier 0 is already in place. If it is not, start with your network segmentation baseline before applying identity controls.
Attack paths mapped to controls
Each major control in this checklist maps to one or more known attack techniques documented by MITRE ATT&CK and field-confirmed by the Five Eyes advisory series. The table below shows which hardening actions reduce which attack paths.
| Attack Technique | MITRE ID | Primary Control | Secondary Control |
|---|---|---|---|
| Kerberoasting | T1558.003 | AES-only encryption enforcement; gMSA for service accounts | Privileged account monitoring; SPN audit |
| DCSync (credential harvesting) | T1003.006 | Restrict Replicating Directory Changes All right | Privileged group drift monitoring; Protected Users |
| Golden Ticket | T1558.001 | krbtgt double-reset (≤90-day rotation) | Tier 0 isolation; PAW enforcement |
| AD CS / ESC attack paths | T1649 | CA template audit; SAN restriction; Manager Approval | Certificate template ACL review |
| RBCD privilege escalation | T1134.001 | Restrict ms-DS-Allowed-To-Act-On-Behalf-Of-Other-Identity write | Machine account quota to 0; RBCD delegation audit |
| Pass-the-Hash / NTLMv1 relay | T1550.002 | NTLM restriction level (LmCompatibilityLevel ≥ 5); SMB signing | Protected Users; credential guard |
For detailed detection signatures for each of these attacks, see Five Eyes AD Attacks: Detection and Mitigation.
Hardening Design Principles (Before You Touch Production)
Before applying any hardening control, align your team on four principles that prevent common mistakes — particularly the mistake of hardening the wrong layer first.
- Principle 1 — Protect Tier 0 first. All other hardening work is undermined if domain controllers, the forest root, and identity infrastructure itself can be compromised. Tier 0 controls take priority in every implementation wave.
- Principle 2 — Enforce administrative boundaries. Tier 0 administrators must not use the same accounts to access Tier 1 and Tier 2 systems. This is Segregation of Duties. The Enterprise Access Model and Tiering Model are frameworks to help you design and enforce these boundaries. If your environment has not yet implemented tiering, this checklist still applies — but you must be disciplined in applying controls to the right accounts and systems based on their risk level. Do not apply Tier 0 controls to accounts that are used for day-to-day work, even if they have privileged access — instead, use this checklist to create a clean break between the accounts that can administer AD and the accounts that cannot. The attack containment value of hardening is only realized when the boundaries are enforced; if admins log on to servers with their DA accounts, an attacker who compromises that server gets the same access as if they had compromised a DC directly. Flat admin access destroys containment.
- Principle 3 — Remove standing privilege. Permanent group membership in Domain Admins, Enterprise Admins, and equivalent groups dramatically increases blast radius. Move toward Just-In-Time (JIT) and Just-Enough-Administration (JEA) where supported. At minimum, audit and remove unnecessary permanent memberships every 30 days.
- Principle 4 — Assume compromise and monitor continuously. Controls without detection are not controls — they are one-time locks on an open window. Every hardening action in this checklist has a paired validation command or log event ID that proves the control is functioning.
Decision Matrix: Quick Wins vs Structural Controls
Not every control can be deployed in week one. Use this matrix to sequence implementation based on risk reduction versus operational disruption:
| Control Type | Time to Deploy | Risk Reduction | Operational Cost | Recommendation |
|---|---|---|---|---|
| Protected Users group enrollment | < 1 day | High (blocks NTLM, DES, RC4 for enrolled accounts) | Low (test in lab first; legacy apps may break) | Quick win — start here for all Tier 0 accounts |
| SMB signing enforcement | < 1 day (GPO) | High (prevents NTLM relay) | Low (enabled by default on DCs; clients need GPO) | Quick win — apply to all DC + server GPOs immediately |
| LAPS deployment | 1-3 days | High (eliminates shared local admin credentials) | Medium (schema extension, client deployment) | Prioritize Tier 2 endpoints; see LAPS guide |
| Unconstrained delegation removal | 1-5 days | Critical (removes TGT harvesting exposure) | Medium (test each delegated service before change) | Required — no system outside DCs should have unconstrained delegation |
| PAW deployment | 2-6 weeks | Very high (isolates admin credential exposure) | High (hardware provisioning, workflow changes) | Structural — plan in first 60 days, complete by 90 |
| Kerberos AES-only enforcement | 2-4 weeks | High (eliminates Kerberoasting via RC4) | High (requires RC4 inventory; legacy apps may require RC4) | Structural — run AD-Hardening-Kerberos-NTLM-Checks.ps1 first
|
| AD CS template hardening | 1-3 weeks | Critical (closes ESC1-ESC8 certificate abuse paths) | High (template audit needed; PKI team coordination) | Structural — schedule in first 60-day wave |
Baseline Readiness and Prerequisites
Hardening applied to an environment you do not fully understand creates as many risks as it removes. Before executing any Tier 0, 1, or 2 controls, confirm the following readiness gates are met.
Identity inventory and privilege mapping
Run AD-Hardening-Assessment-Baseline.ps1
(see Script Set 1 below) to
capture a snapshot of current privileged accounts, delegation configurations, and encryption
type assignments. You need this baseline to measure the impact of each change, and to
identify
legacy misconfigurations that are invisible to normal monitoring.
At minimum, verify:
- You have an accurate list of every account in Domain Admins, Enterprise Admins, Schema Admins, and Administrators.
- You know which accounts have AdminCount=1 and why.
- You have identified all service accounts (user objects with SPNs) and their business owners.
- You know which computer accounts have unconstrained or constrained delegation configured.
Backup and recovery readiness gates
A hardening change that corrupts authentication or breaks domain controller replication can bring your environment down. Before any production change, verify:
- A recent system state backup exists for each domain controller (taken within 24 hours).
- You have tested an AD authoritative restore procedure in the last 90 days.
- You have a documented rollback plan for each change (GPO link, attribute revert, etc.).
- Recovery contact list and out-of-band communication channel are up to date.
Logging and retention prerequisites
You cannot validate that controls are working without logs. Before hardening, ensure:
- DC Security event log is at least 1 GB with a 90-day SIEM retention window.
- Advanced Audit Policy is configured: Account Logon, Account Management, Directory Service Access, Privilege Use, Policy Change at Success+Failure.
- Event ID 4625, 4648, 4672, 4768, 4769, 4776, 4964, 5136, 5141 are being forwarded to SIEM.
- NTLM Operational log (
Microsoft-Windows-NTLM/Operational) is enabled on all DCs.
Change-control and rollback requirements
All Tier 0 changes must go through a change management process. Even quick wins like adding an account to Protected Users can break legacy application authentication. For each change:
- Submit a change record with rollback steps, test results, and approval from the AD team lead.
- Schedule changes during a defined maintenance window with monitoring coverage active.
- Use WhatIf / read-only modes in PowerShell before committing any automated changes.
- Document the change in the identity change log for audit trail purposes.
Tier 0 Hardening Checklist (Highest Priority)
Tier 0 is the identity infrastructure plane — domain controllers, the AD database, ADFS, certificate authorities, privileged identity management systems, and the accounts used to administer them. A single compromised Tier 0 asset gives an attacker the ability to control every identity in your forest. Apply these controls before any other tier.
Core Controls
-
Domain controller OS hardening baseline.
All DCs must run a supported OS version (Windows Server 2022 minimum recommended). Apply
the Microsoft Security Baseline GPO. Disable all unnecessary services: Task Scheduler
(for non-DC tasks), Print Spooler, LLMNR, NetBIOS over TCP/IP. Run
Get-SmbServerConfigurationand verifyRequireSecuritySignature = TrueandEnableSMB1Protocol = Falseon all DCs. - Privileged account controls: Protected Users and PAW enforcement. Enroll all Domain Admins, Enterprise Admins, Schema Admins, and any account with AdminCount=1 in the Protected Users security group. This prevents NTLM authentication, caches no credentials to LSA, and enforces AES Kerberos. All administrative actions in Tier 0 must originate from a Privileged Access Workstation. Enable MFA for all Tier 0 interactive logons.
-
Kerberos and NTLM hardening sequence.
Before restricting protocols, run
AD-Hardening-Kerberos-NTLM-Checks.ps1to inventory RC4-dependent accounts and NTLM authentication sources. Set msDS-SupportedEncryptionTypes to 24 (AES128+AES256) on all privileged accounts and service accounts. Configure GPO "Network Security: Configure encryption types allowed for Kerberos" to AES128 + AES256 only after confirming no RC4-only dependencies. Set LmCompatibilityLevel to 5 (NTLMv2 only) on all DCs. - AD CS and certificate trust controls. Audit all certificate templates for dangerous configurations (ENROLLEE_SUPPLIES_SUBJECT flag, no Manager Approval, overly permissive enrollment ACLs). These are the root conditions for ESC1-ESC8 attacks. Use Audit-ADCSTemplates.ps1 to enumerate vulnerable templates. Disable any template that grants enrollment to Domain Users or Authenticated Users without business justification.
- Delegation restrictions and admin session isolation. No account outside of domain controllers should have TrustedForDelegation = True (unconstrained delegation). Remove it from all non-DC computer accounts and user objects. For service accounts that legitimately require delegation, convert to constrained delegation targeting only required SPNs, or preferably resource-based constrained delegation (RBCD) scoped to a specific service account. Set ms-DS-MachineAccountQuota to 0 on the domain to prevent non-admin accounts from joining machines to the domain.
-
Tier 0 monitoring and alert rules.
Configure real-time alerts for: (a) any addition to Domain Admins, Enterprise Admins,
or Schema Admins (Event 4728, 4756); (b) any logon with sensitive privilege use (Event
4672)
from a workstation that is not a known PAW; (c) DCSync-equivalent operations — accounts
performing directory replication that are not DCs (Event 4662 with GUID
1131f6aa-9c07-11d1-f79f-00c04fc2dcd2); (d) krbtgt password reset attempts.
Tier 0 Priority Table
| Control | Risk Reduced | Effort | Validation Evidence |
|---|---|---|---|
| Protected Users enrollment for all Tier 0 accounts | NTLM, Pass-the-Hash, credential caching, DES/RC4 Kerberos | Low (1 day; test legacy apps first) | Get-ADGroupMember 'Protected Users' matches Tier 0 list |
| SMB signing enforced on all DCs and servers | NTLM relay, SMB relay attacks | Low (GPO change) | Get-SmbServerConfiguration | Select RequireSecuritySignature =
True on each DC |
| SMB1 disabled on all DCs | WannaCry, NotPetya, EternalBlue exploit surface | Low (GPO + registry) | Get-SmbServerConfiguration | Select EnableSMB1Protocol = False
|
| Unconstrained delegation removed (non-DCs) | TGT harvesting, Kerberos delegation abuse | Medium (requires service testing) | Zero results from:
Get-ADObject -Filter {TrustedForDelegation -eq $true -and ObjectClass -ne 'domainDNS'}
outside DC OU
|
| krbtgt double password reset | Golden Ticket persistence (invalidates all forged tickets) | Low (run 2× with 10h replication gap) | (Get-ADUser krbtgt -Properties PasswordLastSet).PasswordLastSet
≤ 90 days |
| Kerberos AES-only enforcement | Kerberoasting via RC4, weak ticket encryption | High (RC4 inventory required first) | GPO "Configure Kerberos encryption types" = AES128+AES256 only; zero RC4-only accounts |
| AD CS template audit and remediation | ESC1-ESC8 certificate-based privilege escalation | High (PKI team coordination required) | No templates with ENROLLEE_SUPPLIES_SUBJECT + CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT without Manager Approval |
| PAW deployment for all Tier 0 admins | Credential theft from general workstations, lateral movement containment | High (hardware + workflow change) | All DA logons originate from PAW OU; deny logon GPO in place for non-PAW |
Tier 1 Hardening Checklist (Server and Platform Layer)
Tier 1 covers member servers: file servers, application servers, web services, SQL instances, and the management plane that operates them. The primary Tier 1 attack vector is lateral movement via cached credentials — an attacker compromises a Tier 2 workstation, steals service account credentials, and pivots to servers where the same account is reused. Prevent this by enforcing strict account separation, strong remote access authentication, and least-privilege service identities.
-
Dedicated Tier 1 admin accounts.
No Tier 0 account (Domain Admin or equivalent) should ever interactively log on to a
member server.
Create per-tier admin accounts (e.g.,
T1-Username) restricted via AD Logon Workstations so they can authenticate only from designated Tier 1 management servers — never from general workstations. - GPO security baseline enforcement. Apply the Microsoft Security Compliance Toolkit baseline for Windows Server 2022 to all member servers. Critical settings: RestrictAnonymous = 2, LmCompatibilityLevel = 5, LLMNR disabled via GPO, SMB signing required, Advanced Audit Policy configured for account logon, object access, privilege use, and directory service changes.
-
Service account migration to gMSA.
Conventional service accounts with static passwords are a high credential-reuse risk.
Group Managed Service Accounts (gMSA) auto-rotate passwords every 30 days.
Migration: verify KDS root key (
Get-KdsRootKey), create gMSA withNew-ADServiceAccount, update service bindings on each host. Target your top 10 highest-permission service accounts in the Day 31-60 window. -
Remote access hardening: RDP, WinRM, and SMB.
RDP must enforce Network Level Authentication (NLA) and be restricted to management VLAN
source IPs.
WinRM listeners must use HTTPS (port 5986) with a valid certificate — never HTTP.
Confirm SMB signing and SMB1 status on each server:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, RequireSecuritySignature. Disable Telnet, FTP, and SNMPv1/v2; replace with SFTP, WinRM, or SNMPv3 with authentication. -
LSA protection and Credential Guard.
Enable LSA Protection (
RunAsPPL = 1) on all servers to block LSASS memory dumps. On Windows Server 2016+, enable Windows Defender Credential Guard via UEFI lock to prevent pass-the-hash and pass-the-ticket from the server layer. -
Monthly drift detection and patch compliance.
Run
AD-Hardening-PrivilegedGroup-DriftReport.ps1monthly against the Tier 1 admin group baseline. Critical and important security patches must be applied within 30 days; actively exploited CVEs within 7 days.
Tier 2 Hardening Checklist (User and Endpoint Layer)
Tier 2 is your largest attack surface: end-user workstations and the standard user accounts that operate them. Attackers gain initial access at Tier 2 through phishing, drive-by downloads, or removable media, then use privileged local admin rights or reused credentials to escalate. The goal at Tier 2 is not zero risk — it is preventing any Tier 2 credential or session from being usable against Tier 1 or Tier 0 assets.
- Local administrator account management with LAPS. Deploy Windows LAPS to all workstations to ensure every machine has a unique, auto-rotating local administrator password. This eliminates the single biggest lateral movement enabler: a shared local admin password that works across all endpoints. Windows LAPS (built into Windows 11 22H2+ and Server 2022+) stores passwords in AD or Entra ID and rotates them on a configurable schedule.
-
Remove unnecessary local admin group members.
Audit local Administrators group membership on all workstations quarterly.
Standard users must not be members of local Administrators. Use
Get-LocalGroupMember -Group Administratorsvia a startup script or Defender for Endpoint live query to enumerate violations at scale. - Credential Guard on all Windows 10/11 workstations. Enable Windows Defender Credential Guard via Group Policy (Device Guard / Virtualization Based Security). This places NTLM hashes and Kerberos TGTs inside a hypervisor-protected memory region that LSASS cannot access directly — preventing in-memory credential extraction tools (Mimikatz, Rubeus) from dumping them even with SYSTEM privileges.
- Protected Users for any privileged accounts visible at Tier 2. If any administrative account (even helpdesk or desktop support) logs interactively on to Tier 2 assets, ensure those accounts are enrolled in Protected Users. This prevents NTLM authentication and credential caching that would expose Tier 1 or Tier 0 scope through a compromised workstation.
-
Application control and attack surface reduction (ASR).
Enable Windows Defender Attack Surface Reduction rules:
block credential stealing from LSASS
(
9e6c4e1f-7d60-472f-ba1a-a39ef669e4b3), block process creation from Office macros, block executable content in email. Use AppLocker or WDAC to restrict execution to business-approved publishers and paths.
Implementation Roadmap (30/60/90 Days)
| Window | Focus | Key Deliverables | Owner |
|---|---|---|---|
| Day 0-30 | Containment | Run AD-Hardening-Assessment-Baseline; enroll all Tier 0 accounts in Protected Users; enforce SMB signing on DCs; remove unconstrained delegation from non-DC computers; perform krbtgt double rotation; establish backup verification gate. | Security team + Active Directory Operations |
| Day 31-60 | Maturity | Enforce Kerberos AES-only after completing RC4 dependency inventory; migrate top 10 service accounts to gMSA; audit all AD CS certificate templates and disable ESC1-vulnerable configurations; deploy GPO security baselines to Tier 1 servers; configure Advanced Audit Policy on all DCs. | Active Directory Operations + PKI / Certificate Authority team |
| Day 61-90 | Resilience | Deploy PAWs for all Tier 0 and Tier 1 admins; increase NTLMLmCompatibilityLevel to 5 after NTLM audit; deploy Windows LAPS to all endpoints; configure privileged group drift monitoring automation; schedule quarterly DR recovery test with verified AD backup restore. | Security Engineering + Active Directory Operations + Platform / Endpoint team |
PowerShell Automation Pack
The five scripts below are designed for progressive use: run the baseline discovery tool first to establish a pre-hardening snapshot, then execute the validation scripts after each phase to confirm controls are in effect, then schedule the drift and evidence scripts to run on a recurring cadence. All scripts are read-only unless explicitly noted — no configuration changes are made, only reads and reports. Run in a test domain first. Require elevated privileges (Domain Admin or equivalent read access); review the parameter block of each script before execution.
- Script Set 1 — Posture Discovery:
AD-Hardening-Assessment-Baseline.ps1captures the pre-hardening state across privileged accounts, delegation configuration, Kerberos encryption types, NTLM policy, and GPO baseline. Run this before any changes and store the output CSVs as your baseline evidence. - Script Set 2 — Control Validation:
AD-Hardening-Tier0-Validation.ps1performs 8 pass/fail checks against Tier 0 controls and outputs an HTML compliance report.AD-Hardening-Kerberos-NTLM-Checks.ps1calculates a 0-100 readiness score, inventories RC4-dependent principals, and scans event logs for recent NTLM authentication. - Script Set 3 — Audit and Drift Reporting:
AD-Hardening-PrivilegedGroup-DriftReport.ps1saves a privileged group baseline on first run, then compares current membership on subsequent runs and alerts on any changes.AD-Hardening-Audit-Evidence-Export.ps1produces a full compliance evidence package (text summary + CSVs) suitable for handing to auditors or inserting into a GRC platform.
Script Set 1: Posture Discovery
Script Set 2: Tier 0 and Protocol Validation
Script Set 3: Audit and Drift Reporting
Security Validation and Audit Evidence
Hardening without evidence is indistinguishable from doing nothing, especially during
audits.
Run AD-Hardening-Audit-Evidence-Export.ps1 monthly to produce a structured
evidence
package that covers account plane configuration, protocol hardening state, patch compliance,
audit policy coverage, and optionally a GPO backup archive. The text summary and companion
CSVs
can be attached to audit findings, inserted into your GRC platform, or stored in a
SharePoint
evidence library with a timestamped naming convention.
Track the following KPIs month-over-month as leading indicators of hardening progress and regression:
- Tier 0 account count with AdminCount=1. Should trend downward and stabilize. New entries not in prior baseline = immediate investigation.
- Protected Users enrollment percentage. Target: 100% of accounts with AdminCount=1 enrolled within the first 30 days.
- Privileged group drift events per month. Any addition outside of a Change Advisory Board (CAB)-approved ticket is a security event.
- krbtgt account password age. Must not exceed 180 days. Recommended: quarterly rotation.
- SMB signing coverage. 100% of DCs and Tier 1 servers must show RequireSecuritySignature = True.
- Accounts with unconstrained delegation (non-DCs). Target: zero. Any new entry is an immediate flag.
- RC4-capable Kerberos principals. Should trend toward zero as gMSA migration completes and AES enforcement takes effect.
Operations and Maintenance Cadence
| Frequency | Task | Evidence | Automation |
|---|---|---|---|
| Daily | Review Event ID 4728/4732/4756 (privileged group changes); check DC replication health; review failed logon spikes (Event 4771/4776) | SIEM alert queue; repadmin /replsummary output; failed logon
threshold report |
SIEM alert rules; MDI / Defender for Identity alert; scheduled AD replication health task |
| Weekly | Run privileged group drift comparison report; review stale account and Kerberos ticket alerts; validate backup job completion for all DCs | Drift report HTML output; backup completion logs; stale ticket event log review | AD-Hardening-PrivilegedGroup-DriftReport.ps1 in scheduled task;
backup monitoring alert |
| Monthly | Collect full audit evidence package; review service account aging and password rotation compliance; validate Kerberos AES encryption coverage on all privileged accounts; verify WSUS patch compliance ≥95% | Evidence export HTML + CSV archive; service account report; Kerberos encryption inventory from Tier0-Validation; WSUS compliance report | AD-Hardening-Audit-Evidence-Export.ps1 scheduled monthly; patch
compliance dashboard |
| Quarterly | krbtgt account double password rotation; AD CS template re-audit; PAW hardware and access review; full AD backup restore test (DR rehearsal); review and revoke stale privileged account access | krbtgt PasswordLastSet date; AD CS template audit report; PAW access log review; DR test run book completion; privileged account access review sign-off | Scheduled krbtgt rotation script; Audit-ADCSTemplates.ps1; DR
runbook checklist; manual access review with HR data |
Common Failure Modes and Troubleshooting
Legacy app authentication breakage
The most common reason hardening projects stall is undiscovered legacy applications that
rely
on NTLMv1, RC4 Kerberos, or SMBv1. Before enforcing restrictions, run
AD-Hardening-Kerberos-NTLM-Checks.ps1 to inventory NTLM authentication sources
and RC4-capable principals. For targeted testing, create a pilot OU with a test group of
accounts and apply the hardened GPO there first — monitor Event 4776 (NTLM auth attempt)
and Event 4769 (Kerberos ticket request) for failure codes 0x17 (password expired — often
signals RC4) and 0x0D (unsupported encryption type). Exclusions should be time-bounded:
document the business owner, the target remediation date, and track them in your GRC
platform.
Never create permanent NTLM or RC4 exclusions without a signed exception and risk
acceptance.
Policy conflicts and precedence
When a hardening GPO appears to have no effect, the most likely cause is a higher-precedence
GPO or a local policy override winning the merge. Diagnose with
gpresult /H C:\temp\gpresult.html /F on an affected machine — this produces a
full resultant set of policy with winning GPO noted per setting. Check: (1) whether the
target
OU is linked to the correct GPO, (2) whether any GPO higher in the hierarchy sets a
conflicting
value, (3) whether a WMI filter is excluding the machine, and (4) whether security filtering
is missing the computer account. Use "GPO Status: Enabled" and confirm the target machine
falls
within scope via Get-GPResultantSetOfPolicy. For security-critical GPO
settings,
test in a shadow OU before production link.
False confidence from point-in-time audits
A compliance audit that passes today does not prevent a privileged group from gaining an
unauthorized new member tomorrow. Point-in-time assessment capture the state at a moment —
configuration drift can introduce critical exposures within hours. The only defense is
continuous or frequent monitoring. Schedule
AD-Hardening-PrivilegedGroup-DriftReport.ps1
as a weekly scheduled task on a management server (not a DC). Configure the email alert
parameter
to notify the security team immediately on any deviation from the saved baseline.
Additionally, ensure your SIEM ingests DC Security event logs in real time — Event 4728
(member added to global security group) and 4756 (member added to universal group) should
trigger immediate investigation, not a monthly review.
Recovery blockers discovered too late
Many organizations discover their AD backup and recovery process is broken only when they need it. Before starting a hardening project, verify: (1) System State backups of all DCs are completing successfully and are within the tombstone lifetime (default 180 days); (2) the DSRM password is documented, stored in a sealed vault, and tested — a DSRM password that has never been tested is the same as no DSRM password; (3) at least one team member has performed an authoritative restore from backup in a lab within the last year. An AD hardening effort that creates a misconfiguration in a connected forest is recoverable only if you can restore cleanly. Without a tested recovery path, any misconfiguration — including a hardening GPO that blocks all admin authentication — becomes a forest-wide outage.
Resources and References
- Microsoft Learn: Active Directory Domain Services Security Best Practices
- Five Eyes AD Attacks: Detection and Mitigation
- Tier 0 Reference Architecture
- Privileged Access Workstation Deployment Guide
- LAPS Implementation Guide
Next Steps
Start with AD-Hardening-Assessment-Baseline.ps1 to capture your current
posture before making any changes. Use the output to prioritise which Tier 0 controls
are most critical in your specific environment. Then follow the 30/60/90 roadmap:
Day 0-30 for containment (Protected Users, SMB signing, unconstrained delegation
removal,
krbtgt rotation), Day 31-60 for maturity (AES enforcement, gMSA migration, AD CS audit),
Day 61-90 for resilience (PAW deployment, NTLM restriction, drift automation, DR test).
Continue your hardening journey with:
- Tier 0 Reference Architecture — deeper technical design for your most critical plane
- Privileged Access Workstation Guide — step-by-step PAW deployment
- LAPS Implementation Guide — endpoint credential isolation
- Five Eyes AD Attack Techniques — understand the attacks this checklist mitigates
- AD Operations Housekeeping Tasks — recurring maintenance cadence aligned to this checklist