Skip to content

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

Siemphony’s repertoire

Non-MSBuild developer utility spawns a script interpreter

Siemphony@siemphonymediumT1127unverified
AN0488's parent-child leg, scoped to the trusted developer utilities the technique's own citations name that are not MSBuild: the DNX execution environment and the Roslyn C# interactive REPL (both cited via the "DNX Bypass" and "RCSI Bypass" references), the WinDbg console debugger, the .NET CLI, IL assembler and MSBuild's separate file-tracking helper. MSBuild itself is deliberately excluded — it is the published T1127.001 sibling — so this rule and that one alert on disjoint ParentImage sets even though both match the same SuspiciousChildList shape MITRE gives in AN0488. The payload-write, unsigned-module-load and network-egress legs of the analytic are separate events with no join Sigma can express, so only the immediate child-spawn is checked; a utility that shells out after a delay, or that loads a malicious DLL without ever spawning a child process at all, will not match. Note the process source is Security 4688, which needs Audit Process Creation enabled and returns nothing at all without it. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0172, 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 "\\dnx.exe" or InitiatingProcessFolderPath endswith "\\rcsi.exe" or InitiatingProcessFolderPath endswith "\\csi.exe" or InitiatingProcessFolderPath endswith "\\cdb.exe" or InitiatingProcessFolderPath endswith "\\windbg.exe" or InitiatingProcessFolderPath endswith "\\dotnet.exe" or InitiatingProcessFolderPath endswith "\\ilasm.exe" or InitiatingProcessFolderPath endswith "\\Tracker.exe") and (FolderPath endswith "\\powershell.exe" or FolderPath endswith "\\pwsh.exe" or FolderPath endswith "\\cmd.exe" or FolderPath endswith "\\wscript.exe" or FolderPath endswith "\\cscript.exe" or FolderPath endswith "\\mshta.exe" or FolderPath endswith "\\rundll32.exe" or FolderPath endswith "\\regsvr32.exe" or FolderPath endswith "\\certutil.exe"))

Splunk · SPL

Run this as a search.

index=* ((ParentImage="*\\dnx.exe" OR ParentImage="*\\rcsi.exe" OR ParentImage="*\\csi.exe" OR ParentImage="*\\cdb.exe" OR ParentImage="*\\windbg.exe" OR ParentImage="*\\dotnet.exe" OR ParentImage="*\\ilasm.exe" OR ParentImage="*\\Tracker.exe") AND (Image="*\\powershell.exe" OR Image="*\\pwsh.exe" OR Image="*\\cmd.exe" OR Image="*\\wscript.exe" OR Image="*\\cscript.exe" OR Image="*\\mshta.exe" OR Image="*\\rundll32.exe" OR Image="*\\regsvr32.exe" OR Image="*\\certutil.exe"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.parent.executable) LIKE "*\\\\dnx.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\rcsi.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\csi.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\cdb.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\windbg.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\dotnet.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\ilasm.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\tracker.exe") AND (TO_LOWER(process.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pwsh.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cmd.exe" OR TO_LOWER(process.executable) LIKE "*\\\\wscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\mshta.exe" OR TO_LOWER(process.executable) LIKE "*\\\\rundll32.exe" OR TO_LOWER(process.executable) LIKE "*\\\\regsvr32.exe" OR TO_LOWER(process.executable) LIKE "*\\\\certutil.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)(\\dnx\.exe$|\\rcsi\.exe$|\\csi\.exe$|\\cdb\.exe$|\\windbg\.exe$|\\dotnet\.exe$|\\ilasm\.exe$|\\Tracker\.exe$)</field>    <field name="Image" type="pcre2">(?i)(\\powershell\.exe$|\\pwsh\.exe$|\\cmd\.exe$|\\wscript\.exe$|\\cscript\.exe$|\\mshta\.exe$|\\rundll32\.exe$|\\regsvr32\.exe$|\\certutil\.exe$)</field>    <description>Non-MSBuild developer utility spawns a script interpreter</description>    <mitre>      <id>T1127</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.