滥用 UIAccess QuickAssist 二进制文件,通过 WebView2 BrowserExecutableFolder 加载攻击者控制的 DLL,进而劫持 Windows 10/11 上的提权进程的 UAC 绕过 PoC。
备注:如果你需要兼容性更好的 UAC 绕过(例如 Windows Server 操作系统),可以使用:TabTip UAC Bypass
QuickAssist 是 Windows 10 1809 中引入的一个应用程序。它是一个默认安装的 UIAccess 二进制文件,可被滥用来绕过 UAC。由于 QuickAssist 使用 WebView2 作为登录界面,因此可以通过 BrowserExecutableFolder 组策略来欺骗它,使其从任意位置加载 WebView2,从而加载攻击者控制的 DLL。在 QuickAssist 进程中加载 DLL 可获得高完整性级别,但没有管理员权限。 乍看之下,这似乎是对普通自动提权 UAC 绕过的一种“降级”。其他 UIAccess/UIPI 绕过尝试通过向提权窗口发送输入来接管它们。但这并非必要。该完整性级别允许使用 SetWindowsHookExW()(兼容 Windows 10 1809 之前的版本)或 GetProcessHandleFromHwnd() 来接管拥有窗口的提权进程。如果当前会话中不存在提权窗口,则可以通过启动一个提权的计划任务来创建一个。而且由于 UIAccess 程序从不显示任何提示,这使得这类 UAC 绕过甚至比常规 UAC 绕过更好。因此,这个 UAC 绕过也作为一个 PoC,证明任何 UIAccess 绕过都可以被视为完整的 UAC 绕过。任何能够被“降级”为 UIAccess 绕过的先前 UAC 绕过,因此都可以升级为兼容“始终通知”的 UAC 绕过。
适用于 Windows 10 1809 及以上版本和 Windows 11 此 UAC 绕过在“始终通知”设置下有效,但有一些注意事项:
用法:
Usage: QuickAssist_UAC_Bypass.exe [path_to_dll]
Example: QuickAssist_UAC_Bypass.exe OskSupport.dll
