The Incident That Made Me Question My Sanity

I was knee-deep in forensic analysis on a Sunday morning. The attacker had lateral-moved from a user workstation to domain controller in under 12 minutes. How?

The audit log showed the attacker using a service account's NTLM hash—no password, just the hash—to authenticate directly to the domain controller. The account didn't even have admin rights.

I looked at my laptop. I looked at the domain controller. I checked my notes from 2015 when I wrote my first blog post about Pass-the-Hash.

2026, and we're still seeing this in production environments. Not because it's difficult to prevent—because organizations haven't actually implemented the controls they've had available for years.

Why Pass-the-Hash Works in 2026

Pass-the-Hash (PtH) is not a vulnerability. It's how Windows authenticates using NTLM. The attacker doesn't need the password—just the hash. And if you're still using NTLM, or if your domain has legacy protocols enabled, the attacker can extract hashes from memory and use them directly.

Let me break down exactly how this happens in modern environments—and what actually stops it.

The Three Ways Attackers Get NTLM Hashes

1. Credential Dumping from Memory

When a user logs in with NTLM, Windows stores both the LM hash and NT hash in memory (LSASS process). Tools like Mimikatz can extract these hashes in seconds.

What actually stops this:

2. Harvesting from Network Traffic

NTLM authentication happens over the network. An attacker in position to capture traffic can replay hashes or use them for lateral movement.

What actually stops this:

3. Golden Ticket Attacks

If the attacker gets domain controller access and extracts the KRBTGT hash, they can create Golden Tickets—forged Kerberos TGTs that grant any access they want.

What actually stops this:

The Modern Windows Environment Isn't Safe by Default

Microsoft has been pushing for Kerberos and disabling NTLM, but the defaults still leave environments vulnerable:

Here's what I configure on every engagement.

Disabling NTLM in Practice

Step 1: Audit Current Usage

Before disabling anything, you need to know what's using NTLM:

# Check event logs for NTLM usage Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-SMBServer/Operational' ID = 30001, 30002, 30003 } | Select TimeCreated, Message # Check domain controller events for NTLM authentication Get-WinEvent -FilterHashtable @{ LogName = 'Security' ID = 4624, 4625 } | Where-Object { $_.Properties[8].Value -like '*NTLM*' } | Select TimeCreated, Message

Step 2: Configure Domain Controller to Audit NTLM

# Enable auditing for NTLM authentication on domain controllers Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters' -Name 'NTLM Auditing' -Value 1 # Configure domain controller to audit NTLM usage secedit /export /cfg secpol.cfg /areas SECURITYPOLICY # Edit secpol.cfg to set SystemServices = 0x100 secedit /configure /db secedit.sdb /cfg secpol.cfg /areas SECURITYPOLICY

Step 3: Disable NTLM via Group Policy

  1. Open Group Policy Management Console (GPMC)
  2. Create new GPO: "Disable NTLM"
  3. Navigate to:
    • Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options
  4. Configure these settings:
    • Network security: Do not store LAN Manager hash value on next password change → Enabled
    • Network security: LAN Manager authentication level → Send NTLMv2 response only\Refuse LM & NTLM
    • Network security: Minimum session security for NTLM SSP → Require NTLMv2 session security, Require 128-bit encryption

Step 4: Block NTLM Traffic at the Firewall

Even if clients try to use NTLM, block it at network boundaries:

What I Actually Recommend for Each Environment Type

Small Environments (< 500 Users)

Immediate actions:

Timeline:

Medium Environments (500–5,000 Users)

Additional considerations:

Timeline:

Large Enterprises (> 5,000 Users)

Enterprise-scale recommendations:

Timeline:

The Real Problem Isn't Technology—It's Prioritization

I've seen environments with:

And still using NTLM for internal communications.

The attacker doesn't care about your cool technology. They only need one weak point—and NTLM is still available everywhere by default.

Key Takeaways

Pass-the-Hash still works in 2026 because NTLM is still enabled by default.

  • You can stop it with existing Microsoft controls—no new tools required
  • Disabling NTLM breaks nothing in modern Windows environments—if you do it correctly
  • Microsoft's security defaults should be more secure, but they're not. You have to actively disable these legacy protocols.