Detection rules › Splunk

Windows Vulnerable Driver Installed

Status
production
Severity
medium
Author
Dean Luxton
Source
github.com/splunk/security_content

The following analytic detects the loading of known vulnerable Windows drivers, which may indicate potential persistence or privilege escalation attempts. It leverages Windows System service install EventCode 7045 to identify driver loading events and cross-references them with a list of vulnerable drivers. This activity is significant as attackers often exploit vulnerable drivers to gain elevated privileges or maintain persistence on a system. If confirmed malicious, this could allow attackers to execute arbitrary code with high privileges, leading to further system compromise and potential data exfiltration. This detection is a Windows Event Log adaptation of the Sysmon driver loaded detection written by Michael Haag.

Known false positives

  • False positives will be present. Drill down into the driver further by version number and cross reference by signer. Review the reference material in the lookup. In addition, modify the query to look within specific paths, which will remove a lot of "normal" drivers.

MITRE ATT&CK coverage

Telemetry coverage

Rule body

name: Windows Vulnerable Driver Installed
id: 1dda7586-57be-4a1b-8de1-a9ad802b9a7f
version: 10
creation_date: '2020-01-19'
modification_date: '2026-05-13'
author: Dean Luxton
status: production
type: TTP
description: The following analytic detects the loading of known vulnerable Windows drivers, which may indicate potential persistence or privilege escalation attempts. It leverages Windows System service install EventCode 7045 to identify driver loading events and cross-references them with a list of vulnerable drivers. This activity is significant as attackers often exploit vulnerable drivers to gain elevated privileges or maintain persistence on a system. If confirmed malicious, this could allow attackers to execute arbitrary code with high privileges, leading to further system compromise and potential data exfiltration. This detection is a Windows Event Log adaptation of the Sysmon driver loaded detection written by Michael Haag.
data_source:
    - Windows Event Log System 7045
search: |-
    `wineventlog_system` EventCode=7045 ServiceType="kernel mode driver"
      | table _time dest EventCode ImagePath ServiceName ServiceType
      | lookup loldrivers driver_name AS ImagePath OUTPUT is_driver driver_description
      | search is_driver = TRUE
      | `windows_vulnerable_driver_installed_filter`
how_to_implement: Ensure the Splunk is collecting XmlWinEventLog:System events and the EventCode 7045 is being ingested.
known_false_positives: False positives will be present. Drill down into the driver further by version number and cross reference by signer. Review the reference material in the lookup. In addition, modify the query to look within specific paths, which will remove a lot of "normal" drivers.
references:
    - https://loldrivers.io/
    - https://github.com/SpikySabra/Kernel-Cactus
    - https://github.com/wavestone-cdt/EDRSandblast
    - https://research.splunk.com/endpoint/a2b1f1ef-221f-4187-b2a4-d4b08ec745f4/
    - https://www.splunk.com/en_us/blog/security/these-are-the-drivers-you-are-looking-for-detect-and-prevent-malicious-drivers.html
finding:
    title: Potentially vulnerable/malicious driver [$ImagePath$] has been installed on $dest$
    entity:
        field: dest
        type: system
        score: 50
analytic_story:
    - Windows Drivers
    - Void Manticore
asset_type: Endpoint
mitre_attack_id:
    - T1543.003
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint

Stages and Predicates

Stage 1: search

`wineventlog_system` EventCode=7045 ServiceType="kernel mode driver"

Stage 2: table

| table _time dest EventCode ImagePath ServiceName ServiceType

Stage 3: lookup

| lookup loldrivers driver_name AS ImagePath OUTPUT is_driver driver_description
Lookup table
loldrivers
Key field
driver_name as ImagePath
Output columns
['is_driver', 'is_driver'], ['driver_description', 'driver_description']

Stage 4: search

| search is_driver = TRUE

Stage 5: search

| `windows_vulnerable_driver_installed_filter`

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventCodeeq
  • 7045 corpus 21 (splunk 18, elastic 1, chronicle 1, kusto 1)
field:"EventID" kind:eq value:"7045"
ServiceTypeeq
  • "kernel mode driver" corpus 2 (splunk 2)
field:"ServiceType" kind:eq
is_drivereq
  • TRUE corpus 2 (splunk 2)
field:"is_driver" kind:eq value:"TRUE"