Skip to content

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

Siemphony’s repertoire

Common system utility name executed from a non-standard directory

Search order hijacking works because some launcher calls a utility by name rather than full path, so the OS resolves it from whatever directory it finds first — AN1560 frames this as a binary named after a legitimate system utility running from a non-standard or application-specific directory. This rule catches only that half: a process whose Image ends in one of a small set of frequently-hijacked utility names, launched from outside the directories Windows and mainstream installers actually keep them in. AN1560 also asks for a correlated file-write (Sysmon EID 11/15) that placed the planted binary and for parent-lineage deviation from a baseline; neither is attempted here, because joining a file_event to a later process_creation event on a shared path and time window is a cross-event correlation lib/sigma cannot express, and "deviates from ParentProcessBaseline" needs a per-environment baseline this corpus has no source for. MITRE's SuspiciousBinaryList knob is populated here with net.exe, net1.exe, findstr.exe, cmd.exe and python.exe — utilities commonly invoked without a full path by other programs — and MonitoredDirectories becomes its inverse: an allowlist of System32, SysWOW64 and the two Program Files roots. A binary under either of those five listed names running from anywhere else, such as a user profile, a temp folder or an unrelated application directory, is what this rule flags; it says nothing about why the file got there. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0564, 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: Common system utility name executed from a non-standard directoryid: 0ee1d7d9-b266-48dd-be5c-9fbd261d33c9status: experimentaldescription: |  Search order hijacking works because some launcher calls a utility by name  rather than full path, so the OS resolves it from whatever directory it finds  first — AN1560 frames this as a binary named after a legitimate system  utility running from a non-standard or application-specific directory. This  rule catches only that half: a process whose Image ends in one of a small  set of frequently-hijacked utility names, launched from outside the  directories Windows and mainstream installers actually keep them in. AN1560  also asks for a correlated file-write (Sysmon EID 11/15) that placed the  planted binary and for parent-lineage deviation from a baseline; neither is  attempted here, because joining a file_event to a later process_creation  event on a shared path and time window is a cross-event correlation  lib/sigma cannot express, and "deviates from ParentProcessBaseline" needs a  per-environment baseline this corpus has no source for. MITRE's  SuspiciousBinaryList knob is populated here with net.exe, net1.exe,  findstr.exe, cmd.exe and python.exe — utilities commonly invoked without a  full path by other programs — and MonitoredDirectories becomes its inverse:  an allowlist of System32, SysWOW64 and the two Program Files roots. A binary  under either of those five listed names running from anywhere else, such as  a user profile, a temp folder or an unrelated application directory, is what  this rule flags; it says nothing about why the file got there.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0564, 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/T1574/008  - https://attack.mitre.org/detectionstrategies/DET0564author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-17tags:  - attack.defense-evasion  - attack.execution  - attack.t1574.008logsource:  category: process_creation  product: windowsdetection:  selection_binary:    Image|endswith:      - '\net.exe'      - '\net1.exe'      - '\findstr.exe'      - '\cmd.exe'      - '\python.exe'  filter_legit_dir:    Image|startswith:      - 'C:\Windows\System32\'      - 'C:\Windows\SysWOW64\'      - 'C:\Program Files\'      - 'C:\Program Files (x86)\'  condition: selection_binary and not filter_legit_dirfalsepositives:  - "Portable or vendor-bundled copies of net.exe, findstr.exe or python.exe shipped inside an application's own install directory — backup agents, RMM tools and embedded Python runtimes routinely keep a private copy of these names outside System32 and Program Files."  - "Developers or CI runners launching a per-project python.exe from a virtual environment or a user-profile toolchain path such as AppData\\Local\\Programs\\Python instead of an approved Program Files install."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where ((FolderPath endswith "\\net.exe" or FolderPath endswith "\\net1.exe" or FolderPath endswith "\\findstr.exe" or FolderPath endswith "\\cmd.exe" or FolderPath endswith "\\python.exe") and not ((FolderPath startswith "C:\\Windows\\System32\\" or FolderPath startswith "C:\\Windows\\SysWOW64\\" or FolderPath startswith "C:\\Program Files\\" or FolderPath startswith "C:\\Program Files (x86)\\")))

Splunk · SPL

Run this as a search.

index=* ((Image="*\\net.exe" OR Image="*\\net1.exe" OR Image="*\\findstr.exe" OR Image="*\\cmd.exe" OR Image="*\\python.exe") AND NOT ((Image="C:\\Windows\\System32\\*" OR Image="C:\\Windows\\SysWOW64\\*" OR Image="C:\\Program Files\\*" OR Image="C:\\Program Files (x86)\\*")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.executable) LIKE "*\\\\net.exe" OR TO_LOWER(process.executable) LIKE "*\\\\net1.exe" OR TO_LOWER(process.executable) LIKE "*\\\\findstr.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cmd.exe" OR TO_LOWER(process.executable) LIKE "*\\\\python.exe") AND NOT ((TO_LOWER(process.executable) LIKE "c:\\\\windows\\\\system32\\\\*" OR TO_LOWER(process.executable) LIKE "c:\\\\windows\\\\syswow64\\\\*" OR TO_LOWER(process.executable) LIKE "c:\\\\program files\\\\*" OR TO_LOWER(process.executable) LIKE "c:\\\\program files (x86)\\\\*")))

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="Image" type="pcre2">(?i)(\\net\.exe$|\\net1\.exe$|\\findstr\.exe$|\\cmd\.exe$|\\python\.exe$)</field>    <field name="Image" negate="yes" type="pcre2">(?i)(^C:\\Windows\\System32\\|^C:\\Windows\\SysWOW64\\|^C:\\Program Files\\|^C:\\Program Files \(x86\)\\)</field>    <description>Common system utility name executed from a non-standard directory</description>    <mitre>      <id>T1574.008</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.