The User Closed The Browser... The Process Didn't
The user finished browsing.
They closed Chrome. They went back to work. The browser disappeared from the screen.
But one child process did not disappear.
PowerShell kept running.
The visible application was gone, but the attack chain was still alive inside Microsoft Defender XDR telemetry.
Browser Child Process Investigation
The browser closed. The user relaxed. But PowerShell continued running, connected outbound and started a chain of endpoint activity that needed investigation.
The browser was gone. The process was not.
Why this matters
Find browsers spawning PowerShell
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ ("chrome.exe", "msedge.exe", "firefox.exe", "iexplore.exe")
| where FileName in~ ("powershell.exe", "pwsh.exe")
| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName, FileName, ProcessCommandLine
| order by Timestamp desc
Follow what PowerShell launched next
- 1
- 2
- 3
- 4
- 5
- 6
- 7
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ ("powershell.exe", "pwsh.exe")
| project Timestamp, DeviceName, AccountName, InitiatingProcessCommandLine, FileName, ProcessCommandLine
| order by Timestamp asc
Check whether PowerShell connected anywhere
- 1
- 2
- 3
- 4
- 5
- 6
- 7
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ ("powershell.exe", "pwsh.exe")
| project Timestamp, DeviceName, RemoteUrl, RemoteIP, RemotePort, InitiatingProcessCommandLine
| order by Timestamp desc
Look for persistence after the browser chain
- 1
- 2
- 3
- 4
- 5
- 6
- 7
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName in~ ("schtasks.exe", "reg.exe", "regsvr32.exe", "mshta.exe", "rundll32.exe")
| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName, FileName, ProcessCommandLine
| order by Timestamp desc
