SYS-4006
criticalLSASS Accessed with Credential-Dumping Rights
Detects a process opening a handle to lsass.exe with the access mask used to read its memory (0x1010 = PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_READ). LSASS holds the credential material for every active session, so reading its memory is the single most direct route from one compromised host to the rest of the domain. A CallTrace of UNKNOWN alongside this is a strong sign of injected or unbacked code doing the reading.
Detection logic
Fires as soon as one event matches: `EventID` is 10 AND `TargetImage` ends with "lsass.exe" AND `GrantedAccess` is "0x1010" or "0x1410" or "0x1438" or "0x143a".
{
"detection_type": "selection",
"selection": {
"EventID": 10,
"TargetImage|endswith": "lsass.exe",
"GrantedAccess": [
"0x1010",
"0x1410",
"0x1438",
"0x143a"
]
}
}Log source: product=windows, service=sysmon · Event ID(s): 10
Required log fields
- SourceImage
- TargetImage
- GrantedAccess
- CallTrace
Enabling this in your environment
Where: Sysmon configuration - ProcessAccess (Event ID 10) enabled with TargetImage scoped to lsass.exe. It is excluded in many default configs because unscoped ProcessAccess is extremely high volume.
sysmon64.exe -c sysmonconfig.xml
Scope ProcessAccess to lsass.exe or this event will overwhelm the pipeline. Filter on GrantedAccess rather than SourceImage: attackers rename their tooling freely, but the access mask needed to read process memory is fixed by the API.
Seen in incidents
False positives
- EDR, AV and some backup agents legitimately read LSASS - build an allow-list by SourceImage and signature, not by access mask
- Windows Defender and MsMpEng touch LSASS during scans