浅析黑猫勒索软件中的UAC绕过提权技术
字数 1610 2025-08-22 18:37:22

黑猫勒索软件中的UAC绕过提权技术深度分析

1. UAC机制基础原理

1.1 UAC概述

UAC(User Account Control)是微软从Windows Vista开始引入的安全机制,核心功能包括:

  • 任何需要管理员权限的操作都必须通过用户确认
  • 阻止未经授权的应用程序自动安装
  • 防止无意中的系统设置更改

1.2 UAC工作流程

  1. 令牌生成机制

    • 标准用户登录:生成仅含有限权限的访问令牌
    • 管理员用户登录:同时生成标准用户令牌和完全权限的管理员令牌
  2. 权限执行流程

    • 默认情况下,所有应用程序都以标准用户权限运行
    • 需要管理员权限时,触发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 具体实现步骤

  1. COM对象关联

    CLSID{3E5FC7F9-9A51-4367-9063-A120244FBEC7}
    

    将该CLSID关联到CMSTPLUA接口

  2. 权限提升执行

    • 调用CoGetObject函数将自身注册为指定CLSID
    • 以提升的权限执行程序
  3. 权限维持

    • 使用CoUninitialize反初始化COM库
    • 已提升的权限不会被撤销

3.1.3 权限扩展

  1. 获取权限标识符:

    LookupPrivilegeValueW()
    

    获取指定权限的本地标识符(LUID)

  2. 添加进程权限:

    AdjustTokenPrivileges()
    

    将权限添加到进程权限列表,允许执行系统级操作

3.2 基于ICMLuaUtil接口的绕过技术

3.2.1 ShellExec方法

HRESULT ShellExec(
    LPCWSTR lpFile,
    LPCWSTR lpParameters,
    LPCWSTR lpDirectory,
    ULONG fMask,
    INT nShowCmd
);

3.2.2 实现流程

  1. 使用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);
    }
    
  2. 调用ShellExec方法创建进程,完成UAC绕过

3.3 基于Windows自身漏洞的绕过技术(CVE-2019-1388)

3.3.1 漏洞背景

  • 存在于consent.exe处理过程
  • 允许攻击者利用路径处理不当绕过UAC
  • 影响Secure Desktop安全机制

3.3.2 漏洞利用步骤

  1. 触发UAC提示
  2. 选择"显示详细信息"
  3. 点击"显示有关此发布者的证书信息"
  4. 点击"颁发者"超链接
  5. 关闭UAC提示
  6. 在打开的页面选择"另存为"
  7. 通过资源管理器打开cmd,获得SYSTEM权限

3.3.3 技术原理分析

  1. 安全桌面机制

    • UAC提示在Secure Desktop显示
    • 由consent.exe以NT AUTHORITY\SYSTEM权限运行
    • 具有System完整性级别
  2. 漏洞本质

    • UI控件限制不足
    • 证书对话框超链接未被禁用
    • 导致可以继承SYSTEM权限

4. 防御建议

4.1 针对COM/CMSTP绕过的防御

  1. 监控CMSTP.exe的异常调用
  2. 限制高危CLSID的调用
  3. 启用攻击面减少规则(ASR)

4.2 针对ICMLuaUtil绕过的防御

  1. 监控CoCreateInstanceAsAdmin调用
  2. 限制ICMLuaUtil接口的使用
  3. 实施最小权限原则

4.3 针对CVE-2019-1388的防御

  1. 及时安装安全补丁
  2. 禁用不必要的UI交互功能
  3. 加强consent.exe的行为监控

4.4 通用防御措施

  1. 启用最高级别的UAC设置
  2. 实施应用程序白名单
  3. 定期审计系统权限配置
  4. 监控异常权限提升行为

5. 总结

黑猫勒索软件展示了多种有效的UAC绕过技术,从滥用合法系统组件到利用系统自身漏洞。这些技术不仅对安全研究人员有重要参考价值,也提醒我们UAC机制并非绝对安全。防御者需要采取多层次的安全措施,包括但不限于及时补丁更新、严格权限控制和持续行为监控,才能有效防范此类攻击。

黑猫勒索软件中的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关联到CMSTPLUA接口 权限提升执行 : 调用 CoGetObject 函数将自身注册为指定CLSID 以提升的权限执行程序 权限维持 : 使用 CoUninitialize 反初始化COM库 已提升的权限不会被撤销 3.1.3 权限扩展 获取权限标识符: 获取指定权限的本地标识符(LUID) 添加进程权限: 将权限添加到进程权限列表,允许执行系统级操作 3.2 基于ICMLuaUtil接口的绕过技术 3.2.1 ShellExec方法 3.2.2 实现流程 使用 CoCreateInstanceAsAdmin 创建COM对象: 调用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机制并非绝对安全。防御者需要采取多层次的安全措施,包括但不限于及时补丁更新、严格权限控制和持续行为监控,才能有效防范此类攻击。