Skip to content

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

Siemphony’s repertoire

Remote support agent spawning a shell or script host

Step four of MITRE's behaviour chain is the only part of it that lands in a single event: interactive control signals arriving over the remote access session appear as shell or script-host children spawned by the agent process. Execution of a remote support tool on its own is ordinary in any estate that runs remote administration, and the persistence and long-lived egress steps need a correlation window Sigma has no way to carry, so this rule matches the parent-child pair instead — a remote-control or remote management agent as ParentImage and a command interpreter, script host or download-capable binary as Image. Both halves are single-field value lists, which keeps the rule to one AND of two fields. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0496, 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: Remote support agent spawning a shell or script hostid: dfe5a8d3-eb3b-4a37-bfcb-3a75cc02b57fstatus: experimentaldescription: |  Step four of MITRE's behaviour chain is the only part of it that lands in a  single event: interactive control signals arriving over the remote access  session appear as shell or script-host children spawned by the agent  process. Execution of a remote support tool on its own is ordinary in any  estate that runs remote administration, and the persistence and long-lived  egress steps need a correlation window Sigma has no way to carry, so this  rule matches the parent-child pair instead — a remote-control or remote  management agent as ParentImage and a command interpreter, script host or  download-capable binary as Image. Both halves are single-field value lists,  which keeps the rule to one AND of two fields.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0496, 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/T1219  - https://attack.mitre.org/detectionstrategies/DET0496author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.command-and-control  - attack.t1219logsource:  category: process_creation  product: windowsdetection:  selection_agent_parent:    ParentImage|endswith:      - '\AnyDesk.exe'      - '\TeamViewer.exe'      - '\TeamViewer_Service.exe'      - '\ScreenConnect.ClientService.exe'      - '\ScreenConnect.WindowsClient.exe'      - '\rutserv.exe'      - '\rfusclient.exe'      - '\AteraAgent.exe'      - '\SRService.exe'      - '\SRManager.exe'      - '\Supremo.exe'      - '\UltraViewer_Desktop.exe'      - '\LogMeIn.exe'      - '\LMIGuardianSvc.exe'      - '\dwrcs.exe'      - '\NinjaRMMAgent.exe'      - '\SyncroLive.Agent.exe'      - '\GoToAssist.exe'      - '\AA_v3.exe'  selection_interactive_child:    Image|endswith:      - '\cmd.exe'      - '\powershell.exe'      - '\pwsh.exe'      - '\wscript.exe'      - '\cscript.exe'      - '\mshta.exe'      - '\rundll32.exe'      - '\regsvr32.exe'      - '\bitsadmin.exe'      - '\certutil.exe'  condition: selection_agent_parent and selection_interactive_childfalsepositives:  - "Sanctioned helpdesk and RMM automation. A remote management platform running maintenance scripts is indistinguishable from an operator typing at a shell over the same agent, and MITRE's ProcessAllowlist knob exists precisely to suppress the agents your organisation licenses. Suppress by agent, not by child process."  - "Software deployment and patching jobs pushed through an RMM agent, which shell out to cmd.exe or powershell.exe to run installers and post-install tasks on a predictable maintenance schedule."  - "Agent self-update and repair routines that call rundll32.exe or certutil.exe as part of installing their own new build under the service account."  - "Jump hosts and support workstations where remote administration is the machine's purpose. MITRE's UserContext knob is the intended separator here, and this rule deliberately encodes no user filter."level: high

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where ((InitiatingProcessFolderPath endswith "\\AnyDesk.exe" or InitiatingProcessFolderPath endswith "\\TeamViewer.exe" or InitiatingProcessFolderPath endswith "\\TeamViewer_Service.exe" or InitiatingProcessFolderPath endswith "\\ScreenConnect.ClientService.exe" or InitiatingProcessFolderPath endswith "\\ScreenConnect.WindowsClient.exe" or InitiatingProcessFolderPath endswith "\\rutserv.exe" or InitiatingProcessFolderPath endswith "\\rfusclient.exe" or InitiatingProcessFolderPath endswith "\\AteraAgent.exe" or InitiatingProcessFolderPath endswith "\\SRService.exe" or InitiatingProcessFolderPath endswith "\\SRManager.exe" or InitiatingProcessFolderPath endswith "\\Supremo.exe" or InitiatingProcessFolderPath endswith "\\UltraViewer_Desktop.exe" or InitiatingProcessFolderPath endswith "\\LogMeIn.exe" or InitiatingProcessFolderPath endswith "\\LMIGuardianSvc.exe" or InitiatingProcessFolderPath endswith "\\dwrcs.exe" or InitiatingProcessFolderPath endswith "\\NinjaRMMAgent.exe" or InitiatingProcessFolderPath endswith "\\SyncroLive.Agent.exe" or InitiatingProcessFolderPath endswith "\\GoToAssist.exe" or InitiatingProcessFolderPath endswith "\\AA_v3.exe") and (FolderPath endswith "\\cmd.exe" or FolderPath endswith "\\powershell.exe" or FolderPath endswith "\\pwsh.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 "\\bitsadmin.exe" or FolderPath endswith "\\certutil.exe"))

Splunk · SPL

Run this as a search.

index=* ((ParentImage="*\\AnyDesk.exe" OR ParentImage="*\\TeamViewer.exe" OR ParentImage="*\\TeamViewer_Service.exe" OR ParentImage="*\\ScreenConnect.ClientService.exe" OR ParentImage="*\\ScreenConnect.WindowsClient.exe" OR ParentImage="*\\rutserv.exe" OR ParentImage="*\\rfusclient.exe" OR ParentImage="*\\AteraAgent.exe" OR ParentImage="*\\SRService.exe" OR ParentImage="*\\SRManager.exe" OR ParentImage="*\\Supremo.exe" OR ParentImage="*\\UltraViewer_Desktop.exe" OR ParentImage="*\\LogMeIn.exe" OR ParentImage="*\\LMIGuardianSvc.exe" OR ParentImage="*\\dwrcs.exe" OR ParentImage="*\\NinjaRMMAgent.exe" OR ParentImage="*\\SyncroLive.Agent.exe" OR ParentImage="*\\GoToAssist.exe" OR ParentImage="*\\AA_v3.exe") AND (Image="*\\cmd.exe" OR Image="*\\powershell.exe" OR Image="*\\pwsh.exe" OR Image="*\\wscript.exe" OR Image="*\\cscript.exe" OR Image="*\\mshta.exe" OR Image="*\\rundll32.exe" OR Image="*\\regsvr32.exe" OR Image="*\\bitsadmin.exe" OR Image="*\\certutil.exe"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.parent.executable) LIKE "*\\\\anydesk.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\teamviewer.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\teamviewer_service.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\screenconnect.clientservice.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\screenconnect.windowsclient.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\rutserv.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\rfusclient.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\ateraagent.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\srservice.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\srmanager.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\supremo.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\ultraviewer_desktop.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\logmein.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\lmiguardiansvc.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\dwrcs.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\ninjarmmagent.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\syncrolive.agent.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\gotoassist.exe" OR TO_LOWER(process.parent.executable) LIKE "*\\\\aa_v3.exe") AND (TO_LOWER(process.executable) LIKE "*\\\\cmd.exe" OR TO_LOWER(process.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pwsh.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 "*\\\\bitsadmin.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="12">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="ParentImage" type="pcre2">(?i)(\\AnyDesk\.exe$|\\TeamViewer\.exe$|\\TeamViewer_Service\.exe$|\\ScreenConnect\.ClientService\.exe$|\\ScreenConnect\.WindowsClient\.exe$|\\rutserv\.exe$|\\rfusclient\.exe$|\\AteraAgent\.exe$|\\SRService\.exe$|\\SRManager\.exe$|\\Supremo\.exe$|\\UltraViewer_Desktop\.exe$|\\LogMeIn\.exe$|\\LMIGuardianSvc\.exe$|\\dwrcs\.exe$|\\NinjaRMMAgent\.exe$|\\SyncroLive\.Agent\.exe$|\\GoToAssist\.exe$|\\AA_v3\.exe$)</field>    <field name="Image" type="pcre2">(?i)(\\cmd\.exe$|\\powershell\.exe$|\\pwsh\.exe$|\\wscript\.exe$|\\cscript\.exe$|\\mshta\.exe$|\\rundll32\.exe$|\\regsvr32\.exe$|\\bitsadmin\.exe$|\\certutil\.exe$)</field>    <description>Remote support agent spawning a shell or script host</description>    <mitre>      <id>T1219</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.