| name | detecting-t1548-abuse-elevation-control-mechanism |
| description | 通过监控注册表修改、进程提升标志和异常的父子进程关系,检测提升控制机制滥用,包括 UAC 绕过、sudo 利用和 setuid/setgid 操纵。 |
| domain | cybersecurity |
| subdomain | threat-hunting |
| tags | ["threat-hunting","uac-bypass","privilege-escalation","mitre-t1548","elevation-control","windows-security"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
检测 T1548 提升控制机制滥用
适用场景
- 狩猎 Windows 环境中通过 UAC 绕过进行权限提升时
- 威胁情报表明活跃威胁组织正在使用 UAC 绕过漏洞时
- 调查攻击者如何在不触发 UAC 提示的情况下获取管理员权限时
- 安全评估期间验证 UAC 绕过检测覆盖范围时
- 监控 Linux 系统上的 setuid/setgid 滥用时
前置条件
- 配置了命令行和父进程日志的 Sysmon 事件 ID 1
- 开启进程追踪的 Windows 安全事件 ID 4688
- 针对 UAC 相关注册表键的注册表审计(HKCU\Software\Classes)
- Sysmon 事件 ID 12/13(注册表键/值修改)
- 具备提升监控能力的 EDR
工作流程
- 监控 UAC 注册表修改:许多 UAC 绕过会修改
HKCU\Software\Classes\ms-settings\shell\open\command 或 HKCU\Software\Classes\mscfile\shell\open\command 下的注册表键。追踪这些更改的 Sysmon 事件 12/13。
- 检测自动提升进程滥用:某些 Windows 二进制文件会自动提升而不触发 UAC 提示(fodhelper.exe、computerdefaults.exe、eventvwr.exe)。狩猎由非标准父进程启动这些文件的情况。
- 追踪进程完整性级别变更:监控进程在没有对应 UAC 同意事件的情况下从中级提升到高级完整性级别的情况。
- 狩猎提升进程衍生:检测自动提升进程生成非预期子进程(cmd.exe、powershell.exe)的情况——这表明存在 UAC 绕过利用。
- 监控 Linux 提升滥用:追踪 sudo 错误配置利用、SUID 二进制文件滥用和能力操纵。
- 与权限提升链关联:将提升滥用映射到更广泛的攻击链,识别使用提升权限执行的操作。
核心概念
| 概念 | 描述 |
|---|
| T1548.002 | 绕过用户账户控制(UAC Bypass) |
| T1548.001 | Setuid 和 Setgid(Linux) |
| T1548.003 | Sudo 和 Sudo 缓存 |
| T1548.004 | 带提示的提升执行(macOS) |
| UAC 自动提升 | 无需提示即可提升的 Windows 二进制文件 |
| fodhelper.exe | 通过注册表劫持进行 UAC 绕过的常见向量 |
| eventvwr.exe | MSC 文件处理程序 UAC 绕过 |
| 完整性级别 | Windows 进程信任级别(低/中/高/System) |
检测查询
Splunk——通过注册表修改进行 UAC 绕过
index=sysmon (EventCode=12 OR EventCode=13)
| where match(TargetObject, "(?i)HKCU\\\\Software\\\\Classes\\\\(ms-settings|mscfile|exefile|Folder)\\\\shell\\\\open\\\\command")
| table _time Computer User EventCode TargetObject Details Image
Splunk——自动提升进程滥用
index=sysmon EventCode=1
| where match(Image, "(?i)(fodhelper|computerdefaults|eventvwr|sdclt|slui|cmstp)\.exe$")
| where NOT match(ParentImage, "(?i)(explorer|svchost|services)\.exe$")
| table _time Computer User Image CommandLine ParentImage ParentCommandLine
KQL——UAC 绕过检测
DeviceRegistryEvents
| where Timestamp > ago(7d)
| where RegistryKey has_any ("ms-settings\\shell\\open\\command", "mscfile\\shell\\open\\command")
| where ActionType == "RegistryValueSet"
| project Timestamp, DeviceName, RegistryKey, RegistryValueData, InitiatingProcessFileName
Sigma 规则
title: UAC Bypass via Registry Modification
status: stable
logsource:
product: windows
category: registry_set
detection:
selection:
TargetObject|contains:
- '\ms-settings\shell\open\command'
- '\mscfile\shell\open\command'
- '\exefile\shell\open\command'
condition: selection
level: high
tags:
- attack.privilege_escalation
- attack.t1548.002
常见场景
- fodhelper.exe 注册表劫持:攻击者将
HKCU\Software\Classes\ms-settings\shell\open\command 设置为恶意可执行文件,然后启动 fodhelper.exe,后者自动提升并执行被劫持的命令。
- eventvwr.exe MSC 绕过:修改
HKCU\Software\Classes\mscfile\shell\open\command 以拦截事件查看器的自动提升行为。
- sdclt.exe 绕过:利用 Windows 备份工具的自动提升执行任意命令。
- CMSTP.exe INF 绕过:使用带有恶意 INF 文件的连接管理器配置文件安装程序,通过
/s /ni 标志绕过 UAC。
- 自动提升中的 DLL 劫持:将恶意 DLL 放置在自动提升可执行文件的搜索路径中。
输出格式
Hunt ID: TH-UAC-[DATE]-[SEQ]
Host: [主机名]
Bypass Method: [注册表劫持/DLL 劫持/令牌操纵]
Auto-Elevate Binary: [fodhelper.exe/eventvwr.exe 等]
Registry Key Modified: [完整注册表路径]
Payload Executed: [命令或二进制路径]
User Context: [账户]
Risk Level: [Critical/High/Medium]
ATT&CK Technique: [T1548.00x]