Add files via upload
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
### UAC 怎么绕过
|
||||
|
||||
大多数 UAC 绕过技术都利用了 Windows 设计中的一个安全机制:**自动提升**
|
||||
|
||||
Windows 允许一些特定的、微软签名的、位于安全目录(如 `C:\Windows\System32`)下的可执行文件在启动时 **自动提升** 到高完整性级别,而**不触发 UAC 提示框**
|
||||
|
||||
UAC Bypass 的核心思想就是 **劫持(Hijack)** 这些被信任的自动提升程序的执行流程,让它们在启动时去执行攻击者控制的恶意代码或命令。常见的劫持方法包括:
|
||||
|
||||
**1. 自动提升程序的执行劫持**
|
||||
|
||||
攻击者通过修改系统配置,使自动提升程序在执行过程中“无意中”调用攻击者的代码:
|
||||
|
||||
- **注册表劫持(Registry Key Manipulation)** 这是最常见和有效的技术之一。许多自动提升的程序在启动时会检查特定的**注册表路径**来加载其配置或执行的命令。如果这些注册表项位于 **`HKCU` (HKEY_CURRENT_USER)** 下,而该键值在用户登录后才会被加载,那么中等完整性级别的用户就可以修改它
|
||||
- **经典案例:`FodHelper.exe` 和 `EventVwr.exe`** 攻击者修改特定 `HKCU` 注册表键值,将命令注入到 **`ms-settings`** 或 **`mscfile`** 协议的处理程序中。当 `FodHelper.exe`(Windows 10 的功能)或 `EventVwr.exe`(事件查看器)自动提升执行时,它会读取这些被修改的键值,从而以高完整性级别执行攻击者的命令
|
||||
- **DLL 劫持(DLL Hijacking)** 一个自动提升的程序在启动时会尝试加载其依赖的 **DLL 文件**。如果攻击者发现:
|
||||
1. 该程序在搜索 DLL 时,会先检查一个**中等完整性用户可写入**的目录(例如 `AppData` 或其他非 System32 路径)
|
||||
2. 或者,该程序尝试加载一个**不存在(Missing DLL)**的 DLL。 攻击者就可以将恶意 DLL 放到该程序首先搜索的路径,程序在自动提升后加载这个恶意 DLL,从而执行高权限代码
|
||||
- **COM 接口劫持(COM Handler Hijack)** 一些自动提升的程序会调用特定的 **COM 接口** 来完成其功能。攻击者可以修改与这些 COM 对象相关的注册表键值,将 **InProcServer32**(即 COM 对象的实现 DLL)指向攻击者自己的恶意 DLL。当高权限进程调用该 COM 接口时,就会加载并执行恶意 DLL
|
||||
|
||||
**2. 白名单程序或配置文件滥用**
|
||||
|
||||
- **`sdclt.exe` (备份和还原)** 这个程序在 Windows 7/8/10 上可以自动提升。它在执行时会检查用户配置文件中一个特定的 XML 配置文件,攻击者可以通过修改这个配置文件来插入并执行任意命令
|
||||
Reference in New Issue
Block a user