浅析黑猫勒索软件中的UAC绕过提权技术
字数 1610 2025-08-22 18:37:22
黑猫勒索软件中的UAC绕过提权技术深度分析
1. UAC机制基础原理
1.1 UAC概述
UAC(User Account Control)是微软从Windows Vista开始引入的安全机制,核心功能包括:
- 任何需要管理员权限的操作都必须通过用户确认
- 阻止未经授权的应用程序自动安装
- 防止无意中的系统设置更改
1.2 UAC工作流程
-
令牌生成机制:
- 标准用户登录:生成仅含有限权限的访问令牌
- 管理员用户登录:同时生成标准用户令牌和完全权限的管理员令牌
-
权限执行流程:
- 默认情况下,所有应用程序都以标准用户权限运行
- 需要管理员权限时,触发UAC对话框请求用户许可
2. BlackCat勒索软件简介
2.1 基本特征
- 别名:ALPHV
- 首次出现:2021年
- 编写语言:Rust
- 攻击模式:双重勒索(加密系统+窃取敏感文件)
2.2 技术特点
- 以命令行工具形式出现
- 支持多种运行参数
- 具备UAC绕过和权限提升能力
3. UAC绕过技术详解
3.1 基于COM和CMSTP的绕过技术
3.1.1 技术原理
- CMSTP工具:合法的命令行工具,用于安装和配置CMS文件
- CMSTPLUA接口:系统组件,设计为无需UAC提示即可提升权限
3.1.2 具体实现步骤
-
COM对象关联:
CLSID{3E5FC7F9-9A51-4367-9063-A120244FBEC7}将该CLSID关联到CMSTPLUA接口
-
权限提升执行:
- 调用
CoGetObject函数将自身注册为指定CLSID - 以提升的权限执行程序
- 调用
-
权限维持:
- 使用
CoUninitialize反初始化COM库 - 已提升的权限不会被撤销
- 使用
3.1.3 权限扩展
-
获取权限标识符:
LookupPrivilegeValueW()获取指定权限的本地标识符(LUID)
-
添加进程权限:
AdjustTokenPrivileges()将权限添加到进程权限列表,允许执行系统级操作
3.2 基于ICMLuaUtil接口的绕过技术
3.2.1 ShellExec方法
HRESULT ShellExec(
LPCWSTR lpFile,
LPCWSTR lpParameters,
LPCWSTR lpDirectory,
ULONG fMask,
INT nShowCmd
);
3.2.2 实现流程
-
使用
CoCreateInstanceAsAdmin创建COM对象:HRESULT CoCreateInstanceAsAdmin( HWND hwnd, REFCLSID rclsid, REFIID riid, __out void **ppv ) { BIND_OPTS3 bo; WCHAR wszCLSID[50]; WCHAR wszMonikerName[300]; StringFromGUID2(rclsid, wszCLSID, sizeof(wszCLSID)/sizeof(wszCLSID[0])); HRESULT hr = StringCchPrintf(wszMonikerName, sizeof(wszMonikerName)/sizeof(wszMonikerName[0]), L"Elevation:Administrator!new:%s", wszCLSID); if(FAILED(hr)) return hr; memset(&bo, 0, sizeof(bo)); bo.cbStruct = sizeof(bo); bo.hwnd = hwnd; bo.dwClassContext = CLSCTX_LOCAL_SERVER; return CoGetObject(wszMonikerName, &bo, riid, ppv); } -
调用ShellExec方法创建进程,完成UAC绕过
3.3 基于Windows自身漏洞的绕过技术(CVE-2019-1388)
3.3.1 漏洞背景
- 存在于consent.exe处理过程
- 允许攻击者利用路径处理不当绕过UAC
- 影响Secure Desktop安全机制
3.3.2 漏洞利用步骤
- 触发UAC提示
- 选择"显示详细信息"
- 点击"显示有关此发布者的证书信息"
- 点击"颁发者"超链接
- 关闭UAC提示
- 在打开的页面选择"另存为"
- 通过资源管理器打开cmd,获得SYSTEM权限
3.3.3 技术原理分析
-
安全桌面机制:
- UAC提示在Secure Desktop显示
- 由consent.exe以NT AUTHORITY\SYSTEM权限运行
- 具有System完整性级别
-
漏洞本质:
- UI控件限制不足
- 证书对话框超链接未被禁用
- 导致可以继承SYSTEM权限
4. 防御建议
4.1 针对COM/CMSTP绕过的防御
- 监控CMSTP.exe的异常调用
- 限制高危CLSID的调用
- 启用攻击面减少规则(ASR)
4.2 针对ICMLuaUtil绕过的防御
- 监控CoCreateInstanceAsAdmin调用
- 限制ICMLuaUtil接口的使用
- 实施最小权限原则
4.3 针对CVE-2019-1388的防御
- 及时安装安全补丁
- 禁用不必要的UI交互功能
- 加强consent.exe的行为监控
4.4 通用防御措施
- 启用最高级别的UAC设置
- 实施应用程序白名单
- 定期审计系统权限配置
- 监控异常权限提升行为
5. 总结
黑猫勒索软件展示了多种有效的UAC绕过技术,从滥用合法系统组件到利用系统自身漏洞。这些技术不仅对安全研究人员有重要参考价值,也提醒我们UAC机制并非绝对安全。防御者需要采取多层次的安全措施,包括但不限于及时补丁更新、严格权限控制和持续行为监控,才能有效防范此类攻击。