🛡️ Methodology Checklist

  • Understand auth path: LSASS → SAM (local) / DC (domain)
  • Check SAM for local hashes: requires SYSTEM privileges
  • Inspect LSASS memory for cached plaintext or hashes
  • Enumerate cached domain logon credentials
  • Check Credential Manager: cmdkey /list
  • Note auth type in use: NTLM vs Kerberos (domain-joined)
  • Review Windows event logs for auth activity: Event ID 4624/4625

🎯 Operational Context

Use when: Understanding Windows authentication to target credential interception points — NTLM challenge-response, Kerberos ticket flow, and where hashes are stored. Think Dumber First: Know where creds live before dumping: NTLM hashes in SAM (local) and NTDS.dit (domain), plaintext in LSASS (if WDigest enabled), Kerberos tickets in LSASS memory. Target the highest-value store you have access to. Skip when: N/A — conceptual reference; use with credential dump files for operational context.


⚡ Tactical Cheatsheet

CommandTactical Outcome
reg query HKLM\SAMConfirm SAM hive location (requires SYSTEM)
reg query HKLM\SECURITYConfirm SECURITY hive (requires SYSTEM)

🔬 Deep Dive & Workflow

Interactive Logon Chain

User input (keyboard)
  → Win32k.sys RPC
  → Winlogon.exe (trusted process)
  → LogonUI (credential prompt UI)
  → Credential Providers (COM DLLs)
  → LSASS (authentication gatekeeper)
  → SAM / Active Directory / Kerberos

Winlogon is the only process that intercepts keyboard input at logon — prevents credential interception by other processes. It also handles password changes and workstation lock/unlock.

LSASS Authentication DLLs

LSASS loads protocol-specific packages to handle each authentication type:

DLLFunction
Lsasrv.dllSecurity policy enforcement; selects NTLM vs Kerberos via Negotiate
Msv1_0.dllLocal (non-domain) interactive logons
Kerberos.dllKerberos ticket-based authentication
Samsrv.dllSAM database interface; enforces local account policies
Netlogon.dllNetwork-based logon services
Ntdsa.dllAD database agent; handles NTDS.dit and LDAP — DC only

Credential Storage Architecture

StoreLocationAccess RequiredContent
SAM%SystemRoot%\system32\config\SAM / HKLM\SAMSYSTEMLocal account LM/NTLM hashes
NTDS.dit%SystemRoot%\NTDS\ntds.dit (DC only)DC SYSTEMAll domain account hashes, groups, GPOs
Credential Manager%APPDATA%\Local\Microsoft\[Vault/Credentials]\UserEncrypted web/network/app credentials

SAM Encryption (SYSKEY)

The SAM file on disk is encrypted by the SYSKEY boot key stored in HKLM\SYSTEM. This is why you need both the SAM hive and the SYSTEM hive to decrypt hashes offline — SAM alone is not enough.

Workgroup vs Domain

  • Workgroup — authentication checked against local SAM only
  • Domain — LSASS forwards credentials to the Domain Controller for validation; local cached hashes (DCC2) stored in SECURITY hive for offline logon

🛠️ Troubleshooting & Edge Cases

ProblemCauseFix
WDigest plaintext creds not in LSASSWDigest disabled (post-KB2871997)Check: reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential — if 0, no plaintext
NTLM auth fails but Kerberos worksNTLM disabled by GPOCheck: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel; value 5 = NTLMv2 only
Kerberos ticket not validClock skew >5 minutesSync time: w32tm /resync /force or net time \\[DC] /set
Pass-the-Hash failsTarget requires NTLMv2 or KerberosUse Kerberos PtT instead; or check if NTLM is completely disabled on target
LSASS dump blocked by PPLProtected Process Light enabledUse Mimikatz !+ (driver) or alternative: ProcDump -ma lsass.exe may bypass PPL

📝 Reporting Trigger

Finding Title: Windows Authentication Architecture Enables Credential Extraction Impact: Understanding Windows NTLM and Kerberos authentication flows identifies credential extraction points in LSASS, SAM, and NTDS.dit, enabling targeted attacks that recover both hashes and potentially plaintext credentials. Root Cause: Windows authentication protocols store credential material in memory and on disk as a function of their design. Default configurations enable legacy protocols that expose additional credential data. Recommendation: Enable Credential Guard to protect LSASS. Disable WDigest (ensure registry value = 0). Disable NTLMv1. Enable LSA protection (RunAsPPL). Deploy Microsoft Defender for Identity to detect credential dump attempts.