ATT&CK coverage › Technique

Abuse Elevation Control Mechanism: Bypass User Account Control T1548.002

Adversaries may bypass UAC mechanisms to elevate process privileges on system. Windows User Account Control (UAC) allows a program to elevate its privileges (tracked as integrity levels ranging from low to high) to perform a task under administrator-level permissions, possibly by prompting the user for confirmation. The impact to the user ranges from denying the operation under high enforcement to allowing the user to perform the action if they are in the local administrators group and click through the prompt or allowing them to enter an administrator password to complete the action.

Events covered

16 catalog events are tagged with this technique by at least one rule.

ProviderEvent IDTitle
Sysmon1Process creation
Sysmon7Image loaded
Sysmon10ProcessAccess
Sysmon11FileCreate
Sysmon12RegistryEvent (Object create and delete)
Sysmon13RegistryEvent (Value Set)
Sysmon14RegistryEvent (Key and Value Rename)
Security-Auditing4657A registry value was modified.
Security-Auditing4660An object was deleted.
Security-Auditing4663An attempt was made to access an object.
Security-Auditing4688A new process has been created.
Defender-DeviceRegistryEvents9005000Registry activity (any)
Defender-DeviceRegistryEvents9005002Registry key deleted
Defender-DeviceRegistryEvents9005003Registry value set
Defender-DeviceRegistryEvents9005004Registry value deleted
PowerShell4104Creating Scriptblock text (MessageNumber of MessageTotal).

Authoring guide

Patterns shared across the 70 rules above: which fields they filter on, what specific values they look for, and what they exclude. Field names are normalized across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (26 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
Image27ends_with 19, eq 6, match 4\dism.exe, \powershell.exe, \pwsh.exe, \cmd.exe, tmp
ParentImage18ends_with 14, match 3, eq 2, starts_with 1\DllHost.exe, tmp, \Windows\Installer\, msi, C:\Windows\System32\services.exe
IntegrityLevel17eq 16, in 1S-1-16-16384, System, High, S-1-16-12288, "medium"
TargetObject14ends_with 8, match 7Software\\Classes\\ms-settings\\shell\\open\\command, \open\command\DelegateExecute, \Environment\windir, Classes\exefile\shell\open\command\(Default), Classes\ms-settings\shell\open\command\DelegateExecute
Details14eq 11, match 2, ends_with 1, starts_with 1, regex_match 1, is_not_null 1(Empty), DWORD (0x00000000), %SystemRoot%, \Software\Classes\{, \Music\
CommandLine11match 7, ends_with 3, eq 2, starts_with 1\system32\msiexec.exe /V, -s, -au, /ni, /NOUACCHECK
ParentCommandLine9match 4, eq 4, ends_with 1C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule, \system32\msiexec.exe /V, /Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}, /Processid:{BD54C901-076B-434E-B6C7-17C531F4AB41}, /Processid:{E9495B87-D950-4AB5-87A5-FF6D70BF3E90}
TargetFilename8ends_with 8, starts_with 8, match 1, eq 1C:\Users\, \AppData\Local\Temp\system32\winsat.exe, \AppData\Local\Temp\system32\winmm.dll, \AppData\Local\Temp\pe386.dll, C:\Windows\System32\consent.exe.@
OriginalFileName7eq 7pwsh.dll, PowerShell.EXE, Cmd.Exe, CMSTP.EXE, CONHOST.EXE
registry_path7eq 7"*\\CurrentVersion\\Policies\\System*", *\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\..., "*mscfile\\shell\\open\\command\\*", "*\\Environment\\COR_PROFILER_PATH", "*\\exefile\\shell\\runas\\command\\*"
ImageLoaded4match 2, ends_with 2, eq 2:\Windows \System32\, :\Windows \SysWOW64\, iscsiexe.dll, \iscsiexe.dll, C:\Windows\
registry_value_name3eq 3"(Default)", "LocalAccountTokenFilterPolicy", "IsolatedCommand", "DelegateExecute"
EventID2eq 24657, 7
EventType2in 1, eq 1RegistryValueSet, RegistryKeyCreated, SetValue
CallTrace2match 1, starts_with 1editionupgrademanagerobj.dll, UNKNOWN(0000000000000000)|UNKNOWN(0000000000000000)|

Top indicator values (243 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique.

FieldKindValueRules (here)Corpus reach
IntegrityLeveleqS-1-16-163841521
IntegrityLeveleqSystem1521
IntegrityLeveleqS-1-16-122881516
IntegrityLeveleqHigh1516
TargetFilenamestarts_withC:\Users\612
Imageends_with\dism.exe34
TargetObjectmatchSoftware\\Classes\\ms-settings\\shell\\open\\command2
Imageends_with\powershell.exe2143
Imageends_with\pwsh.exe2140
OriginalFileNameeqpwsh.dll272
Detailseq(Empty)224
ParentImageends_with\DllHost.exe22
ParentCommandLineeqC:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule22
DetailseqDWORD (0x00000000)238
registry_value_nameeq"(Default)"22
EventIDeq46571
EventTypeinRegistryValueSet1
EventTypeinRegistryKeyCreated1
ParentImageends_withtmp1
Imageends_with\cmd.exe192

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Sigma 56 rules

Splunk 11 rules

Kusto Query Language 3 rules