
UIAccess QuickAssist 바이너리를 악용하여 WebView2 BrowserExecutableFolder를 통해 공격자가 제어하는 DLL을 로드한 뒤, Windows 10/11에서 권한 상승된 프로세스를 하이재킹하는 UAC 우회 PoC.
참고: 더 나은 호환성(예: Windows 서버 OS)을 갖춘 UAC 우회를 찾고 있다면 다음을 사용할 수 있습니다: TabTip UAC Bypass
QuickAssist는 Windows 10 1809에서 도입된 애플리케이션입니다. 기본적으로 설치되는 UIAccess 바이너리이며 UAC를 우회하는 데 악용될 수 있습니다. QuickAssist는 로그인 마스크에 WebView2를 사용하기 때문에 BrowserExecutableFolder 그룹 정책을 통해 속여서 WebView2와 함께 공격자가 제어하는 DLL을 임의의 위치에서 로드하도록 할 수 있습니다. QuickAssist 프로세스에 DLL을 로드하면 높은 무결성(high integrity)을 얻을 수 있지만 관리자 권한은 얻지 못합니다. 이것은 언뜻 보기에 자동 승격(auto-elevate)을 사용하는 일반적인 UAC 우회로의 "다운그레이드"처럼 보입니다. 다른 UIAccess/UIPI 우회는 승격된 창에 입력을 보내 제어권을 탈취하려고 시도합니다. 하지만 이는 필요하지 않습니다. 무결성 수준은 SetWindowsHookExW()(Windows 10 1809 이전 호환) 또는 GetProcessHandleFromHwnd()를 사용하여 창이 있는 승격된 프로세스를 탈취할 수 있게 해줍니다. 현재 세션에 승격된 창이 없으면 승격된 예약 작업을 시작하여 하나를 생성할 수 있습니다. 그리고 UIAccess 프로그램에서는 프롬프트가 절대 표시되지 않기 때문에 이러한 종류의 UAC 우회는 일반적인 UAC 우회보다 훨씬 뛰어납니다. 따라서 이 UAC 우회는 모든 UIAccess 우회가 완전한 UAC 우회로 간주될 수 있음을 보여주는 PoC 역할도 합니다. UIAccess 우회로 "다운그레이드"될 수 있는 기존의 모든 UAC 우회는 따라서 항상 알림(always notify)과 호환되는 UAC 우회로 업그레이드될 수 있습니다.
Windows 10 1809 이상 및 Windows 11에서 작동 이 UAC 우회는 항상 알림(always notify)과 함께 작동하지만 몇 가지 주의사항이 있습니다:
사용법:
Usage: QuickAssist_UAC_Bypass.exe [path_to_dll]
Example: QuickAssist_UAC_Bypass.exe OskSupport.dll
