Detection rules › Sigma

UAC Bypass Abusing Winsat Path Parsing - Process

Status
test
Severity
high
Log source
category process_creation, product windows
Author
Christian Burkard (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the pattern of UAC Bypass using a path parsing issue in winsat.exe (UACMe 52)

MITRE ATT&CK coverage

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule body

title: UAC Bypass Abusing Winsat Path Parsing - Process
id: 7a01183d-71a2-46ad-ad5c-acd989ac1793
status: test
description: Detects the pattern of UAC Bypass using a path parsing issue in winsat.exe (UACMe 52)
references:
    - https://github.com/hfiref0x/UACME
author: Christian Burkard (Nextron Systems)
date: 2021-08-30
modified: 2024-12-01
tags:
    - attack.privilege-escalation
    - attack.t1548.002
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        IntegrityLevel:
            - 'High'
            - 'System'
            - 'S-1-16-16384' # System
            - 'S-1-16-12288' # High
        ParentImage|endswith: '\AppData\Local\Temp\system32\winsat.exe'
        ParentCommandLine|contains: 'C:\Windows \system32\winsat.exe'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    IntegrityLevel:
        - 'High'
        - 'System'
        - 'S-1-16-16384'
        - 'S-1-16-12288'
    ParentImage|endswith: '\AppData\Local\Temp\system32\winsat.exe'
    ParentCommandLine|contains: 'C:\Windows \system32\winsat.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
IntegrityLeveleq
  • High corpus 21 (sigma 17, kusto 3, splunk 1)
  • S-1-16-12288 corpus 21 (sigma 17, kusto 3, splunk 1)
  • S-1-16-16384 corpus 30 (sigma 22, splunk 4, elastic 3, kusto 1)
  • System corpus 30 (sigma 22, splunk 4, elastic 3, kusto 1)
field:"IntegrityLevel" kind:eq
ParentCommandLinematch
  • C:\Windows \system32\winsat.exe
field:"ParentCommandLine" kind:match value:"C:\Windows \system32\winsat.exe"
ParentImageends_with
  • \AppData\Local\Temp\system32\winsat.exe
field:"ParentImage" kind:ends_with value:"\AppData\Local\Temp\system32\winsat.exe"