Detection rules › Splunk

Windows Vulnerable Driver Loaded

Status
production
Group by
dest, dvc, image_loaded, process_hash, process_name, signature, signature_id, user_id, vendor_product
Author
Michael Haag, Splunk
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 Sysmon EventCode 6 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.

MITRE ATT&CK coverage

Event coverage

ProviderEventTitle
SysmonEvent ID 6Driver loaded

Rule body splunk

name: Windows Vulnerable Driver Loaded
id: a2b1f1ef-221f-4187-b2a4-d4b08ec745f4
version: 10
creation_date: '2022-12-31'
modification_date: '2026-05-13'
author: Michael Haag, Splunk
status: production
type: Hunting
description: The following analytic detects the loading of known vulnerable Windows drivers, which may indicate potential persistence or privilege escalation attempts. It leverages Sysmon EventCode 6 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.
data_source:
    - Sysmon EventID 6
search: |-
    `sysmon` EventCode=6
      | stats  min(_time) as firstTime max(_time) as lastTime count
        BY ImageLoaded dest dvc
           process_hash process_path signature
           signature_id user_id vendor_product
      | lookup loldrivers driver_name AS ImageLoaded OUTPUT is_driver driver_description
      | search is_driver = TRUE
      | `security_content_ctime(firstTime)`
      | `security_content_ctime(lastTime)`
      | `windows_vulnerable_driver_loaded_filter`
how_to_implement: Sysmon collects driver loads via EventID 6, however you may modify the query to utilize this lookup to identify potentially persistent drivers that are known to be vulnerable.
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://github.com/SigmaHQ/sigma/blob/master/rules/windows/driver_load/driver_load_vuln_drivers_names.yml
    - https://github.com/eclypsium/Screwed-Drivers/blob/master/DRIVERS.md
    - https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/microsoft-recommended-driver-block-rules
    - https://www.rapid7.com/blog/post/2021/12/13/driver-based-attacks-past-and-present/
    - https://github.com/jbaines-r7/dellicious
    - https://github.com/MicrosoftDocs/windows-itpro-docs/blob/public/windows/security/threat-protection/windows-defender-application-control/microsoft-recommended-driver-block-rules.md
    - https://github.com/namazso/physmem_drivers
    - https://github.com/stong/CVE-2020-15368
    - https://github.com/CaledoniaProject/drivers-binaries
    - https://github.com/Chigusa0w0/AsusDriversPrivEscala
    - https://www.welivesecurity.com/2022/01/11/signed-kernel-drivers-unguarded-gateway-windows-core/
    - https://eclypsium.com/2019/11/12/mother-of-all-drivers/
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-37969
analytic_story:
    - Windows Drivers
    - BlackByte Ransomware
    - Void Manticore
asset_type: Endpoint
mitre_attack_id:
    - T1543.003
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint
tests:
    - name: True Positive Test
      attack_data:
        - data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1014/windows-sysmon.log
          source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
          sourcetype: XmlWinEventLog
      test_type: unit

Stages and Predicates

Stage 1: search

`sysmon` EventCode=6

Stage 2: stats

| stats  min(_time) as firstTime max(_time) as lastTime count
    BY ImageLoaded dest dvc
       process_hash process_path signature
       signature_id user_id vendor_product

Stage 3: lookup

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

Stage 4: search

| search is_driver = TRUE

Stage 5: search

| `security_content_ctime(firstTime)`

Stage 6: search

| `security_content_ctime(lastTime)`

Stage 7: search

| `windows_vulnerable_driver_loaded_filter`

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
EventCodeeq
  • 6 corpus 6 (splunk 5, chronicle 1)
is_drivereq
  • TRUE corpus 2 (splunk 2)