Skip to content

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

Siemphony’s repertoire

Non-installer process writes an executable into System32 or SysWOW64

Siemphony@siemphonymediumT1574.010unverified
AN1211 describes a service binary being overwritten because the file or its containing directory has weak permissions, then that binary running under the service's own elevated context. Sysmon EID 11 (file_event, the logsource used here) can see only the write half of that story — it has no service name, no ACL and no privilege field — so this rule is a coarse proxy: an executable or DLL created or modified under System32 or SysWOW64, the two directories that host the large majority of built-in Windows service binaries, by a process outside a short allowlist of legitimate servicing tools (Windows Installer, TrustedInstaller, the servicing worker and the standalone update installer). It cannot confirm the written file backs a registered service, and it cannot see the later execution under elevated privileges that AN1211's second half describes — that is a Sysmon EID 11-to-EID 1 join on path and time window, which lib/sigma has no construct for. MITRE's MonitoredServices and HashBaseline knobs (a specific service list and known-good hashes) are not populated at all, because neither is something this pipeline can source generically; PrivilegedAccounts becomes the filter_trusted_writer allowlist below, authored here rather than taken from MITRE. Prerequisite: this fires only where the Sysmon configuration in use actually captures EID 11 for these paths — a config that filters file events by extension or excludes system directories produces zero rows here regardless of what is happening on disk. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0436, 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.

DeviceFileEvents| where (((FolderPath endswith ".exe" or FolderPath endswith ".dll") and (FolderPath contains "\\System32\\" or FolderPath contains "\\SysWOW64\\")) and not (((InitiatingProcessFolderPath startswith "C:\\Windows\\System32\\msiexec.exe" or InitiatingProcessFolderPath startswith "C:\\Windows\\servicing\\TrustedInstaller.exe" or InitiatingProcessFolderPath startswith "C:\\Windows\\System32\\wusa.exe") or InitiatingProcessFolderPath endswith "\\TiWorker.exe")))

Splunk · SPL

Run this as a search.

index=* (((TargetFilename="*.exe" OR TargetFilename="*.dll") AND (TargetFilename="*\\System32\\*" OR TargetFilename="*\\SysWOW64\\*")) AND NOT (((Image="C:\\Windows\\System32\\msiexec.exe*" OR Image="C:\\Windows\\servicing\\TrustedInstaller.exe*" OR Image="C:\\Windows\\System32\\wusa.exe*") OR Image="*\\TiWorker.exe")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (((TO_LOWER(file.path) LIKE "*.exe" OR TO_LOWER(file.path) LIKE "*.dll") AND (TO_LOWER(file.path) LIKE "*\\\\system32\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\syswow64\\\\*")) AND NOT (((TO_LOWER(process.executable) LIKE "c:\\\\windows\\\\system32\\\\msiexec.exe*" OR TO_LOWER(process.executable) LIKE "c:\\\\windows\\\\servicing\\\\trustedinstaller.exe*" OR TO_LOWER(process.executable) LIKE "c:\\\\windows\\\\system32\\\\wusa.exe*") OR TO_LOWER(process.executable) LIKE "*\\\\tiworker.exe")))

Wazuh · XML rule

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

<group name="sigma,windows,file_event,">  <!-- 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="TargetFilename" type="pcre2">(?i)(\.exe$|\.dll$)</field>    <field name="TargetFilename" type="pcre2">(?i)(\\System32\\|\\SysWOW64\\)</field>    <field name="Image" negate="yes" type="pcre2">(?i)(^C:\\Windows\\System32\\msiexec\.exe|^C:\\Windows\\servicing\\TrustedInstaller\.exe|^C:\\Windows\\System32\\wusa\.exe)</field>    <field name="Image" negate="yes" type="pcre2">(?i)\\TiWorker\.exe$</field>    <description>Non-installer process writes an executable into System32 or SysWOW64</description>    <mitre>      <id>T1574.010</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.