Detect Regsvr32 in Sumo Logic CSE
Adversaries may abuse Regsvr32.exe to proxy execution of malicious code. Regsvr32.exe is a command-line program used to register and unregister object linking and embedding controls, including DLLs, on Windows systems. The 'Squiblydoo' variation passes a URL to a remote COM scriptlet file (SCT) that executes without registry changes, making no persistent artifacts. This technique is widely used by QakBot, Emotet, Dridex, Valak, Astaroth, TA551, and many APTs including APT32, APT29, Kimsuky, Cobalt Group, Leviathan, and Storm-0501. It is one of the most abused LOLBins in the threat landscape.
MITRE ATT&CK
- Tactic
- Defense Evasion
- Technique
- T1218 System Binary Proxy Execution
- Sub-technique
- T1218.010 Regsvr32
- Canonical reference
- https://attack.mitre.org/techniques/T1218/010/
Sumo Detection Query
_sourceCategory=*windows* OR _sourceCategory=*sysmon* OR _sourceCategory=*endpoint*
| where EventID = "1" or EventCode = "1"
| parse regex "(?s)Image:\s*(?<Image>[^\r\n]+)" nodrop
| parse regex "(?s)CommandLine:\s*(?<CommandLine>[^\r\n]+)" nodrop
| parse regex "(?s)ParentImage:\s*(?<ParentImage>[^\r\n]+)" nodrop
| parse regex "(?s)ParentCommandLine:\s*(?<ParentCommandLine>[^\r\n]+)" nodrop
| parse regex "(?s)User:\s*(?<User>[^\r\n]+)" nodrop
| parse regex "(?s)Computer:\s*(?<Computer>[^\r\n]+)" nodrop
| where Image matches "*\\regsvr32.exe" or ParentImage matches "*\\regsvr32.exe"
| eval remoteSCT = if(CommandLine matches "(?i)https?://", 1, 0)
| eval scrObj = if(CommandLine matches "(?i)scrobj", 1, 0)
| eval inlineScript = if(CommandLine matches "(?i)/i:", 1, 0)
| eval suspiciousPath = if(CommandLine matches "(?i)(temp|appdata|downloads|public|desktop|programdata)", 1, 0)
| eval officeParent = if(ParentImage matches "(?i)(winword|excel|outlook|powerpnt)\.exe", 1, 0)
| eval scriptParent = if(ParentImage matches "(?i)(cmd|powershell|wscript|cscript|mshta)\.exe", 1, 0)
| eval suspiciousChild = if(ParentImage matches "(?i)\\regsvr32\.exe" and Image matches "(?i)(cmd|powershell|wscript|cscript|rundll32|net|certutil)\.exe", 1, 0)
| eval riskScore = remoteSCT + scrObj + inlineScript + (suspiciousPath * (officeParent + scriptParent)) + officeParent + scriptParent + suspiciousChild
| where riskScore > 0 or suspiciousChild = 1
| fields _messageTime, Computer, User, Image, CommandLine, ParentImage, ParentCommandLine, remoteSCT, scrObj, inlineScript, suspiciousPath, officeParent, scriptParent, suspiciousChild, riskScore
| sort by _messageTime desc Sumo Logic detection for regsvr32.exe abuse using Sysmon EventID 1 (Process Create) log data. Parses structured Sysmon fields from raw log messages and applies weighted risk scoring across Squiblydoo remote SCT indicators, scrobj.dll usage, inline script flags, suspicious Office and script-host parent processes, and dangerous child processes spawned by regsvr32.exe. Risk score logic mirrors the SPL detection for parity.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate software packaging workflows that stage DLLs in AppData or Temp directories and then register them via regsvr32.exe, triggering the suspicious-path heuristic without malicious intent
- Enterprise endpoint management tools (PDQ Deploy, Altiris, Ansible WinRM) that orchestrate regsvr32.exe calls through cmd.exe or powershell.exe as part of application rollouts
- Developers on build servers running test harnesses via cscript.exe or wscript.exe that legitimately invoke regsvr32.exe to register COM servers during integration testing
Other platforms for T1218.010
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Squiblydoo - Regsvr32 Remote SCT Execution
Expected signal: Sysmon Event ID 1: regsvr32.exe with /s /n /u /i: URL and scrobj.dll in command line. Sysmon Event ID 3: network connection attempt to 127.0.0.1:8080. Security Event ID 4688. Sysmon Event ID 7: scrobj.dll loaded by regsvr32.exe.
- Test 2Regsvr32 DLL Execution from Temp Directory
Expected signal: Sysmon Event ID 11: DLL written to Temp. Sysmon Event ID 1: regsvr32.exe with /s and Temp path. Sysmon Event ID 7: DLL loaded by regsvr32.exe. Security Event ID 4688.
- Test 3Regsvr32 Launched from PowerShell Parent
Expected signal: Sysmon Event ID 1: powershell.exe then regsvr32.exe with ParentImage=powershell.exe. SuspiciousParent fires. Security Event ID 4688 for both. Regsvr32 will fail (no valid DLL) but the process creation event fires.
References (6)
- https://attack.mitre.org/techniques/T1218/010/
- https://lolbas-project.github.io/lolbas/Binaries/Regsvr32/
- https://www.carbonblack.com/2016/04/28/threat-advisory-squiblydoo-continues-trend-of-attackers-using-native-os-tools-to-live-off-the-land/
- https://www.fireeye.com/blog/threat-research/2017/02/spear_phishing_techn.html
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.010/T1218.010.md
- https://support.microsoft.com/en-us/kb/249873
Unlock Pro Content
Get the full detection package for T1218.010 including response playbook, investigation guide, and atomic red team tests.