Fresh installations of Windows Server are engineered by default to maximize backward compatibility with legacy applications and enterprise networks. Out of the box, legacy protocols, permissive local rights, broad administrative shares, and unhardened cryptographic ciphers remain enabled.
In production enterprise environments, systems administrators must harden operating system configurations against lateral movement, credential dumping (Mimikatz), and privilege escalation. Hardening Windows Server requires adopting verified industry baselines: the Microsoft Security Compliance Toolkit (MSCT) and Center for Internet Security (CIS) Benchmarks.
CIS Benchmark Levels: Level 1 vs Level 2
The Center for Internet Security (CIS) publishes globally recognized consensus benchmarks for Windows Server 2022 and 2025, partitioned into two distinct security operational tiers:
| Hardening Tier | Target Environment | Operational Impact | Key Included Baselines |
|---|---|---|---|
| CIS Level 1 (Benchmark) | Standard enterprise production servers | Minimal to no service disruption; balance of defense and utility. | Disabling SMBv1/LLMNR, enforcing password complexity, restricting anonymous enumeration, enabling Windows Defender Antivirus. |
| CIS Level 2 (Defense-in-Depth) | High-security, defense, financial, and critical infrastructure | May inhibit legacy software; requires extensive pre-production testing. | Mandatory Credential Guard, strict LSA protection, blocking debug privileges, disabling NTLM completely in favor of Kerberos. |
Core Hardening Vectors
1. Eliminating Insecure Legacy Protocols
Adversaries rely heavily on unhardened network broadcast and legacy transport protocols for network poisoning and relay attacks:
- Disable SMBv1: SMBv1 is cryptographically obsolete and vulnerable to remote code execution (e.g., EternalBlue / WannaCry). Modern servers must enforce SMBv2/v3 with mandatory encryption and pre-authentication integrity.
- Disable LLMNR & NetBIOS: Link-Local Multicast Name Resolution (LLMNR) and NetBIOS over TCP/IP transmit broadcast requests when DNS lookups fail. Attackers use tools like Responder to capture and relay password hashes across the subnet.
- Mandate NTLMv2 & Restrict LM: Enforce
LmCompatibilityLevel = 5(Send NTLMv2 response only, refuse LM & NTLM).
2. Memory Defense: LSA Protection & Credential Guard
The Local Security Authority Subsystem Service (LSASS) process (lsass.exe) manages user authentications and tokens. Unhardened servers allow administrative processes to read LSASS memory and dump plaintext credentials and Kerberos tickets:
- LSA Protection (RunAsPPL): Configures LSASS as a Protected Process Light (PPL). Once enabled, even processes running as
NT AUTHORITY\SYSTEMcannot read or inject code into LSASS without a cryptographically signed Microsoft kernel certificate. - Windows Defender Credential Guard: Leverages Virtualization-Based Security (VBS) to isolate NTLM and Kerberos secret keys into a hardware-isolated micro-hypervisor (Virtual Secure Mode), completely inaccessible to the host kernel.
3. Restricting User Rights Assignments (URA)
Hardened servers enforce strict least-privilege user rights under Local Security Policy:
| User Rights Policy | Recommended Baseline | Threat Vector Mitigated |
|---|---|---|
| Access this computer from the network | Restrict to Administrators and authorized service accounts. Exclude local accounts. |
Pass-the-Hash and lateral movement across servers using local administrative credentials. |
| Debug programs (SeDebugPrivilege) | Assign strictly to Administrators (or empty in high-security Tier 0 DCs). |
Attacker processes attaching to running system services to extract memory or inject code. |
| Shut down the system | Restrict to Administrators. |
Accidental or malicious server shutdowns by standard users. |
Applying Baselines via Microsoft LGPO Utility
To automate baseline application without waiting for Active Directory Group Policy synchronization, administrators deploy Microsoft's Local Group Policy Object (LGPO.exe) utility:
# 1. Export current baseline as a backup before making changes
lgpo.exe /b "C:\Backup\PreHardening_GPO"
# 2. Apply Microsoft Security Compliance Toolkit security templates
lgpo.exe /g "C:\SecBaselines\WindowsServer2022_MemberServer"
# 3. Force instant local policy recompilation
gpupdate /force
Enforcing Security Baselines via PowerShell
Administrators can automate key CIS compliance baselines directly via PowerShell:
# 1. Enable LSA Protection (Protected Process Light)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name "RunAsPPL" -Value 1 -Type DWord
# 2. Disable NetBIOS over TCP/IP on all network adapters
Get-CimInstance Win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled } | ForEach-Object {
$_.SetTcpipNetbios(2) # 2 = Disable NetBIOS
}
# 3. Disable LLMNR across all network profiles
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient' -Name "EnableMulticast" -Value 0 -Type DWord
# 4. Enforce strict NTLMv2 only (LmCompatibilityLevel = 5)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name "LmCompatibilityLevel" -Value 5 -Type DWord
LSA Protection UEFI Lock Considerations: Setting RunAsPPL = 1 enables software-level protection. To achieve maximum tamper-proofing, administrators configure the UEFI variable lock (RunAsPPL = 2 on Windows Server 2022/2025). Note that once locked via UEFI, this policy cannot be disabled via registry edits without physical access to the server BIOS.
Auditing & Compliance Verification Checklist
- Run Microsoft Policy Analyzer to compare active GPOs against the official Microsoft Security Baseline.
- Verify LSA Protection state in the System Event Log: look for Event ID
12(LSASS was started as a protected process). - Conduct regular vulnerability scans using SCAP/CIS-CAT benchmark compliance engines to detect configuration drift.