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 descriptionShow less
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: mediumSentinel · 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.
Nobody has run this in a real environment and said what happened.
Verdicts from engineers who deployed it
0 castNo 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.