Unusual Persistence via Services Registryedit

Identifies processes modifying the services registry key directly, instead of through the expected Windows APIs. This could be an indication of an adversary attempting to stealthily persist through abnormal service creation or modification of an existing service.

Rule type: eql

Rule indices:

  • winlogbeat-*
  • logs-endpoint.events.*
  • logs-windows.*

Severity: low

Risk score: 21

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

Tags:

  • Elastic
  • Host
  • Windows
  • Threat Detection
  • Persistence

Version: 4 (version history)

Added (Elastic Stack release): 7.11.0

Last modified (Elastic Stack release): 7.13.0

Rule authors: Elastic

Rule license: Elastic License v2

Rule queryedit

registry where registry.path :
("HKLM\\SYSTEM\\ControlSet*\\Services\\*\\ServiceDLL",
"HKLM\\SYSTEM\\ControlSet*\\Services\\*\\ImagePath") and not
registry.data.strings : ("?:\\windows\\system32\\Drivers\\*.sys",
"\\SystemRoot\\System32\\drivers\\*.sys",
"\\??\\?:\\Windows\\system32\\Drivers\\*.SYS",
"system32\\DRIVERS\\USBSTOR") and not (process.name :
"procexp??.exe" and registry.data.strings : "?:\\*\\procexp*.sys") and
not process.executable : ("?:\\Program Files\\*.exe",
"?:\\Program Files (x86)\\*.exe",
"?:\\Windows\\System32\\svchost.exe",
"?:\\Windows\\winsxs\\*\\TiWorker.exe",
"?:\\Windows\\System32\\drvinst.exe",
"?:\\Windows\\System32\\services.exe",
"?:\\Windows\\System32\\msiexec.exe",
"?:\\Windows\\System32\\regsvr32.exe")

Threat mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

Version 4 (7.13.0 release)
  • Updated query, changed from:

    registry where registry.path :
    ("HKLM\\SYSTEM\\ControlSet*\\Services\\*\\ServiceDLL",
    "HKLM\\SYSTEM\\ControlSet*\\Services\\*\\ImagePath") and not
    registry.data.strings : ("C:\\windows\\system32\\Drivers\\*.sys",
    "\\SystemRoot\\System32\\drivers\\*.sys",
    "system32\\DRIVERS\\USBSTOR") and not (process.name :
    "procexp??.exe" and registry.data.strings : "C:\\*\\procexp*.sys") and
    not process.executable : ("C:\\Program Files*\\*.exe",
    "C:\\Windows\\System32\\svchost.exe",
    "C:\\Windows\\winsxs\\*\\TiWorker.exe",
    "C:\\Windows\\System32\\drvinst.exe",
    "C:\\Windows\\System32\\services.exe",
    "C:\\Windows\\System32\\msiexec.exe",
    "C:\\Windows\\System32\\regsvr32.exe")
Version 3 (7.12.0 release)
  • Formatting only
Version 2 (7.11.2 release)
  • Formatting only