Skip to content

Siemphony is in beta and still being built. What ships today, and what does not.

Siemphony’s repertoire

Server application process spawns a command interpreter

Siemphony@siemphonymediumT1505unverified
AN1507 describes server modules that "later execute command-line interpreters", and that hand-off is the one thing observable at the parent level: whichever extensibility feature was abused — an IIS native module or ISAPI filter, a web shell page, an Apache module, or a SQL stored procedure calling xp_cmdshell — the server worker process itself ends up as the parent of a shell, and a single Sysmon EventID 1 record carries both halves of that. MITRE supplies the `ParentProcessName` knob; the five server workers matched here are authored, and java.exe and the Tomcat service wrappers are deliberately left out of it, because a JVM parent spawning cmd.exe is ordinary in build, CI and application-server work and would swamp the rule. The analytic's other log source, Security EventID 4698, is not used at all: scheduled-job creation carries a task name and task XML and has no field that can express a module being installed, so a rule written against it would render in four backends and match nothing. Being the parent technique's rule it necessarily overlaps T1505.001, T1505.003 and T1505.004 — at this level of ATT&CK there is no observable that is "server software component" in general rather than one of its children. The installation step, and MITRE's `TimeWindow` knob between install and execution, are a cross-event correlation lib/sigma cannot express, so this sees the payoff and never the plant. One vocabulary note: the rule is written in the Sysmon EventID 1 field names the brief's process_creation logsource implies; if the same category is fed from Security 4688 instead, the names are `NewProcessName` and `ParentProcessName` and the feed needs a field mapping first, plus *Audit Process Creation* and the separate *Include command line in process creation events* policy. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0547, 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

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where ((InitiatingProcessFolderPath endswith "\\w3wp.exe" or InitiatingProcessFolderPath endswith "\\php-cgi.exe" or InitiatingProcessFolderPath endswith "\\httpd.exe" or InitiatingProcessFolderPath endswith "\\nginx.exe" or InitiatingProcessFolderPath endswith "\\sqlservr.exe") and (FolderPath endswith "\\cmd.exe" or FolderPath endswith "\\powershell.exe" or FolderPath endswith "\\pwsh.exe" or FolderPath endswith "\\cscript.exe" or FolderPath endswith "\\wscript.exe" or FolderPath endswith "\\mshta.exe" or FolderPath endswith "\\bash.exe" or FolderPath endswith "\\wsl.exe"))

Splunk · SPL

Run this as a search.

index=* ((ParentImage="*\\w3wp.exe" OR ParentImage="*\\php-cgi.exe" OR ParentImage="*\\httpd.exe" OR ParentImage="*\\nginx.exe" OR ParentImage="*\\sqlservr.exe") AND (Image="*\\cmd.exe" OR Image="*\\powershell.exe" OR Image="*\\pwsh.exe" OR Image="*\\cscript.exe" OR Image="*\\wscript.exe" OR Image="*\\mshta.exe" OR Image="*\\bash.exe" OR Image="*\\wsl.exe"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.parent.executable) LIKE "*\\\\w3wp.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\php-cgi.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\httpd.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\nginx.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\sqlservr.exe") AND (TO_LOWER(process.executable) LIKE "*\\\\cmd.exe" OR TO_LOWER(process.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pwsh.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\wscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\mshta.exe" OR TO_LOWER(process.executable) LIKE "*\\\\bash.exe" OR TO_LOWER(process.executable) LIKE "*\\\\wsl.exe"))

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. -->  <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)(\\w3wp\.exe$|\\php-cgi\.exe$|\\httpd\.exe$|\\nginx\.exe$|\\sqlservr\.exe$)</field>    <field name="Image" type="pcre2">(?i)(\\cmd\.exe$|\\powershell\.exe$|\\pwsh\.exe$|\\cscript\.exe$|\\wscript\.exe$|\\mshta\.exe$|\\bash\.exe$|\\wsl\.exe$)</field>    <description>Server application process spawns a command interpreter</description>    <mitre>      <id>T1505</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.