Detection rules › Elastic

Regsvr32 with Unusual Arguments

Source
github.com/elastic/protections-artifacts

Identifies unusual instances of Regsvr32 with suspicious keywords or paths in the process command line value. Adversaries may abuse regsvr32.exe to proxy execution of malicious code.

MITRE ATT&CK coverage

Rule body

[rule]
description = """
Identifies unusual instances of Regsvr32 with suspicious keywords or paths in the process command line value.
Adversaries may abuse regsvr32.exe to proxy execution of malicious code.
"""
id = "5db08297-bf72-49f4-b426-f405c2b01326"
license = "Elastic License v2"
name = "Regsvr32 with Unusual Arguments"
os_list = ["windows"]
version = "1.0.39"

query = '''
process where event.action == "start" and process.name : "regsvr32.exe" and
 (
  (process.args_count == 2 and process.working_directory : "?:\\" and not process.working_directory : "C:\\") or
  process.command_line :
          ("*.jpg*",
           "*.png*",
           "*.gif*",
           "*.bmp*",
           "*.jpeg*",
           "*.TIFF*",
           "*.tmp*",
           "*.dat*",
           "*.pdf*",
           "*.doc*",
           "*.xls*",
           "*.ppt*",
           "*.txt*",
           "* ?:/*/*",
           "* ..\\*",
           "*DumpStack.log*",
           "*:\\Users\\Public\\*",
           "*:\\Users\\*\\Documents\\*",
           "*:\\Users\\*\\Pictures\\*",
           "*:\\Users\\*\\Music\\*",
           "*:\\Users\\*\\Pictures\\*",
           "*:\\Windows\\Tasks\\*",
           "*:\\Windows\\System32\\tasks\\*",
           "*\\DavWWWRoot\\*")
  ) and

 not process.args : ("?:\\Program Files (x86)\\*", "?:\\Program Files\\*") and

 /*  path traversal */
 not (process.command_line : "* ..\\*" and process.command_line :"* ..\\*\\*") and
 not process.parent.executable : "?:\\Program Files (x86)\\Tencent\\QQPCMgr\\*\\QQPCTray.exe" and
 not process.command_line :
             ("*\\Program Files (x86)\\Tencent\\QQPCMgr\\*.dat*",
              "*QQPCMgr*TSWebMon64.dat*",
              "*BarTender Suite\\Codejock.DockingPane.x64.v15.3.1.ocx*") and
 not process.parent.executable : "?:\\Eaglesoft\\Shared Files\\OcxReg.exe" and
 not process.args : ("?:\\windows\\system32\\ChartFX.ClientServer.Data.dll", "?:\\Windows\\SysWOW64\\ChartFX.ClientServer.Data.dll") and
 not (process.args : "?:\\Users\\*\\AppData\\Local\\Microsoft\\TeamsMeetingAddin\\*\\Microsoft.Teams.AddinLoader.dll" and process.args : "/i:user") and
 not (process.args : "..\\*.dll" and process.working_directory : "?:\\Program Files\\LANDesk\\ManagementSuite\\Install Only Files\\") and
 not (process.args : "..\\*.dll" and
      descendant of
       [process where event.action == "start" and
        process.executable : ("?:\\Program Files\\LANDesk\\ManagementSuite\\Install Only Files\\LaunchApp.exe",
                              "?:\\Program Files (x86)\\LANDesk\\ManagementSuite\\Install Only Files\\LaunchApp.exe")]) and
 not (process.parent.name : "msiexec.exe" and process.parent.args : "-Embedding") and
 not process.parent.executable : "C:\\Program Files\\LANDesk\\ManagementSuite\\Install Only Files\\LaunchApp.exe" and
 not (process.executable : "?:\\Users\\*\\AppData\\Local\\Temp\\SSM*.tmp\\REGSVR32.EXE" and process.args : "?:\\WINDOWS\\system32\\*.dll") and
 not process.args : ("?:\\Windows\\Microsoft.NET\\*",
                     "?:\\Windows\\assembly\\NativeImages*",
                     "?:\\Windows\\Installer\\MSI*",
                     "?:\\Windows\\system32\\Codejock.DockingPane.*.ocx",
                     "?:\\windows\\system32\\Msjet35.dll",
                     "?:\\windows\\system32\\Msrd2x35.dll",
                     "System.Data.dll", "Atalasoft.*.dll", "DTI.ImageMan.Codecs.Pdf.dll") and
 not (process.name : "regsvr32.exe" and process.parent.executable : "C:\\Windows\\SysWOW64\\cmd.exe" and
      process.args : ("C:\\Users\\*\\AppData\\Local\\Temp\\is-*.tmp\\QClickV?\\Driver\\QClickV?_x64.ocx",
                      "(x86)\\eClinicalWorks_Prod\\RegBlg.bat")) and
 process.command_line != "regsvr32  DevExpress.Data.v14.1.dll"
'''

