Detection rules › Sigma
Suspicious Spool Service Child Process
Detects suspicious print spool service (spoolsv.exe) child processes.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Execution | T1203 Exploitation for Client Execution |
| Privilege Escalation | T1068 Exploitation for Privilege Escalation |
Event coverage
| Provider | Event | Title |
|---|---|---|
| Sysmon | Event ID 1 | Process creation |
Rule body yaml
title: Suspicious Spool Service Child Process
id: dcdbc940-0bff-46b2-95f3-2d73f848e33b
status: test
description: Detects suspicious print spool service (spoolsv.exe) child processes.
references:
- https://github.com/microsoft/Microsoft-365-Defender-Hunting-Queries/blob/efa17a600b43c897b4b7463cc8541daa1987eeb4/Exploits/Print%20Spooler%20RCE/Suspicious%20Spoolsv%20Child%20Process.md
author: Justin C. (@endisphotic), @dreadphones (detection), Thomas Patzke (Sigma rule)
date: 2021-07-11
modified: 2024-12-01
tags:
- attack.execution
- attack.t1203
- attack.privilege-escalation
- attack.t1068
logsource:
category: process_creation
product: windows
detection:
spoolsv:
ParentImage|endswith: '\spoolsv.exe'
IntegrityLevel:
- 'System'
- 'S-1-16-16384'
suspicious_unrestricted:
Image|endswith:
- '\gpupdate.exe'
- '\whoami.exe'
- '\nltest.exe'
- '\taskkill.exe'
- '\wmic.exe'
- '\taskmgr.exe'
- '\sc.exe'
- '\findstr.exe'
- '\curl.exe'
- '\wget.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
- '\accesschk.exe'
- '\wevtutil.exe'
- '\bcdedit.exe'
- '\fsutil.exe'
- '\cipher.exe'
- '\schtasks.exe'
- '\write.exe'
- '\wuauclt.exe'
- '\systeminfo.exe'
- '\reg.exe'
- '\query.exe'
suspicious_net:
Image|endswith:
- '\net.exe'
- '\net1.exe'
suspicious_net_filter:
CommandLine|contains: 'start'
suspicious_cmd:
Image|endswith: '\cmd.exe'
suspicious_cmd_filter:
CommandLine|contains:
- '.spl'
- 'route add'
- 'program files'
suspicious_netsh:
Image|endswith: '\netsh.exe'
suspicious_netsh_filter:
CommandLine|contains:
- 'add portopening'
- 'rule name'
suspicious_powershell:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
suspicious_powershell_filter:
CommandLine|contains: '.spl'
suspicious_rundll32_img:
- Image|endswith: '\rundll32.exe'
- OriginalFileName: 'RUNDLL32.EXE'
suspicious_rundll32_cli:
CommandLine|endswith: 'rundll32.exe'
condition: spoolsv and ( suspicious_unrestricted or (suspicious_net and not suspicious_net_filter) or (suspicious_cmd and not suspicious_cmd_filter) or (suspicious_netsh and not suspicious_netsh_filter) or (suspicious_powershell and not suspicious_powershell_filter) or all of suspicious_rundll32_* )
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
spoolsv and ( suspicious_unrestricted or (suspicious_net and not suspicious_net_filter) or (suspicious_cmd and not suspicious_cmd_filter) or (suspicious_netsh and not suspicious_netsh_filter) or (suspicious_powershell and not suspicious_powershell_filter) or all of suspicious_rundll32_* )Stage 1: spoolsv
spoolsv:
ParentImage|endswith: '\spoolsv.exe'
IntegrityLevel:
- 'System'
- 'S-1-16-16384'
Stage 2: suspicious_unrestricted
suspicious_unrestricted:
Image|endswith:
- '\gpupdate.exe'
- '\whoami.exe'
- '\nltest.exe'
- '\taskkill.exe'
- '\wmic.exe'
- '\taskmgr.exe'
- '\sc.exe'
- '\findstr.exe'
- '\curl.exe'
- '\wget.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
- '\accesschk.exe'
- '\wevtutil.exe'
- '\bcdedit.exe'
- '\fsutil.exe'
- '\cipher.exe'
- '\schtasks.exe'
- '\write.exe'
- '\wuauclt.exe'
- '\systeminfo.exe'
- '\reg.exe'
- '\query.exe'
Stage 3: suspicious_net
suspicious_net:
Image|endswith:
- '\net.exe'
- '\net1.exe'
Stage 4: not suspicious_net_filter
suspicious_net_filter:
CommandLine|contains: 'start'
Stage 5: suspicious_cmd
suspicious_cmd:
Image|endswith: '\cmd.exe'
Stage 6: not suspicious_cmd_filter
suspicious_cmd_filter:
CommandLine|contains:
- '.spl'
- 'route add'
- 'program files'
Stage 7: suspicious_netsh
suspicious_netsh:
Image|endswith: '\netsh.exe'
Stage 8: not suspicious_netsh_filter
suspicious_netsh_filter:
CommandLine|contains:
- 'add portopening'
- 'rule name'
Stage 9: suspicious_powershell
suspicious_powershell:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
Stage 10: not suspicious_powershell_filter
suspicious_powershell_filter:
CommandLine|contains: '.spl'
Stage 11: suspicious_rundll32_img
suspicious_rundll32_img:
- Image|endswith: '\rundll32.exe'
- OriginalFileName: 'RUNDLL32.EXE'
Stage 12: suspicious_rundll32_cli
suspicious_rundll32_cli:
CommandLine|endswith: 'rundll32.exe'
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
CommandLine | match | start |
CommandLine | match | .spl |
CommandLine | match | program files |
CommandLine | match | route add |
CommandLine | match | add portopening |
CommandLine | match | rule name |
CommandLine | match | .spl |
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 |
|---|---|---|
CommandLine | ends_with |
|
Image | ends_with |
|
IntegrityLevel | eq |
|
OriginalFileName | eq |
|
ParentImage | ends_with |
|