PRACTITIONER GUIDE | ENDPOINT SECURITY
Practitioner Guide14 min read

Windows Server Hardening: CIS Benchmarks, STIGs, and GPO Configuration That Actually Matters

Sources:CIS Microsoft Windows Server 2022 Benchmark v3.0|DISA Windows Server 2022 STIG|Microsoft Security Compliance Toolkit|NSA/CISA Windows Hard Guidance
73%
of Windows Server exploits target misconfigured services or default settings
237
individual controls in CIS Windows Server 2022 Level 2 Benchmark
60%
attack surface reduction achievable through CIS Level 1 controls alone
8 min
average time for an attacker to move laterally from a default-configured Windows Server

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:

  1. Download the SCT and extract the GPO backups
  2. Use Group Policy Management Console > Import Settings to import into a test GPO
  3. Run gpresult /H report.html on a test server after applying to verify settings landed
  4. 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
Free daily briefing

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:

ServiceRisk if Left EnabledNotes
Print SpoolerPrintNightmare (CVE-2021-34527), remote code executionDisable on all servers except dedicated print servers
Remote RegistryAllows remote registry reads/writesDisable unless required for specific management tools
Bluetooth Support ServiceAttack surface on servers with Bluetooth hardwareDisable; servers should not use Bluetooth
Xbox Live services (multiple)Zero enterprise useDisable all
AllJoyn Router ServiceIoT protocol, no server use caseDisable
FaxLegacy, rarely neededDisable
Windows SearchHigh resource use, no server use caseDisable on most server roles
WinRM (Windows Remote Management)PowerShell remoting attack surfaceDisable 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 NTLM
  • Network security: Minimum session security for NTLM SSP based (including secure RPC) clients → Require NTLMv2 session security, Require 128-bit encryption
  • Accounts: Guest account status → Disabled
  • Network access: Do not allow anonymous enumeration of SAM accounts → Enabled
  • Network 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 Users security group → Add privileged accounts; prevents NTLM auth, credential delegation, and Kerberos RC4 for members

SMB hardening:

  • Configure SMB v1 client driver → Disabled
  • Configure SMB v1 server → Disabled
  • Enable SMB signing: Microsoft network server: Digitally sign communications (always) → Enabled

RDP hardening:

  • Set client connection encryption level → High Level
  • Require use of specific security layer for remote (RDP) connections → SSL (TLS 1.0)
  • Require NLA → Enabled
  • Set 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:

  1. Enable Computer Configuration > Administrative Templates > System > LAPS
  2. Set Backup directory to Active Directory
  3. Set Password Settings — minimum 15 characters, complexity required
  4. Set Post-authentication actions — reset password after local admin account use
  5. Extend the AD schema: Update-LapsADSchema
  6. 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:

CategorySubcategorySetting
Account LogonCredential ValidationSuccess and Failure
Account LogonKerberos Authentication ServiceSuccess and Failure
Account ManagementSecurity Group ManagementSuccess
Account ManagementUser Account ManagementSuccess and Failure
Logon/LogoffLogonSuccess and Failure
Logon/LogoffSpecial LogonSuccess
Object AccessFile ShareFailure (for sensitive shares)
Privilege UseSensitive Privilege UseSuccess and Failure
SystemSecurity System ExtensionSuccess
DS AccessDirectory Service ChangesSuccess (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

  1. CIS Microsoft Windows Server 2022 Benchmark v3.0
  2. DISA Windows Server 2022 STIG
  3. Microsoft Security Compliance Toolkit
  4. NSA/CISA Windows Hard Guidance

Free resources

25
Free download

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.

No spam. Unsubscribe anytime.

Free download

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.

No spam. Unsubscribe anytime.

Free newsletter

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.

Eric Bang
Author

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.

Free Brief

The Mythos Brief is free.

AI that finds 27-year-old zero-days. What it means for your security program.

Joins Decryption Digest. Unsubscribe anytime.

Daily Briefing

Get briefings like this every morning

Actionable threat intelligence for working practitioners. Free. No spam. Trusted by 50,000+ SOC analysts, CISOs, and security engineers.

Unsubscribe anytime.

Mythos Brief

Anthropic's AI finds zero-days your scanners miss.