Detection rules › Sigma

Potential Privileged System Service Operation - SeLoadDriverPrivilege

Status
test
Severity
medium
Log source
product windows, service security
Author
xknow (@xknow_infosec), xorxes (@xor_xes)
Source
github.com/SigmaHQ/sigma

Detects the usage of the 'SeLoadDriverPrivilege' privilege. This privilege is required to load or unload a device driver. With this privilege, the user can dynamically load and unload device drivers or other code in to kernel mode. This user right does not apply to Plug and Play device drivers. If you exclude privileged users/admins and processes, which are allowed to do so, you are maybe left with bad programs trying to load malicious kernel drivers. This will detect Ghost-In-The-Logs (https://github.com/bats3c/Ghost-In-The-Logs) and the usage of Sysinternals and various other tools. So you have to work with a whitelist to find the bad stuff.

Known false positives

  • Other legimate tools loading drivers. Including but not limited to, Sysinternals, CPU-Z, AVs etc. A baseline needs to be created according to the used products and allowed tools. A good thing to do is to try and exclude users who are allowed to load drivers.

MITRE ATT&CK coverage

TacticTechniques
Defense Impairment

Telemetry coverage

Rule body

title: Potential Privileged System Service Operation - SeLoadDriverPrivilege
id: f63508a0-c809-4435-b3be-ed819394d612
status: test
description: |
    Detects the usage of the 'SeLoadDriverPrivilege' privilege. This privilege is required to load or unload a device driver.
    With this privilege, the user can dynamically load and unload device drivers or other code in to kernel mode.
    This user right does not apply to Plug and Play device drivers.
    If you exclude privileged users/admins and processes, which are allowed to do so, you are maybe left with bad programs trying to load malicious kernel drivers.
    This will detect Ghost-In-The-Logs (https://github.com/bats3c/Ghost-In-The-Logs) and the usage of Sysinternals and various other tools. So you have to work with a whitelist to find the bad stuff.
references:
    - https://web.archive.org/web/20230331181619/https://blog.dylan.codes/evading-sysmon-and-windows-event-logging/
    - https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4673
author: xknow (@xknow_infosec), xorxes (@xor_xes)
date: 2019-04-08
modified: 2026-06-29
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    product: windows
    service: security
detection:
    selection_1:
        EventID: 4673
        PrivilegeList: 'SeLoadDriverPrivilege'
        Service: '-'
    filter_main_exact:
        ProcessName:
            - 'C:\Windows\explorer.exe'
            - 'C:\Windows\HelpPane.exe'
            - 'C:\Windows\ImmersiveControlPanel\SystemSettings.exe'
            - 'C:\Windows\System32\Dism.exe'
            - 'C:\Windows\System32\fltMC.exe'
            - 'C:\Windows\System32\mmc.exe'
            - 'C:\Windows\System32\rundll32.exe'
            - 'C:\Windows\System32\RuntimeBroker.exe'
            - 'C:\Windows\System32\ShellHost.exe'
            - 'C:\Windows\System32\svchost.exe'
            - 'C:\Windows\System32\SystemSettingsBroker.exe'
            - 'C:\Windows\System32\wimserv.exe'
    filter_optional_others:
        ProcessName|endswith:
            - '\AppData\Local\Microsoft\Teams\current\Teams.exe'
            - '\Google\Chrome\Application\chrome.exe'
            - '\procexp.exe'
            - '\procexp64.exe'
            - '\procexp64a.exe'
            - '\procmon.exe'
            - '\procmon64.exe'
            - '\procmon64a.exe'
    filter_main_startswith:
        ProcessName|startswith: 'C:\Program Files\WindowsApps\Microsoft'
    filter_optional_dropbox:
        ProcessName|startswith:
            - 'C:\Program Files (x86)\Dropbox\'
            - 'C:\Program Files\Dropbox\'
        ProcessName|endswith: '\Dropbox.exe'
    condition: selection_1 and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Other legimate tools loading drivers. Including but not limited to, Sysinternals, CPU-Z, AVs etc. A baseline needs to be created according to the used products and allowed tools. A good thing to do is to try and exclude users who are allowed to load drivers.
level: medium

Stages and Predicates

Stage 0: condition

selection_1 and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection_1

selection_1:
    EventID: 4673
    PrivilegeList: 'SeLoadDriverPrivilege'
    Service: '-'

Stage 2: not filter_main_*

filter_main_exact:
    ProcessName:
        - 'C:\Windows\explorer.exe'
        - 'C:\Windows\HelpPane.exe'
        - 'C:\Windows\ImmersiveControlPanel\SystemSettings.exe'
        - 'C:\Windows\System32\Dism.exe'
        - 'C:\Windows\System32\fltMC.exe'
        - 'C:\Windows\System32\mmc.exe'
        - 'C:\Windows\System32\rundll32.exe'
        - 'C:\Windows\System32\RuntimeBroker.exe'
        - 'C:\Windows\System32\ShellHost.exe'
        - 'C:\Windows\System32\svchost.exe'
        - 'C:\Windows\System32\SystemSettingsBroker.exe'
        - 'C:\Windows\System32\wimserv.exe'
filter_main_startswith:
    ProcessName|startswith: 'C:\Program Files\WindowsApps\Microsoft'

Stage 3: not filter_optional_*

filter_optional_others:
    ProcessName|endswith:
        - '\AppData\Local\Microsoft\Teams\current\Teams.exe'
        - '\Google\Chrome\Application\chrome.exe'
        - '\procexp.exe'
        - '\procexp64.exe'
        - '\procexp64a.exe'
        - '\procmon.exe'
        - '\procmon64.exe'
        - '\procmon64a.exe'
filter_optional_dropbox:
    ProcessName|startswith:
        - 'C:\Program Files (x86)\Dropbox\'
        - 'C:\Program Files\Dropbox\'
    ProcessName|endswith: '\Dropbox.exe'

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ProcessNameeqC:\Windows\HelpPane.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\HelpPane.exe"
ProcessNameeqC:\Windows\ImmersiveControlPanel\SystemSettings.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\ImmersiveControlPanel\SystemSettings.exe"
ProcessNameeqC:\Windows\System32\Dism.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\Dism.exe"
ProcessNameeqC:\Windows\System32\RuntimeBroker.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\RuntimeBroker.exe"
ProcessNameeqC:\Windows\System32\ShellHost.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\ShellHost.exe"
ProcessNameeqC:\Windows\System32\SystemSettingsBroker.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\SystemSettingsBroker.exe"
ProcessNameeqC:\Windows\System32\fltMC.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\fltMC.exe"
ProcessNameeqC:\Windows\System32\mmc.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\mmc.exe"
ProcessNameeqC:\Windows\System32\rundll32.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\rundll32.exe"
ProcessNameeqC:\Windows\System32\svchost.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\svchost.exe"
ProcessNameeqC:\Windows\System32\wimserv.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\System32\wimserv.exe"
ProcessNameeqC:\Windows\explorer.exeexcludes:ProcessName field:"ProcessName" value:"C:\Windows\explorer.exe"
ProcessNamestarts_withC:\Program Files\WindowsApps\Microsoftexcludes:ProcessName field:"ProcessName" value:"C:\Program Files\WindowsApps\Microsoft"
ProcessNamestarts_withC:\Program Files (x86)\Dropbox\excludes:ProcessName field:"ProcessName" value:"C:\Program Files (x86)\Dropbox\"
ProcessNamestarts_withC:\Program Files\Dropbox\excludes:ProcessName field:"ProcessName" value:"C:\Program Files\Dropbox\"
ProcessNameends_with\Dropbox.exeexcludes:ProcessName field:"ProcessName" value:"\Dropbox.exe"
ProcessNameends_with\AppData\Local\Microsoft\Teams\current\Teams.exeexcludes:ProcessName field:"ProcessName" value:"\AppData\Local\Microsoft\Teams\current\Teams.exe"
ProcessNameends_with\Google\Chrome\Application\chrome.exeexcludes:ProcessName field:"ProcessName" value:"\Google\Chrome\Application\chrome.exe"
ProcessNameends_with\procexp.exeexcludes:ProcessName field:"ProcessName" value:"\procexp.exe"
ProcessNameends_with\procexp64.exeexcludes:ProcessName field:"ProcessName" value:"\procexp64.exe"
ProcessNameends_with\procexp64a.exeexcludes:ProcessName field:"ProcessName" value:"\procexp64a.exe"
ProcessNameends_with\procmon.exeexcludes:ProcessName field:"ProcessName" value:"\procmon.exe"
ProcessNameends_with\procmon64.exeexcludes:ProcessName field:"ProcessName" value:"\procmon64.exe"
ProcessNameends_with\procmon64a.exeexcludes:ProcessName field:"ProcessName" value:"\procmon64a.exe"

Indicators

These rows show field, operator, and value matches.