Detection rules › Sigma

Direct Autorun Keys Modification

Status
test
Severity
medium
Log source
product windows, category process_creation
Author
Victor Sergeev, Daniil Yugoslavskiy, oscd.community, Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects direct modification of autostart extensibility point (ASEP) in registry using reg.exe.

MITRE ATT&CK coverage

Event coverage

ProviderEventTitle
SysmonEvent ID 1Process creation

Rule body yaml

title: Direct Autorun Keys Modification
id: 24357373-078f-44ed-9ac4-6d334a668a11
status: test
description: Detects direct modification of autostart extensibility point (ASEP) in registry using reg.exe.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1547.001/T1547.001.md
    - https://github.com/HackTricks-wiki/hacktricks/blob/e4c7b21b8f36c97c35b7c622732b38a189ce18f7/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-with-autorun-binaries.md
author: Victor Sergeev, Daniil Yugoslavskiy, oscd.community, Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2019-10-25
modified: 2026-01-05
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.t1547.001
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\reg.exe'
        - OriginalFileName: 'reg.exe'
    selection_cli_add:
        CommandLine|contains: 'add'     # to avoid intersection with discovery tactic rules
    selection_cli_keys:
        CommandLine|contains:           # need to improve this list, there are plenty of ASEP reg keys
            - '\software\Microsoft\Windows\CurrentVersion\Run' # Also covers the strings "RunOnce", "RunOnceEx", "RunServices", "RunServicesOnce"
            - '\software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run'
            - '\software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run'
            - '\software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit'
            - '\software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell'
            - '\software\Microsoft\Windows NT\CurrentVersion\Windows'
            - '\system\CurrentControlSet\Control\SafeBoot\AlternateShell'
    condition: all of selection_*
falsepositives:
    - Legitimate software automatically (mostly, during installation) sets up autorun keys for legitimate reasons.
    - Legitimate administrator sets up autorun keys for legitimate reasons.
    - Discord
level: medium

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\reg.exe'
    - OriginalFileName: 'reg.exe'

Stage 2: selection_cli_add

selection_cli_add:
    CommandLine|contains: 'add'

Stage 3: selection_cli_keys

selection_cli_keys:
    CommandLine|contains:
        - '\software\Microsoft\Windows\CurrentVersion\Run'
        - '\software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run'
        - '\software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run'
        - '\software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit'
        - '\software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell'
        - '\software\Microsoft\Windows NT\CurrentVersion\Windows'
        - '\system\CurrentControlSet\Control\SafeBoot\AlternateShell'

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
CommandLinematch
  • \software\Microsoft\Windows NT\CurrentVersion\Windows
  • \software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
  • \software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
  • \software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run corpus 3 (sigma 3)
  • \software\Microsoft\Windows\CurrentVersion\Run corpus 3 (sigma 3)
  • \software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run corpus 3 (sigma 3)
  • \system\CurrentControlSet\Control\SafeBoot\AlternateShell
  • add corpus 34 (sigma 26, splunk 4, chronicle 2, kusto 2)
Imageends_with
  • \reg.exe corpus 58 (sigma 58)
OriginalFileNameeq
  • reg.exe corpus 42 (sigma 32, splunk 8, elastic 2)