返回首页
EN
H7 / SECURITY RESEARCH NOTES

利用本地APPINFO RPC服务ByPass Windows UAC启动高权限应用

环境说明

IPHOSTNAMENOTE
N/AWindows 1010.10.10.88

前言

复现过程

攻击手法简述

  • 通过利用RPC服务中暴露的脆弱接口进行UAC绕过,其中利用的RPC函数RAiLaunchAdminProcess位于APPINFO服务中,该函数定义如下:
long RAiLaunchAdminProcess(
    handle_t hBinding,
    [in][unique][string] wchar_t* ExecutablePath,
    [in][unique][string] wchar_t* CommandLine,
    [in] long StartFlags,
    [in] long CreateFlags,
    [in][string] wchar_t* CurrentDirectory,
    [in][string] wchar_t* WindowStation,
    [in] struct APP_STARTUP_INFO* StartupInfo,
    [in] unsigned __int3264 hWnd,
    [in] long Timeout,
    [out] struct APP_PROCESS_INFORMATION* ProcessInformation,
    [out] long *ElevationType
);
  • 通过RAiLaunchAdminProcess接口,我们可以指定权限创建新的进程。参数StartFlags指定权限,StartFlags为0时以普通权限执行,为1时创建管理员权限的进程。其中具有微软签名的白名单程序可以绕过UAC直接以高权限执行。

绕过UAC启动高权限cmd.exe

  • 使用visual studio 2022编译项目

  • 正常以管理员权限启动cmd.exe会触发UAC弹窗,如下图:

  • 绕过UAC以管理员权限启动cmd.exe