Skip to content

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

Siemphony’s repertoire

Registry write to a known UAC bypass hijack key

Siemphony@siemphonyhighT1548+1verified in lab
Matches registry writes to the per-user keys an auto-elevating binary reads when it is hijacked: the shell-open command classes used by the fodhelper, eventvwr, sdclt and computerdefaults family (ms-settings, mscfile, exefile runas, Folder and the AppX class the store handler uses), plus the Environment windir value that the SilentCleanup scheduled task expands. AN0975's other half — "unusual parent-child process relationships" — has no concrete value list at parent-technique level and would be arbitrary, so the rule is built on the registry evidence, which is bounded and specific. Two things a reader has to be told. First, every key here is T1548.002 Bypass User Account Control; the rule is filed under the parent because that is the brief it was authored from, but nothing it matches touches .001 setuid, .003 sudo, .004 elevated prompts, .005 cloud access or .006 TCC, and the tags name .002 for that reason. Second, the class list is illustrative rather than closed — new auto-elevating binaries and their handler classes are found regularly, and a COM elevation-moniker bypass such as ICMLuaUtil writes no registry value at all. The three UAC policy values (EnableLUA, ConsentPromptBehaviorAdmin, LocalAccountTokenFilterPolicy) are deliberately not in the selection. They are applied as Security Settings, which the policy client re-applies on its own refresh interval — 16 hours by default — on every managed host whether or not anything changed, so a UAC baseline GPO produces them per host per cycle forever. ORing that volume into these near-zero-noise keys would make the whole rule unshippable at this level; they belong in a separate low-severity hunt. The correlation MITRE describes, a write followed by an elevated spawn inside a time window, is not expressible in Sigma either way. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0345, 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.

DeviceRegistryEvents| where (RegistryKey contains "\\Software\\Classes\\ms-settings\\shell\\open\\command" or RegistryKey contains "\\Software\\Classes\\mscfile\\shell\\open\\command" or RegistryKey contains "\\Software\\Classes\\Folder\\shell\\open\\command" or RegistryKey contains "\\Software\\Classes\\exefile\\shell\\runas\\command\\isolatedCommand" or RegistryKey contains "\\Software\\Classes\\AppX82a6gwre4fdg3bt635tn5ctqjf8msdd2\\Shell\\open\\command" or RegistryKey contains "\\Environment\\windir")

Splunk · SPL

Run this as a search.

index=* (TargetObject="*\\Software\\Classes\\ms-settings\\shell\\open\\command*" OR TargetObject="*\\Software\\Classes\\mscfile\\shell\\open\\command*" OR TargetObject="*\\Software\\Classes\\Folder\\shell\\open\\command*" OR TargetObject="*\\Software\\Classes\\exefile\\shell\\runas\\command\\isolatedCommand*" OR TargetObject="*\\Software\\Classes\\AppX82a6gwre4fdg3bt635tn5ctqjf8msdd2\\Shell\\open\\command*" OR TargetObject="*\\Environment\\windir*")

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(registry.path) LIKE "*\\\\software\\\\classes\\\\ms-settings\\\\shell\\\\open\\\\command*" OR TO_LOWER(registry.path) LIKE "*\\\\software\\\\classes\\\\mscfile\\\\shell\\\\open\\\\command*" OR TO_LOWER(registry.path) LIKE "*\\\\software\\\\classes\\\\folder\\\\shell\\\\open\\\\command*" OR TO_LOWER(registry.path) LIKE "*\\\\software\\\\classes\\\\exefile\\\\shell\\\\runas\\\\command\\\\isolatedcommand*" OR TO_LOWER(registry.path) LIKE "*\\\\software\\\\classes\\\\appx82a6gwre4fdg3bt635tn5ctqjf8msdd2\\\\shell\\\\open\\\\command*" OR TO_LOWER(registry.path) LIKE "*\\\\environment\\\\windir*")

Wazuh · XML rule

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

<group name="sigma,windows,registry_set,">  <!-- 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="TargetObject" type="pcre2">(?i)(\\Software\\Classes\\ms-settings\\shell\\open\\command|\\Software\\Classes\\mscfile\\shell\\open\\command|\\Software\\Classes\\Folder\\shell\\open\\command|\\Software\\Classes\\exefile\\shell\\runas\\command\\isolatedCommand|\\Software\\Classes\\AppX82a6gwre4fdg3bt635tn5ctqjf8msdd2\\Shell\\open\\command|\\Environment\\windir)</field>    <description>Registry write to a known UAC bypass hijack key</description>    <mitre>      <id>T1548</id>      <id>T1548.002</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.