min_endpoint_version = "7.15.0"
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[optional_actions]]
action = "rollback"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1218"
name = "System Binary Proxy Execution"
reference = "https://attack.mitre.org/techniques/T1218/"
[[threat.technique.subtechnique]]
id = "T1218.010"
name = "Regsvr32"
reference = "https://attack.mitre.org/techniques/T1218/010/"



[threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"

[internal]
min_endpoint_version = "7.15.0"

Stages and Predicates

Stage 1: process

process where event.action == "start" and process.name : "regsvr32.exe" and
 (
  (process.args_count == 2 and process.working_directory : "?:\\" and not process.working_directory : "C:\\") or
  process.command_line :
          ("*.jpg*",
           "*.png*",
           "*.gif*",
           "*.bmp*",
           "*.jpeg*",
           "*.TIFF*",
           "*.tmp*",
           "*.dat*",
           "*.pdf*",
           "*.doc*",
           "*.xls*",
           "*.ppt*",
           "*.txt*",
           "* ?:/*/*",
           "* ..\\*",
           "*DumpStack.log*",
           "*:\\Users\\Public\\*",
           "*:\\Users\\*\\Documents\\*",
           "*:\\Users\\*\\Pictures\\*",
           "*:\\Users\\*\\Music\\*",
           "*:\\Users\\*\\Pictures\\*",
           "*:\\Windows\\Tasks\\*",
           "*:\\Windows\\System32\\tasks\\*",
           "*\\DavWWWRoot\\*")
  ) and
 not process.args : ("?:\\Program Files (x86)\\*", "?:\\Program Files\\*") and
 not (process.command_line : "* ..\\*" and process.command_line :"* ..\\*\\*") and
 not process.parent.executable : "?:\\Program Files (x86)\\Tencent\\QQPCMgr\\*\\QQPCTray.exe" and
 not process.command_line :
             ("*\\Program Files (x86)\\Tencent\\QQPCMgr\\*.dat*",
              "*QQPCMgr*TSWebMon64.dat*",
              "*BarTender Suite\\Codejock.DockingPane.x64.v15.3.1.ocx*") and
 not process.parent.executable : "?:\\Eaglesoft\\Shared Files\\OcxReg.exe" and
 not process.args : ("?:\\windows\\system32\\ChartFX.ClientServer.Data.dll", "?:\\Windows\\SysWOW64\\ChartFX.ClientServer.Data.dll") and
 not (process.args : "?:\\Users\\*\\AppData\\Local\\Microsoft\\TeamsMeetingAddin\\*\\Microsoft.Teams.AddinLoader.dll" and process.args : "/i:user") and
 not (process.args : "..\\*.dll" and process.working_directory : "?:\\Program Files\\LANDesk\\ManagementSuite\\Install Only Files\\") and
 not (process.args : "..\\*.dll" and
      descendant of
       [process where event.action == "start" and
        process.executable : ("?:\\Program Files\\LANDesk\\ManagementSuite\\Install Only Files\\LaunchApp.exe",
                              "?:\\Program Files (x86)\\LANDesk\\ManagementSuite\\Install Only Files\\LaunchApp.exe")]) and
 not (process.parent.name : "msiexec.exe" and process.parent.args : "-Embedding") and
 not process.parent.executable : "C:\\Program Files\\LANDesk\\ManagementSuite\\Install Only Files\\LaunchApp.exe" and
 not (process.executable : "?:\\Users\\*\\AppData\\Local\\Temp\\SSM*.tmp\\REGSVR32.EXE" and process.args : "?:\\WINDOWS\\system32\\*.dll") and
 not process.args : ("?:\\Windows\\Microsoft.NET\\*",
                     "?:\\Windows\\assembly\\NativeImages*",
                     "?:\\Windows\\Installer\\MSI*",
                     "?:\\Windows\\system32\\Codejock.DockingPane.*.ocx",
                     "?:\\windows\\system32\\Msjet35.dll",
                     "?:\\windows\\system32\\Msrd2x35.dll",
                     "System.Data.dll", "Atalasoft.*.dll", "DTI.ImageMan.Codecs.Pdf.dll") and
 not (process.name : "regsvr32.exe" and process.parent.executable : "C:\\Windows\\SysWOW64\\cmd.exe" and
      process.args : ("C:\\Users\\*\\AppData\\Local\\Temp\\is-*.tmp\\QClickV?\\Driver\\QClickV?_x64.ocx",
                      "(x86)\\eClinicalWorks_Prod\\RegBlg.bat")) and
 process.command_line != "regsvr32  DevExpress.Data.v14.1.dll"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
process.argseq/i:userexcludes:process.args field:"process.args" value:"/i:user"
process.argswildcard?:\Users\*\AppData\Local\Microsoft\TeamsMeetingAddin\*\Microsoft.Teams.AddinLoader.dllexcludes:process.args field:"process.args" value:"?:\Users\*\AppData\Local\Microsoft\TeamsMeetingAddin\*\Microsoft.Teams.AddinLoader.dll"
process.argswildcard..\*.dllexcludes:process.args field:"process.args" value:"..\*.dll"
process.working_directoryeq?:\Program Files\LANDesk\ManagementSuite\Install Only Files\excludes:process.working_directory field:"process.working_directory" value:"?:\Program Files\LANDesk\ManagementSuite\Install Only Files\"
process.argswildcard?:\WINDOWS\system32\*.dllexcludes:process.args field:"process.args" value:"?:\WINDOWS\system32\*.dll"
process.executablewildcard?:\Users\*\AppData\Local\Temp\SSM*.tmp\REGSVR32.EXEexcludes:process.executable field:"process.executable" value:"?:\Users\*\AppData\Local\Temp\SSM*.tmp\REGSVR32.EXE"
process.argswildcardC:\Users\*\AppData\Local\Temp\is-*.tmp\QClickV?\Driver\QClickV?_x64.ocx, (x86)\eClinicalWorks_Prod\RegBlg.batexcludes:process.args field:"process.args" value:"C:\Users\*\AppData\Local\Temp\is-*.tmp\QClickV?\Driver\QClickV?_x64.ocx" field:"process.args" value:"(x86)\eClinicalWorks_Prod\RegBlg.bat"
process.nameeqregsvr32.exeexcludes:process.name field:"process.name" value:"regsvr32.exe"
process.parent.executableeqC:\Windows\SysWOW64\cmd.exeexcludes:process.parent.executable field:"process.parent.executable" value:"C:\Windows\SysWOW64\cmd.exe"
process.command_linematch ..\excludes:process.command_line field:"process.command_line" value:" ..\"
process.command_linewildcard* ..\*\*excludes:process.command_line field:"process.command_line" value:"* ..\*\*"
process.parent.argseq-Embeddingexcludes:process.parent.args field:"process.parent.args" value:"-Embedding"
process.parent.nameeqmsiexec.exeexcludes:process.parent.name field:"process.parent.name" value:"msiexec.exe"
process.argseq?:\windows\system32\ChartFX.ClientServer.Data.dll, ?:\Windows\SysWOW64\ChartFX.ClientServer.Data.dllexcludes:process.args field:"process.args" value:"?:\windows\system32\ChartFX.ClientServer.Data.dll" field:"process.args" value:"?:\Windows\SysWOW64\ChartFX.ClientServer.Data.dll"
process.argsstarts_with?:\Program Files (x86)\, ?:\Program Files\excludes:process.args field:"process.args" value:"?:\Program Files (x86)\" field:"process.args" value:"?:\Program Files\"
process.argswildcard?:\Windows\Microsoft.NET\*, ?:\Windows\assembly\NativeImages*, ?:\Windows\Installer\MSI*, ?:\Windows\system32\Codejock.DockingPane.*.ocx, ?:\windows\system32\Msjet35.dll, ?:\windows\system32\Msrd2x35.dll, System.Data.dll, Atalasoft.*.dll, DTI.ImageMan.Codecs.Pdf.dllexcludes:process.args
process.command_linewildcard*\Program Files (x86)\Tencent\QQPCMgr\*.dat*, *QQPCMgr*TSWebMon64.dat*, *BarTender Suite\Codejock.DockingPane.x64.v15.3.1.ocx*excludes:process.command_line field:"process.command_line" value:"*\Program Files (x86)\Tencent\QQPCMgr\*.dat*" field:"process.command_line" value:"*QQPCMgr*TSWebMon64.dat*" field:"process.command_line" value:"*BarTender Suite\Codejock.DockingPane.x64.v15.3.1.ocx*"
process.parent.executableeq?:\Eaglesoft\Shared Files\OcxReg.exeexcludes:process.parent.executable field:"process.parent.executable" value:"?:\Eaglesoft\Shared Files\OcxReg.exe"
process.parent.executableeqC:\Program Files\LANDesk\ManagementSuite\Install Only Files\LaunchApp.exeexcludes:process.parent.executable field:"process.parent.executable" value:"C:\Program Files\LANDesk\ManagementSuite\Install Only Files\LaunchApp.exe"
process.parent.executablewildcard?:\Program Files (x86)\Tencent\QQPCMgr\*\QQPCTray.exeexcludes:process.parent.executable field:"process.parent.executable" value:"?:\Program Files (x86)\Tencent\QQPCMgr\*\QQPCTray.exe"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
event.actioneq
  • start corpus 391 (elastic 391)
field:"EventType" kind:eq value:"start"
process.args_counteq
  • 2 transforms: number corpus 37 (elastic 37)
field:"process.args_count" kind:eq value:"2"
process.command_linene
  • regsvr32 DevExpress.Data.v14.1.dll
field:"CommandLine" kind:ne value:"regsvr32 DevExpress.Data.v14.1.dll"
process.command_linewildcard
  • * ..\*
  • * ?:/*/* corpus 2 (elastic 2)
  • *.TIFF* corpus 2 (sigma 1, elastic 1)
  • *.bmp* corpus 3 (sigma 2, elastic 1)
  • *.dat* corpus 4 (sigma 3, elastic 1)
  • *.doc* corpus 4 (sigma 4)
  • *.gif* corpus 9 (sigma 8, elastic 1)
  • *.jpeg* corpus 7 (sigma 6, elastic 1)
  • *.jpg* corpus 8 (sigma 7, elastic 1)
  • *.pdf* corpus 3 (sigma 3)
  • *.png* corpus 8 (sigma 7, elastic 1)
  • *.ppt* corpus 4 (sigma 4)
  • *.tmp* corpus 3 (sigma 3)
  • *.txt* corpus 9 (sigma 9)
  • *.xls* corpus 4 (sigma 4)
  • *:\Users\*\Documents\*
  • *:\Users\*\Music\*
  • *:\Users\*\Pictures\*
  • *:\Users\Public\* corpus 20 (sigma 18, elastic 2)
  • *:\Windows\System32\tasks\* corpus 4 (sigma 4)
  • *:\Windows\Tasks\* corpus 6 (sigma 6)
  • *DumpStack.log*
  • *\DavWWWRoot\* corpus 3 (sigma 2, elastic 1)
field:"CommandLine" kind:wildcard
process.namewildcard
  • regsvr32.exe corpus 73 (elastic 68, splunk 5)
field:"process_name" kind:wildcard value:"regsvr32.exe"
process.working_directorywildcard
  • ?:\ corpus 8 (elastic 8)
field:"CurrentDirectory" kind:wildcard value:"?:\"