Windows Server Hardening: CIS Benchmarks, STIGs, and GPO Configuration That Actually Matters
A freshly installed Windows Server 2022 ships with dozens of enabled services, liberal default permissions, and network-accessible attack surface that your production workload does not require. The CIS Benchmarks and DISA STIGs codify the hardening controls that reduce that surface — but applying them wholesale to a production environment without understanding what each control does is a reliable way to break applications. This guide covers the specific controls that matter most, the ones that are safe to apply broadly, and the ones that require testing before production rollout.
CIS Benchmark vs. DISA STIG: Choosing Your Baseline
Two authoritative hardening baselines dominate enterprise Windows Server hardening:
CIS Microsoft Windows Server Benchmark: Published by the Center for Internet Security. Organized into two profiles:
- Level 1: Practical hardening controls that improve security without significant operational impact. Suitable as a baseline for all Windows Servers.
- Level 2: More restrictive controls intended for high-security environments. Some controls will break standard enterprise software without testing.
CIS Benchmarks are free to download and widely adopted in commercial environments. They map to NIST 800-53, ISO 27001, and PCI DSS controls.
DISA STIG (Security Technical Implementation Guide): Published by the Defense Information Systems Agency. More prescriptive than CIS, mandatory for DoD environments, and referenced in many federal compliance frameworks (FedRAMP, FISMA). STIGs use Vulnerability IDs (V-IDs) and Severity Categories (CAT I = Critical, CAT II = High, CAT III = Medium).
Which to use:
- Commercial enterprise: Start with CIS Level 1 as your baseline. Evaluate Level 2 controls on a per-control basis.
- Federal/DoD contractors: STIG is required. Use SCAP tools (OpenSCAP, SCAP Compliance Checker) to automate compliance checking.
- Both frameworks complement each other — CIS Level 2 and STIG controls converge heavily on the same settings.
Microsoft Security Compliance Toolkit: Baseline GPOs You Should Use
Microsoft publishes the Security Compliance Toolkit (SCT), which includes pre-built Group Policy Objects aligned to CIS and Microsoft's own security guidance. Download from the Microsoft Download Center — it includes GPO backups you can import directly into your domain.
Key baselines in the SCT:
- Windows Server 2022 Security Baseline
- Microsoft Defender Antivirus Security Baseline
- Microsoft Edge Security Baseline
Import process:
- Download the SCT and extract the GPO backups
- Use
Group Policy Management Console > Import Settingsto import into a test GPO - Run
gpresult /H report.htmlon a test server after applying to verify settings landed - Test application functionality for 48-72 hours before promoting to production
Critical settings included in the Windows Server baseline:
- SMBv1 disabled (WannaCry/EternalBlue attack surface)
- LM and NTLMv1 authentication disabled
- Anonymous enumeration of accounts and shares blocked
- Null session access to named pipes and shares blocked
- Windows Firewall enabled on all profiles with deny-by-default inbound
- RDP Network Level Authentication (NLA) enforced
- Windows Defender enabled with real-time protection
- Audit policies set to log authentication, privilege use, and object access
Briefings like this, every morning before 9am.
Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.
Services to Disable: Reducing the Attack Surface
Windows Server enables services that most production workloads do not need. Each enabled service is a potential attack vector.
Services safe to disable on most servers:
| Service | Risk if Left Enabled | Notes |
|---|---|---|
| Print Spooler | PrintNightmare (CVE-2021-34527), remote code execution | Disable on all servers except dedicated print servers |
| Remote Registry | Allows remote registry reads/writes | Disable unless required for specific management tools |
| Bluetooth Support Service | Attack surface on servers with Bluetooth hardware | Disable; servers should not use Bluetooth |
| Xbox Live services (multiple) | Zero enterprise use | Disable all |
| AllJoyn Router Service | IoT protocol, no server use case | Disable |
| Fax | Legacy, rarely needed | Disable |
| Windows Search | High resource use, no server use case | Disable on most server roles |
| WinRM (Windows Remote Management) | PowerShell remoting attack surface | Disable if not using PS remoting; harden if enabled |
Services that require role-specific evaluation:
- IIS Admin Service: Disable if not a web server
- MSSQLSERVER: Disable if not a database server; harden if enabled (named pipes vs. TCP, minimal permissions)
- SNMP Service: Disable unless network management requires it; use SNMPv3 if kept
How to inventory and disable:
# List all running services and their start type
Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object Name, DisplayName, StartType
# Disable a service
Set-Service -Name "Spooler" -StartupType Disabled
Stop-Service -Name "Spooler"
Critical GPO Settings: The Controls That Matter Most
Beyond the SCT baseline, these specific GPO settings address the most commonly exploited Windows Server configurations:
Authentication hardening:
Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options
Network security: LAN Manager authentication level→ Send NTLMv2 response only. Refuse LM and NTLMNetwork security: Minimum session security for NTLM SSP based (including secure RPC) clients→ Require NTLMv2 session security, Require 128-bit encryptionAccounts: Guest account status→ DisabledNetwork access: Do not allow anonymous enumeration of SAM accounts→ EnabledNetwork access: Do not allow anonymous enumeration of SAM accounts and shares→ Enabled
Credential protection:
Credential Guard→ Enable via Device Guard policy (requires UEFI, Secure Boot, virtualization-based security)WDigest Authentication→ Disabled (prevents cleartext credential caching in LSASS)Protected Userssecurity group → Add privileged accounts; prevents NTLM auth, credential delegation, and Kerberos RC4 for members
SMB hardening:
Configure SMB v1 client driver→ DisabledConfigure SMB v1 server→ Disabled- Enable SMB signing:
Microsoft network server: Digitally sign communications (always)→ Enabled
RDP hardening:
Set client connection encryption level→ High LevelRequire use of specific security layer for remote (RDP) connections→ SSL (TLS 1.0)Require NLA→ EnabledSet time limit for disconnected sessions→ 15 minutes
Microsoft Defender Configuration for Servers
Windows Defender Antivirus on servers requires different configuration than endpoint workstations. Default settings are often insufficient for server threat coverage.
Key Defender settings for servers (via GPO or Intune):
# Enable cloud-delivered protection
Set-MpPreference -MAPSReporting Advanced
Set-MpPreference -SubmitSamplesConsent SendAllSamples
# Enable attack surface reduction rules (key rules for servers)
# Block process creations originating from PSExec and WMI commands
Add-MpPreference -AttackSurfaceReductionRules_Ids d1e49aac-8f56-4280-b9ba-993a6d77406c -AttackSurfaceReductionRules_Actions Enabled
# Block credential stealing from LSASS
Add-MpPreference -AttackSurfaceReductionRules_Ids 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b3 -AttackSurfaceReductionRules_Actions Enabled
# Enable real-time protection
Set-MpPreference -DisableRealtimeMonitoring $false
# Set scan schedule
Set-MpPreference -ScanScheduleDay 1 -ScanScheduleTime 02:00:00
ASR rules particularly valuable on servers:
- Block LSASS credential dumping (catches Mimikatz and similar tools)
- Block process creations from PSExec/WMI (blocks lateral movement techniques)
- Block untrusted and unsigned processes from USB
- Block Office applications from creating child processes (relevant on RDS servers)
Exclusions discipline: Antivirus exclusions are a common attack vector. Limit exclusions to the minimum required by specific applications (e.g., database file extensions for SQL Server). Document every exclusion with a business justification and review quarterly.
Local Administrator Password Solution (LAPS)
If every Windows Server in your environment uses the same local administrator password — or if the built-in Administrator account has a predictable password — one compromised server gives an attacker lateral movement to every server with that password.
Microsoft LAPS (Local Administrator Password Solution) solves this by generating a unique, random password for each machine's local administrator account and storing it in Active Directory, where it is accessible only to authorized accounts.
Windows LAPS (built into Windows Server 2019+ and Windows 10 20H2+):
- No separate MSI required — enable via GPO
- Passwords stored in AD or Azure AD (Entra ID)
- Automatic rotation on schedule (recommended: 30 days) or after each use
Deployment via GPO:
- Enable
Computer Configuration > Administrative Templates > System > LAPS - Set
Backup directoryto Active Directory - Set
Password Settings— minimum 15 characters, complexity required - Set
Post-authentication actions— reset password after local admin account use - Extend the AD schema:
Update-LapsADSchema - Grant read access to LAPS passwords to specific security groups only
Retrieving a LAPS password:
Get-LapsADPassword -Identity SERVER01 -AsPlainText
Do not grant helpdesk or broad IT staff access to LAPS passwords for all servers. Scope read access by OU.
Audit Policy and Log Configuration
Detection depends on logging. Default Windows Server audit policy logs far less than needed for effective threat detection.
Configure Advanced Audit Policy (not the legacy basic audit policy — they conflict):
Computer Configuration > Windows Settings > Security Settings > Advanced Audit Policy Configuration
Critical categories to enable:
| Category | Subcategory | Setting |
|---|---|---|
| Account Logon | Credential Validation | Success and Failure |
| Account Logon | Kerberos Authentication Service | Success and Failure |
| Account Management | Security Group Management | Success |
| Account Management | User Account Management | Success and Failure |
| Logon/Logoff | Logon | Success and Failure |
| Logon/Logoff | Special Logon | Success |
| Object Access | File Share | Failure (for sensitive shares) |
| Privilege Use | Sensitive Privilege Use | Success and Failure |
| System | Security System Extension | Success |
| DS Access | Directory Service Changes | Success (on DCs) |
Log size — defaults are dangerously small:
- Security log: Default 20 MB. Set to 1 GB minimum on servers.
- System log: Set to 512 MB minimum.
- Application log: Set to 512 MB minimum.
# Set Security log size to 1 GB
wevtutil sl Security /ms:1073741824
Forward logs to SIEM via Windows Event Forwarding (WEF) or a SIEM agent. Logs retained only on the source server are lost if the attacker clears the Security log — a standard post-exploitation step.
The bottom line
Windows Server hardening is not a one-time project — it is a baseline you establish, test in non-production, deploy systematically, and maintain as roles change. Start with the Microsoft Security Compliance Toolkit baseline, disable the Print Spooler universally, deploy LAPS to eliminate shared local admin passwords, configure advanced audit policy with adequate log sizes, and forward logs to your SIEM. Those five steps alone close the majority of common Windows Server attack paths.
Frequently asked questions
What is the CIS Benchmark for Windows Server?
The CIS (Center for Internet Security) Benchmark for Windows Server is a set of configuration hardening recommendations organized into two profiles. Level 1 covers practical controls that improve security without significant operational impact — safe for broad deployment. Level 2 is more restrictive, intended for high-security environments, and requires testing before production deployment.
What is the difference between a CIS Benchmark and a DISA STIG?
CIS Benchmarks are published by the Center for Internet Security and widely used in commercial environments. DISA STIGs are published by the Defense Information Systems Agency and are mandatory for DoD systems, with more prescriptive requirements and severity-category ratings. Both cover similar controls with different organizational structure. Federal contractors typically require STIG compliance; commercial enterprises typically use CIS as their baseline.
Why should Print Spooler be disabled on Windows Servers?
The Print Spooler service has been repeatedly exploited for remote code execution and privilege escalation — most notably PrintNightmare (CVE-2021-34527) and multiple related vulnerabilities. Servers that are not dedicated print servers have no legitimate need for the Print Spooler. Disabling it eliminates an entire class of attack surface with no operational impact on non-print servers.
What is Windows LAPS and why does it matter?
Windows Local Administrator Password Solution (LAPS) generates unique, random passwords for each server's local administrator account and stores them in Active Directory. Without LAPS, shared local admin passwords allow an attacker who compromises one server to use pass-the-hash or credential reuse to move laterally to every other server sharing that password. LAPS eliminates this lateral movement path.
How do you harden RDP on Windows Server?
Key RDP hardening controls: enable Network Level Authentication (NLA) to require authentication before the RDP session is established, enforce TLS encryption, set session time limits for disconnected sessions, restrict RDP access to specific source IPs via Windows Firewall, and consider placing RDP behind a VPN or ZTNA solution rather than exposing it directly to the internet.
What is Credential Guard and when should you enable it?
Credential Guard uses virtualization-based security to isolate LSASS in a protected container, preventing tools like Mimikatz from extracting credentials from memory. It requires UEFI firmware, Secure Boot, and hardware virtualization support. Enable it on all servers running Windows Server 2016 and above where these prerequisites are met — particularly on servers that handle privileged authentication.
Sources & references
- CIS Microsoft Windows Server 2022 Benchmark v3.0
- DISA Windows Server 2022 STIG
- Microsoft Security Compliance Toolkit
- NSA/CISA Windows Hard Guidance
Free resources
Critical CVE Reference Card 2025–2026
25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.
Ransomware Incident Response Playbook
Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.
Get threat intel before your inbox does.
50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, weekly, no spam.
Unsubscribe anytime. We never sell your data.

Founder & Cybersecurity Evangelist, Decryption Digest
Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals weekly.
The Mythos Brief is free.
AI that finds 27-year-old zero-days. What it means for your security program.
