Skip to content

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

Siemphony’s repertoire

Uncommon process connects to an internal host on a relay port

Siemphony@siemphonymediumT1090.001unverified
Matches MITRE's AN0204 where it is expressible in one event: a scripting or COM-loading host opening a socket to an RFC1918 address on a port associated with proxying or with implant listeners. MITRE lists cmd.exe among the anomalous processes, but Sysmon EventID 3 names the process that owns the socket and cmd.exe never opens one itself, so it is dropped here along with svchost.exe, which owns most of a host's ordinary traffic and would swamp the rule. MITRE's DestinationPort knob names 1080, 8080 and 4444; 8080 is left out because internal application and proxy traffic on it is ordinary, and 1081, 4445, 5555 and 9050 are the author's additions. The analytic's baseline element — peer hosts absent from normal communication patterns — has no single-event form, so private address space stands in for it, and note that Sysmon network-connection logging is heavily filtered in many production configurations, where an empty result reflects the feed rather than the absence of relays. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0075, 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.

DeviceNetworkEvents| where (((InitiatingProcessFolderPath endswith "\\rundll32.exe" or InitiatingProcessFolderPath endswith "\\regsvr32.exe" or InitiatingProcessFolderPath endswith "\\mshta.exe" or InitiatingProcessFolderPath endswith "\\wscript.exe" or InitiatingProcessFolderPath endswith "\\cscript.exe" or InitiatingProcessFolderPath endswith "\\powershell.exe" or InitiatingProcessFolderPath endswith "\\pwsh.exe") and (RemoteIP startswith "10." or RemoteIP startswith "192.168." or RemoteIP startswith "172.16." or RemoteIP startswith "172.17." or RemoteIP startswith "172.18." or RemoteIP startswith "172.19." or RemoteIP startswith "172.20." or RemoteIP startswith "172.21." or RemoteIP startswith "172.22." or RemoteIP startswith "172.23." or RemoteIP startswith "172.24." or RemoteIP startswith "172.25." or RemoteIP startswith "172.26." or RemoteIP startswith "172.27." or RemoteIP startswith "172.28." or RemoteIP startswith "172.29." or RemoteIP startswith "172.30." or RemoteIP startswith "172.31.")) and (RemotePort == 1080 or RemotePort == 1081 or RemotePort == 4444 or RemotePort == 4445 or RemotePort == 5555 or RemotePort == 9050))

Splunk · SPL

Run this as a search.

index=* (((Image="*\\rundll32.exe" OR Image="*\\regsvr32.exe" OR Image="*\\mshta.exe" OR Image="*\\wscript.exe" OR Image="*\\cscript.exe" OR Image="*\\powershell.exe" OR Image="*\\pwsh.exe") AND (DestinationIp="10.*" OR DestinationIp="192.168.*" OR DestinationIp="172.16.*" OR DestinationIp="172.17.*" OR DestinationIp="172.18.*" OR DestinationIp="172.19.*" OR DestinationIp="172.20.*" OR DestinationIp="172.21.*" OR DestinationIp="172.22.*" OR DestinationIp="172.23.*" OR DestinationIp="172.24.*" OR DestinationIp="172.25.*" OR DestinationIp="172.26.*" OR DestinationIp="172.27.*" OR DestinationIp="172.28.*" OR DestinationIp="172.29.*" OR DestinationIp="172.30.*" OR DestinationIp="172.31.*")) AND (DestinationPort="1080" OR DestinationPort="1081" OR DestinationPort="4444" OR DestinationPort="4445" OR DestinationPort="5555" OR DestinationPort="9050"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (((TO_LOWER(process.executable) LIKE "*\\\\rundll32.exe" OR TO_LOWER(process.executable) LIKE "*\\\\regsvr32.exe" OR TO_LOWER(process.executable) LIKE "*\\\\mshta.exe" OR TO_LOWER(process.executable) LIKE "*\\\\wscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pwsh.exe") AND (TO_LOWER(destination.ip) LIKE "10.*" OR TO_LOWER(destination.ip) LIKE "192.168.*" OR TO_LOWER(destination.ip) LIKE "172.16.*" OR TO_LOWER(destination.ip) LIKE "172.17.*" OR TO_LOWER(destination.ip) LIKE "172.18.*" OR TO_LOWER(destination.ip) LIKE "172.19.*" OR TO_LOWER(destination.ip) LIKE "172.20.*" OR TO_LOWER(destination.ip) LIKE "172.21.*" OR TO_LOWER(destination.ip) LIKE "172.22.*" OR TO_LOWER(destination.ip) LIKE "172.23.*" OR TO_LOWER(destination.ip) LIKE "172.24.*" OR TO_LOWER(destination.ip) LIKE "172.25.*" OR TO_LOWER(destination.ip) LIKE "172.26.*" OR TO_LOWER(destination.ip) LIKE "172.27.*" OR TO_LOWER(destination.ip) LIKE "172.28.*" OR TO_LOWER(destination.ip) LIKE "172.29.*" OR TO_LOWER(destination.ip) LIKE "172.30.*" OR TO_LOWER(destination.ip) LIKE "172.31.*")) AND (destination.port == 1080 OR destination.port == 1081 OR destination.port == 4444 OR destination.port == 4445 OR destination.port == 5555 OR destination.port == 9050))

Wazuh · XML rule

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

<group name="sigma,windows,network_connection,">  <!-- 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)(\\rundll32\.exe$|\\regsvr32\.exe$|\\mshta\.exe$|\\wscript\.exe$|\\cscript\.exe$|\\powershell\.exe$|\\pwsh\.exe$)</field>    <field name="DestinationIp" type="pcre2">(?i)(^10\.|^192\.168\.|^172\.16\.|^172\.17\.|^172\.18\.|^172\.19\.|^172\.20\.|^172\.21\.|^172\.22\.|^172\.23\.|^172\.24\.|^172\.25\.|^172\.26\.|^172\.27\.|^172\.28\.|^172\.29\.|^172\.30\.|^172\.31\.)</field>    <field name="DestinationPort" type="pcre2">(?i)(^1080$|^1081$|^4444$|^4445$|^5555$|^9050$)</field>    <description>Uncommon process connects to an internal host on a relay port</description>    <mitre>      <id>T1090.001</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.