Extra or Missing Instances
Windows runs a fixed number of copies of most core processes, with one lsass.exe, one services.exe and one wininit.exe, one csrss.exe in each session, and one winlogon.exe in each session but session 0. Many svchost.exe copies are normal, but a second lsass.exe never is. An extra copy is usually an impostor under the name, or a clone of lsass.exe made so its memory can be read for credentials. A copy missing from the active list, the kernel's list of running processes, may have been unlinked from it to hide it. Count copies by name and session first, then read each extra copy's parent.
Normal and Suspicious
A clean machine sits beside a suspicious one, and the pointer marks where to look.
Normal
A clean Windows 11 install
| Name | PID | Parent |
|---|---|---|
wininit.exe | PID 372 | smss.exe, exited |
lsass.exe | PID 556 | wininit.exe |
Suspicious
ws-017,
| Name | PID | Parent |
|---|---|---|
wininit.exe | PID 612 | smss.exe, exited |
lsass.exe | PID 768 | wininit.exe |
lsass.exe | PID 6184 | lsass.exe |
| ParentA second lsass.exe, started by lsass.exe: Windows runs one, started by wininit.exe. Extra or Missing Instances | ||
Look Inside
Why It Matters
A second lsass.exe may be a copy made so that its memory can be read for credentials. A core process missing from the active list may have been unlinked to hide it.
How to Confirm It
Work through these in order. Each step names the page that shows how.
- Count copies by name and session against a clean machine of the same build. Many svchost.exe are normal, but a second lsass.exe or services.exe is not.Process Listings and Scans
- Read each extra copy's parent and start time. An lsass.exe under lsass.exe is a clone, and one under anything else is an impostor.Process Trees and Call Chains
- In a memory image, set the active list against the pool scan and the other views (windows.malware.psxview). A process the scans find but the list lacks has exited if it has an exit time, and one without may have been unlinked to hide it.Process Listings and Scans
- For a second lsass.exe, find what opened the original. Sysmon event 10 in Microsoft-Windows-Sysmon/Operational, where its configuration logs process access, and Defender's OpenProcessApiCall rows in DeviceEvents name the process that asked.Handles, Pipes and Mutexes
What Defenders See
Each record names its log and what must be switched on to get it.
| Record and Where It Lands | What to Read | How to Turn It On |
|---|---|---|
4688 A new process has been created (opens in a new tab)SecurityIt is written on the computer the process ran on. | New Process Name with Creator Process Name. An lsass.exe whose creator is lsass.exe is a clone, the record Elastic reads.Process Trees and Call Chains shows how to read it. | Turn on Audit Process Creation. For the command line, also turn on Include command line in process creation events. |
| Device | FileName with Initiating | The Defender for Endpoint sensor on the device |
1 Process creation (opens in a new tab)Microsoft-Windows-Sysmon/OperationalIt is written on any Windows computer running Sysmon. | Image and ParentImage. Any lsass.exe that wininit.exe did not start, such as a file run under its name, needs explaining.Process Trees and Call Chains shows how to read it. | Run Sysmon with ProcessCreate events in its configuration. |
10 ProcessAccess (opens in a new tab)Microsoft-Windows-Sysmon/OperationalIt is written on any Windows computer running Sysmon. | SourceImage and GrantedAccess on lsass.exe, which name what opened the original before or after the copy appeared.Handles, Pipes and Mutexes shows how to read it. | Run Sysmon with ProcessAccess events in its configuration, filtered to the accesses that matter. |
What It Looks Like
This record is decoded field by field, with what each value means.
| Field, as the Record Writes It | What It Tells You |
|---|---|
New Process NameC:\ | The genuine lsass |
Creator Process NameC:\ | Its creator is lsass |
- False Positives
Many svchost.exe copies are normal, and each signed-in person adds per-user service hosts as well.
Each new session, from a second person or a Remote Desktop connection, brings its own csrss.exe and winlogon.exe, started by that session's own copy of smss.exe.
- Blind Spots
A live listing shows only what runs now, so a clone made and closed within seconds survives only in creation records.
windows.pslist and windows.pstree read the active list, so a process unlinked from it is missing there. windows.malware.psxview shows whether pool scans, thread scans or csrss.exe's handles still find it.
Hunt It
The same hunt is written for four tools, so pick the one you use. Defender XDR and Sentinel queries are in KQL, which you paste into Advanced hunting in the Defender portal or into Sentinel's Logs page. Splunk queries are in SPL, for its Search page, and Velociraptor queries are in VQL, which you run as a hunt.
Needs Defender for Endpoint. A hit is a copy of lsass.exe that Windows did not start at boot, so read what opened the original next. Elastic's clone rule reads event 4688 in the Security log, so where it is collected, hunt there too.
// Any lsass.exe that wininit.exe did not create, the only parent Windows uses for itDeviceProcessEvents| where Timestamp > ago( 30d)| where FileName =~ "lsass.exe"| where InitiatingProcessFileName !~ "wininit.exe"| project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessFileName, InitiatingProcessFolderPath, AccountName, ProcessCommandLine| order by Timestamp descIn a Memory Image
Volatility 3 reads a memory image, and each of its plugins below shows part of this sign.
windows.pslist(documentation, opens in a new tab)Memory Image A Volatility 3 plugin. It is one check run on a saved copy of a Windows machine's memory. pslist means process list. Every copy of each name in the active list, with the session each runs in.windows.psscan(documentation, opens in a new tab)Memory Image A Volatility 3 plugin. It is one check run on a saved copy of a Windows machine's memory. psscan means process scan. Process objects found by pool scan, exited and unlinked ones included. An exit time marks one that ended, so a copy without one needs explaining.windows.(documentation, opens in a new tab)Memory Image A Volatility 3 plugin from its malware group. It checks a memory image for code that hides, or code put into a process. psxview means process cross view. Each process with the four views that found it. Missing from the active list but found by the scans is the pattern to explain.malware. psxview windows.pstree(documentation, opens in a new tab)Memory Image A Volatility 3 plugin. It is one check run on a saved copy of a Windows machine's memory. pstree means process tree. Each copy's recorded parent. An lsass.exe under lsass.exe is a clone.
Rules to Compare With
Security vendors publish detection rules anyone can read. These look for the same thing, so compare your own with them.
Show the 2 Public Rules
- Potential LSASS Clone Creation via PssCaptureSnapShot (opens in a new tab) Elastic: An lsass.exe whose creator is lsass.exe, read from event 4688 in the Security log.
- Unusual Parent-Child Relationship (opens in a new tab) Elastic: Flags core Windows processes started by an unexpected parent. It expects, for example, smss.exe from System, lsass.exe and services.exe from wininit.exe, and svchost.exe from services.exe.
How to Prevent It
Each control helps prevent it, and its line says what it does here.
- Added LSA protection (opens in a new tab) Runs lsass.exe as a protected process, which processes that are not protected cannot open to read its memory. Check it in the Registry: LSA Protection (RunAsPPL)
- Credential Guard (opens in a new tab) NTLM password hashes and Kerberos ticket-granting tickets move into LsaIso.exe, so a copy of lsass.exe's memory no longer holds them. Check it in the Registry: Credential Guard (LsaCfgFlags)
- ASR: Block credential stealing from the Windows local security authority subsystem (opens in a new tab) Defender locks down lsass.exe against credential theft where LSA protection is not on.
Sources
- Elastic: Potential LSASS Clone Creation via PssCaptureSnapShot (prebuilt rule) (opens in a new tab)
- Microsoft Learn: Service host grouping in Windows 10 (opens in a new tab)
- Microsoft Learn: Per-user services in Windows (opens in a new tab)
- Microsoft Tech Community (Ask the Performance Team): WS2008: Startup Processes and Delayed Automatic Start (each session's own csrss.exe and winlogon.exe) (opens in a new tab)
- Volatility 3: windows.malware.psxview (opens in a new tab)
- Volatility 3: windows.psscan (opens in a new tab)
MITRE ATT&CK is a free public catalogue of the techniques attackers use. Each technique has an ID, such as T1055 for Process Injection, so defenders can name the same behaviour the same way. This red flag can point to these techniques.
- T1036.005 (opens in a new tab) Masquerading: Match Legitimate Resource Name or Location
- T1003.001 (opens in a new tab) OS Credential Dumping: LSASS Memory