Detection rules › Sigma
Suspicious WSMAN Provider Image Loads
Detects signs of potential use of the WSMAN provider from uncommon processes locally and remote execution.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Execution | T1059.001 Command and Scripting Interpreter: PowerShell |
| Lateral Movement | T1021.003 Remote Services: Distributed Component Object Model |
Event coverage
| Provider | Event | Title |
|---|---|---|
| Sysmon | Event ID 7 | Image loaded |
Rule body yaml
title: Suspicious WSMAN Provider Image Loads
id: ad1f4bb9-8dfb-4765-adb6-2a7cfb6c0f94
status: test
description: Detects signs of potential use of the WSMAN provider from uncommon processes locally and remote execution.
references:
- https://twitter.com/chadtilbury/status/1275851297770610688
- https://bohops.com/2020/05/12/ws-management-com-another-approach-for-winrm-lateral-movement/
- https://learn.microsoft.com/en-us/windows/win32/winrm/windows-remote-management-architecture
- https://github.com/bohops/WSMan-WinRM
author: Roberto Rodriguez (Cyb3rWard0g), OTR (Open Threat Research)
date: 2020-06-24
modified: 2025-10-17
tags:
- attack.execution
- attack.t1059.001
- attack.lateral-movement
- attack.t1021.003
logsource:
category: image_load
product: windows
detection:
request_client:
- ImageLoaded|endswith:
- '\WsmSvc.dll'
- '\WsmAuto.dll'
- '\Microsoft.WSMan.Management.ni.dll'
- OriginalFileName:
- 'WsmSvc.dll'
- 'WSMANAUTOMATION.DLL'
- 'Microsoft.WSMan.Management.dll'
respond_server:
Image|endswith: '\svchost.exe'
OriginalFileName: 'WsmWmiPl.dll'
filter_general:
Image:
- 'C:\Program Files (x86)\PowerShell\6\pwsh.exe'
- 'C:\Program Files (x86)\PowerShell\7\pwsh.exe'
- 'C:\Program Files\PowerShell\6\pwsh.exe'
- 'C:\Program Files\PowerShell\7\pwsh.exe'
- 'C:\Windows\System32\sdiagnhost.exe'
- 'C:\Windows\System32\services.exe'
- 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe'
- 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
filter_svchost: # not available in Sysmon data, but Aurora logs
CommandLine|contains:
- 'svchost.exe -k netsvcs -p -s BITS'
- 'svchost.exe -k GraphicsPerfSvcGroup -s GraphicsPerfSvc'
- 'svchost.exe -k NetworkService -p -s Wecsvc'
- 'svchost.exe -k netsvcs'
filter_mscorsvw: # Image: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorsvw.exe
Image|startswith:
- 'C:\Windows\Microsoft.NET\Framework64\v'
- 'C:\Windows\Microsoft.NET\Framework\v'
- 'C:\Windows\Microsoft.NET\FrameworkArm\v'
- 'C:\Windows\Microsoft.NET\FrameworkArm64\v'
Image|endswith: '\mscorsvw.exe'
filter_svr_2019:
Image:
- 'C:\Windows\System32\Configure-SMRemoting.exe'
- 'C:\Windows\System32\ServerManager.exe'
filter_nextron:
Image|startswith: 'C:\Windows\Temp\asgard2-agent\'
filter_citrix:
Image|startswith: 'C:\Program Files\Citrix\'
filter_upgrade:
Image|startswith: 'C:\$WINDOWS.~BT\Sources\'
filter_mmc:
Image|endswith: '\mmc.exe'
svchost:
Image|endswith: '\svchost.exe'
commandline_null:
CommandLine: null
condition: ( request_client or respond_server ) and not 1 of filter* and not ( svchost and commandline_null )
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
( request_client or respond_server ) and not 1 of filter* and not ( svchost and commandline_null )Stage 1: request_client
request_client:
- ImageLoaded|endswith:
- '\WsmSvc.dll'
- '\WsmAuto.dll'
- '\Microsoft.WSMan.Management.ni.dll'
- OriginalFileName:
- 'WsmSvc.dll'
- 'WSMANAUTOMATION.DLL'
- 'Microsoft.WSMan.Management.dll'
Stage 2: respond_server
respond_server:
Image|endswith: '\svchost.exe'
OriginalFileName: 'WsmWmiPl.dll'
Stage 3: not filter*
filter_general:
Image:
- 'C:\Program Files (x86)\PowerShell\6\pwsh.exe'
- 'C:\Program Files (x86)\PowerShell\7\pwsh.exe'
- 'C:\Program Files\PowerShell\6\pwsh.exe'
- 'C:\Program Files\PowerShell\7\pwsh.exe'
- 'C:\Windows\System32\sdiagnhost.exe'
- 'C:\Windows\System32\services.exe'
- 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe'
- 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
filter_svchost:
CommandLine|contains:
- 'svchost.exe -k netsvcs -p -s BITS'
- 'svchost.exe -k GraphicsPerfSvcGroup -s GraphicsPerfSvc'
- 'svchost.exe -k NetworkService -p -s Wecsvc'
- 'svchost.exe -k netsvcs'
filter_mscorsvw:
Image|startswith:
- 'C:\Windows\Microsoft.NET\Framework64\v'
- 'C:\Windows\Microsoft.NET\Framework\v'
- 'C:\Windows\Microsoft.NET\FrameworkArm\v'
- 'C:\Windows\Microsoft.NET\FrameworkArm64\v'
Image|endswith: '\mscorsvw.exe'
filter_svr_2019:
Image:
- 'C:\Windows\System32\Configure-SMRemoting.exe'
- 'C:\Windows\System32\ServerManager.exe'
filter_nextron:
Image|startswith: 'C:\Windows\Temp\asgard2-agent\'
filter_citrix:
Image|startswith: 'C:\Program Files\Citrix\'
filter_upgrade:
Image|startswith: 'C:\$WINDOWS.~BT\Sources\'
filter_mmc:
Image|endswith: '\mmc.exe'
Stage 4: not svchost
svchost:
Image|endswith: '\svchost.exe'
Stage 5: not commandline_null
commandline_null:
CommandLine: null
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
Image | starts_with | C:\Windows\Microsoft.NET\Framework64\v |
Image | starts_with | C:\Windows\Microsoft.NET\FrameworkArm64\v |
Image | starts_with | C:\Windows\Microsoft.NET\FrameworkArm\v |
Image | starts_with | C:\Windows\Microsoft.NET\Framework\v |
Image | ends_with | \mscorsvw.exe |
CommandLine | match | svchost.exe -k GraphicsPerfSvcGroup -s GraphicsPerfSvc |
CommandLine | match | svchost.exe -k NetworkService -p -s Wecsvc |
CommandLine | match | svchost.exe -k netsvcs -p -s BITS |
CommandLine | match | svchost.exe -k netsvcs |
Image | ends_with | \mmc.exe |
Image | eq | C:\Program Files (x86)\PowerShell\6\pwsh.exe |
Image | eq | C:\Program Files (x86)\PowerShell\7\pwsh.exe |
Image | eq | C:\Program Files\PowerShell\6\pwsh.exe |
Image | eq | C:\Program Files\PowerShell\7\pwsh.exe |
Image | eq | C:\Windows\System32\Configure-SMRemoting.exe |
Image | eq | C:\Windows\System32\ServerManager.exe |
Image | eq | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe |
Image | eq | C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe |
Image | eq | C:\Windows\System32\sdiagnhost.exe |
Image | eq | C:\Windows\System32\services.exe |
Image | starts_with | C:\$WINDOWS.~BT\Sources\ |
Image | starts_with | C:\Program Files\Citrix\ |
Image | starts_with | C:\Windows\Temp\asgard2-agent\ |
Image | ends_with | \svchost.exe |
CommandLine | is_null |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
Image | ends_with |
|
ImageLoaded | ends_with |
|
OriginalFileName | eq |
|