Skip to content

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

Siemphony’s repertoire

clip.exe launched by a one-shot shell, script or service

Siemphony@siemphonylowT1115unverified
Matches AN0965's Windows observable in two arms. The first is the one the analytic's own CISA AA21-200B citation describes: clip.exe spawned by a shell that was itself launched to run a single command — `cmd.exe /c ... | clip` or `powershell -Command ... | clip` — recognised through ParentCommandLine rather than through ParentImage, because the parent of clip.exe is the invoking shell whether a human typed the pipeline or an implant spawned it. Excluding cmd.exe and powershell.exe as parents outright, which an earlier draft did, removed the most common real-world invocation of this technique rather than removing noise. The second arm is the analytic's literal claim about parentage: clip.exe with a parent that is not a shell or the desktop shell at all — a service, a scheduled task engine, an Office application, a remote-access agent. WindowsTerminal.exe is deliberately not treated as an interactive parent, because inside a Windows Terminal session the parent of clip.exe is the shell hosted in the tab, not the terminal process. clip.exe only writes stdin to the clipboard, so the binary alone is a poor collection signal and neither arm claims otherwise. PowerShell's Get-Clipboard cmdlet, the other Windows observable MITRE names, leaves no distinct trace on process_creation because it runs inside an already-launched powershell.exe host and needs Script Block Logging to show up at all, so it is deliberately left out rather than folded into a cross-field OR; a binary calling OpenClipboard/GetClipboardData directly is invisible here for the same reason. AN0965's TimeWindow and follow-on network correlation — clipboard read chained to staging or exfiltration — is not modelled; Sigma has no event join for it. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0341, 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 (FolderPath endswith "\\clip.exe" and (((InitiatingProcessFolderPath endswith "\\cmd.exe" or InitiatingProcessFolderPath endswith "\\powershell.exe" or InitiatingProcessFolderPath endswith "\\pwsh.exe") and (InitiatingProcessCommandLine contains "-c " or InitiatingProcessCommandLine contains "/c " or InitiatingProcessCommandLine contains "–c " or InitiatingProcessCommandLine contains "—c " or InitiatingProcessCommandLine contains "―c " or InitiatingProcessCommandLine contains "-command" or InitiatingProcessCommandLine contains "/command" or InitiatingProcessCommandLine contains "–command" or InitiatingProcessCommandLine contains "—command" or InitiatingProcessCommandLine contains "―command" or InitiatingProcessCommandLine contains "-encodedcommand" or InitiatingProcessCommandLine contains "/encodedcommand" or InitiatingProcessCommandLine contains "–encodedcommand" or InitiatingProcessCommandLine contains "—encodedcommand" or InitiatingProcessCommandLine contains "―encodedcommand" or InitiatingProcessCommandLine contains "-enc " or InitiatingProcessCommandLine contains "/enc " or InitiatingProcessCommandLine contains "–enc " or InitiatingProcessCommandLine contains "—enc " or InitiatingProcessCommandLine contains "―enc ")) or not ((InitiatingProcessFolderPath endswith "\\explorer.exe" or InitiatingProcessFolderPath endswith "\\cmd.exe" or InitiatingProcessFolderPath endswith "\\powershell.exe" or InitiatingProcessFolderPath endswith "\\pwsh.exe"))))

Splunk · SPL

Run this as a search.

index=* (Image="*\\clip.exe" AND (((ParentImage="*\\cmd.exe" OR ParentImage="*\\powershell.exe" OR ParentImage="*\\pwsh.exe") AND (ParentCommandLine="*-c *" OR ParentCommandLine="*/c *" OR ParentCommandLine="*–c *" OR ParentCommandLine="*—c *" OR ParentCommandLine="*―c *" OR ParentCommandLine="*-command*" OR ParentCommandLine="*/command*" OR ParentCommandLine="*–command*" OR ParentCommandLine="*—command*" OR ParentCommandLine="*―command*" OR ParentCommandLine="*-encodedcommand*" OR ParentCommandLine="*/encodedcommand*" OR ParentCommandLine="*–encodedcommand*" OR ParentCommandLine="*—encodedcommand*" OR ParentCommandLine="*―encodedcommand*" OR ParentCommandLine="*-enc *" OR ParentCommandLine="*/enc *" OR ParentCommandLine="*–enc *" OR ParentCommandLine="*—enc *" OR ParentCommandLine="*―enc *")) OR NOT ((ParentImage="*\\explorer.exe" OR ParentImage="*\\cmd.exe" OR ParentImage="*\\powershell.exe" OR ParentImage="*\\pwsh.exe"))))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(process.executable) LIKE "*\\\\clip.exe" AND (((TO_LOWER(process.parent.executable) LIKE "*\\\\cmd.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\pwsh.exe") AND (TO_LOWER(process.parent.command_line) LIKE "*-c *" OR TO_LOWER(process.parent.command_line) LIKE "*/c *" OR TO_LOWER(process.parent.command_line) LIKE "*–c *" OR TO_LOWER(process.parent.command_line) LIKE "*—c *" OR TO_LOWER(process.parent.command_line) LIKE "*―c *" OR TO_LOWER(process.parent.command_line) LIKE "*-command*" OR TO_LOWER(process.parent.command_line) LIKE "*/command*" OR TO_LOWER(process.parent.command_line) LIKE "*–command*" OR TO_LOWER(process.parent.command_line) LIKE "*—command*" OR TO_LOWER(process.parent.command_line) LIKE "*―command*" OR TO_LOWER(process.parent.command_line) LIKE "*-encodedcommand*" OR TO_LOWER(process.parent.command_line) LIKE "*/encodedcommand*" OR TO_LOWER(process.parent.command_line) LIKE "*–encodedcommand*" OR TO_LOWER(process.parent.command_line) LIKE "*—encodedcommand*" OR TO_LOWER(process.parent.command_line) LIKE "*―encodedcommand*" OR TO_LOWER(process.parent.command_line) LIKE "*-enc *" OR TO_LOWER(process.parent.command_line) LIKE "*/enc *" OR TO_LOWER(process.parent.command_line) LIKE "*–enc *" OR TO_LOWER(process.parent.command_line) LIKE "*—enc *" OR TO_LOWER(process.parent.command_line) LIKE "*―enc *")) OR NOT ((TO_LOWER(process.parent.executable) LIKE "*\\\\explorer.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\cmd.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\pwsh.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. -->  <!-- 2 rules: the Sigma condition ORs across different fields,       which one rule cannot express. Any one matching is a hit. -->  <rule id="100000" level="5">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="Image" type="pcre2">(?i)\\clip\.exe$</field>    <field name="ParentImage" type="pcre2">(?i)(\\cmd\.exe$|\\powershell\.exe$|\\pwsh\.exe$)</field>    <field name="ParentCommandLine" type="pcre2">(?i)(-c |/c |–c |—c |―c |-command|/command|–command|—command|―command|-encodedcommand|/encodedcommand|–encodedcommand|—encodedcommand|―encodedcommand|-enc |/enc |–enc |—enc |―enc )</field>    <description>clip.exe launched by a one-shot shell, script or service (1/2)</description>    <mitre>      <id>T1115</id>    </mitre>  </rule>   <rule id="100001" level="5">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="Image" type="pcre2">(?i)\\clip\.exe$</field>    <field name="ParentImage" negate="yes" type="pcre2">(?i)(\\explorer\.exe$|\\cmd\.exe$|\\powershell\.exe$|\\pwsh\.exe$)</field>    <description>clip.exe launched by a one-shot shell, script or service (2/2)</description>    <mitre>      <id>T1115</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.