VBScript or scriptlet engine loaded into Outlook
AN0085's process-creation leg — outlook.exe as ParentImage, a script host or staging binary as the child — is not written here. Thirteen of that leg's sixteen child images (powershell, pwsh, cmd, wscript, cscript, mshta, rundll32, regsvr32, certutil, bitsadmin, curl, schtasks, msiexec) and outlook.exe as a parent are already present in this corpus's T1203 rule (data/detections/T1203/rule.yml), so every event the process-creation leg would match also matches T1203, and nothing on either event says which of a malicious form, an Outlook rule (T1137.005), a folder home page (T1137), an opened attachment (T1204.002) or an exploited Outlook (T1203) produced it. That leg is dropped as already covered, in favour of AN0085's other in-brief source: Sysmon EventID 7, where outlook.exe loads vbscript.dll or scrobj.dll to run a form's script. This is at least form-specific in a way the child process never was — a VBA macro loads VBE7.dll instead, not the classic script engine, so this event separates the scripted-form path from the macro path, and it is also earlier in the chain than the eventual child process, catching a form whose script never spawns anything external. Prerequisite, and it is a hard one: since the 2017 Outlook security updates, script in a custom form does not run at all unless HKCU\Software\Microsoft\Office\<version>\Outlook\Security!DisableCustomFormItemScript (a REG_DWORD value, not a subkey) is set to 0 — Ruler-style tooling flips it as part of the attack. On a patched estate with the default left in place, this rule's entire observable never happens and a quiet result reads as "no forms persistence" when the real event was the registry write that enabled it, for which the brief supplies no log source; a companion rule outside this brief would have to carry that signal. Sysmon EventID 7 is itself off in a bare install and, even enabled, commonly restricted to a named DLL allowlist — confirm vbscript.dll and scrobj.dll are in the running configuration before reading an empty result as quiet rather than blind. The remaining two legs of AN0085 are not attempted: the PowerShell form-enumeration script is a separate feed this rule does not read, and MITRE's TimeWindow, OutlookVersion and UserContext knobs describe correlation and baselining lib/sigma cannot express. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0029, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full descriptionShow less
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.
DeviceImageLoadEvents| where (InitiatingProcessFolderPath endswith "\\outlook.exe" and (FolderPath endswith "\\vbscript.dll" or FolderPath endswith "\\scrobj.dll"))
Splunk · SPL
Run this as a search.
index=* (Image="*\\outlook.exe" AND (ImageLoaded="*\\vbscript.dll" OR ImageLoaded="*\\scrobj.dll"))Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE (TO_LOWER(process.executable) LIKE "*\\\\outlook.exe" AND (TO_LOWER(file.path) LIKE "*\\\\vbscript.dll" OR TO_LOWER(file.path) LIKE "*\\\\scrobj.dll"))
Wazuh · XML rule
Deploy to your manager — this is a rule, not a search.
<group name="sigma,windows,image_load,"> <!-- 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)\\outlook\.exe$</field> <field name="ImageLoaded" type="pcre2">(?i)(\\vbscript\.dll$|\\scrobj\.dll$)</field> <description>VBScript or scriptlet engine loaded into Outlook</description> <mitre> <id>T1137.003</id> </mitre> </rule></group>
Verdicts · reactions · comments
Community
Verdicts from engineers who actually deployed it, and the conversation around it.
Nobody has run this in a real environment and said what happened.
Verdicts from engineers who deployed it
0 castNo 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.