Skip to content

Siemphony is in beta and still being built. How a rule earns its badge.

Siemphony’s repertoire

Detect WMI method invocation and WMI-spawned child processes

Matches T1047 where it lands on the victim rather than on the operator's console: any process whose parent is `WmiPrvSE.exe`, which is what remote WMI execution produces on the target — wmiexec, the COM API and `Invoke-WmiMethod -ComputerName` all arrive that way and carry none of the literals an operator types. The command-line arms cover the local forms and are ANDed token-wise rather than as one contiguous substring, so `wmic process call create` with doubled spaces still matches, and `/node:` is bound to `call` so read-only remote inventory (`wmic /node:HOST os get caption`) stays out of scope — unbound, that one term is the noisiest thing in a managed Windows estate and outnumbers real execution by orders of magnitude. OR-ing `ParentImage` against `CommandLine` is what Wazuh cannot express in a single rule; the parent arm is worth the refusal because it is the only arm that sees the remote case at all. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0364, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.

detection.yml

title: Detect WMI method invocation and WMI-spawned child processesid: f950254a-bf01-4f34-8eeb-3c6bdb58dce8status: experimentaldescription: |  Matches T1047 where it lands on the victim rather than on the operator's  console: any process whose parent is `WmiPrvSE.exe`, which is what remote WMI  execution produces on the target — wmiexec, the COM API and  `Invoke-WmiMethod -ComputerName` all arrive that way and carry none of the  literals an operator types. The command-line arms cover the local forms and  are ANDed token-wise rather than as one contiguous substring, so  `wmic  process  call  create` with doubled spaces still matches, and `/node:`  is bound to `call` so read-only remote inventory (`wmic /node:HOST os get  caption`) stays out of scope — unbound, that one term is the noisiest thing  in a managed Windows estate and outnumbers real execution by orders of  magnitude. OR-ing `ParentImage` against `CommandLine` is what Wazuh cannot  express in a single rule; the parent arm is worth the refusal because it is  the only arm that sees the remote case at all.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0364, not hand-written and not tested by its author. Any lab result is on this rule's own page.references:  - https://attack.mitre.org/techniques/T1047  - https://attack.mitre.org/detectionstrategies/DET0364author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.execution  - attack.t1047logsource:  category: process_creation  product: windowsdetection:  selection_wmi_host_child:    ParentImage|endswith: '\WmiPrvSE.exe'  selection_wmic_create:    CommandLine|contains|all:      - 'process'      - 'call'      - 'create'  selection_wmic_remote_call:    CommandLine|contains|all:      - '/node:'      - 'call'  selection_wmi_class_create:    CommandLine|contains|all:      - 'Win32_Process'      - 'Create'  selection_wmi_cmdlet:    CommandLine|contains:      - 'Invoke-WmiMethod'      - 'Invoke-CimMethod'  condition: 1 of selection_*falsepositives:  - "Every sanctioned remote WMI action lands on the target as a `WmiPrvSE.exe` child, so software distribution, patch orchestration, inventory agents and helpdesk runbooks that run anything remotely all match the parent arm. The process tree is indistinguishable from wmiexec's, which is why MITRE exposes UserContext and RemoteDestinationThreshold — baseline which accounts and which management servers legitimately drive WMI before this arm is enabled."  - "Endpoint-management agents that call `wmic process call create` or `Invoke-WmiMethod` under SYSTEM on a schedule, and vendor installers that use `Win32_Process.Create` to relaunch themselves elevated. These recur at predictable intervals from a small set of parent processes."  - "`Invoke-CimMethod` is also the documented `PS_ScheduledTask` path for registering a scheduled task, so an estate that creates tasks that way matches here and again under T1053.005 — one event, two technique tags, and neither alert is wrong."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where (InitiatingProcessFolderPath endswith "\\WmiPrvSE.exe" or (ProcessCommandLine contains "process" and ProcessCommandLine contains "call" and ProcessCommandLine contains "create") or (ProcessCommandLine contains "/node:" and ProcessCommandLine contains "call") or (ProcessCommandLine contains "Win32_Process" and ProcessCommandLine contains "Create") or (ProcessCommandLine contains "Invoke-WmiMethod" or ProcessCommandLine contains "Invoke-CimMethod"))

Splunk · SPL

Run this as a search.

index=* (ParentImage="*\\WmiPrvSE.exe" OR (CommandLine="*process*" AND CommandLine="*call*" AND CommandLine="*create*") OR (CommandLine="*/node:*" AND CommandLine="*call*") OR (CommandLine="*Win32_Process*" AND CommandLine="*Create*") OR (CommandLine="*Invoke-WmiMethod*" OR CommandLine="*Invoke-CimMethod*"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(process.parent.executable) LIKE "*\\\\wmiprvse.exe" OR (TO_LOWER(process.command_line) LIKE "*process*" AND TO_LOWER(process.command_line) LIKE "*call*" AND TO_LOWER(process.command_line) LIKE "*create*") OR (TO_LOWER(process.command_line) LIKE "*/node:*" AND TO_LOWER(process.command_line) LIKE "*call*") OR (TO_LOWER(process.command_line) LIKE "*win32_process*" AND TO_LOWER(process.command_line) LIKE "*create*") OR (TO_LOWER(process.command_line) LIKE "*invoke-wmimethod*" OR TO_LOWER(process.command_line) LIKE "*invoke-cimmethod*"))

Wazuh · XML rule

Deploy to your manager — this is a rule, not a search.

<group name="sigma,windows,process_creation,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <!-- 5 rules: the Sigma condition ORs across different fields,       which one rule cannot express. Any one matching is a hit. -->  <rule id="100000" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="ParentImage" type="pcre2">(?i)\\WmiPrvSE\.exe$</field>    <description>Detect WMI method invocation and WMI-spawned child processes (1/5)</description>    <mitre>      <id>T1047</id>    </mitre>  </rule>   <rule id="100001" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(?=.*(?:process))(?=.*(?:call))(?=.*(?:create)).*</field>    <description>Detect WMI method invocation and WMI-spawned child processes (2/5)</description>    <mitre>      <id>T1047</id>    </mitre>  </rule>   <rule id="100002" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(?=.*(?:/node:))(?=.*(?:call)).*</field>    <description>Detect WMI method invocation and WMI-spawned child processes (3/5)</description>    <mitre>      <id>T1047</id>    </mitre>  </rule>   <rule id="100003" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(?=.*(?:Win32_Process))(?=.*(?:Create)).*</field>    <description>Detect WMI method invocation and WMI-spawned child processes (4/5)</description>    <mitre>      <id>T1047</id>    </mitre>  </rule>   <rule id="100004" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(Invoke-WmiMethod|Invoke-CimMethod)</field>    <description>Detect WMI method invocation and WMI-spawned child processes (5/5)</description>    <mitre>      <id>T1047</id>    </mitre>  </rule></group>

Verdicts · reactions · comments

Community

Verdicts from engineers who actually deployed it, and the conversation around it.

Log in to react
Not yet reported on

Nobody has run this in a real environment and said what happened.

Verdicts from engineers who deployed it

0 cast

No verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.

Log in to report a verdict.

Log in to join the discussion.

No comments yet. Someone who deploys this will have something to say about it.