
NtUserGetWindowProcessHandle 시스템 호출을 악용하여 관리자 권한 없이 보호된 Windows 프로세스에 대한 핸들을 획득하는 개념 증명 PPL 우회.
PPLwindow는 Windows 10 1809부터 Windows 11 23H2까지 영향을 미치는 PPL Bypass에 대한 Proof-of-Concept입니다. win32kfull.sys 드라이버의 NtUserGetWindowProcessHandle syscall은 언급된 Windows 버전에서 프로세스가 보호된 프로세스인지 제대로 확인하지 않습니다. 이는 보호되지 않은 프로세스에서 보호된 프로세스로 PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_DUP_HANDLE 권한을 가진 프로세스 핸들을 얻는 데 악용될 수 있습니다.
이 bypass가 작동하려면 대상 보호된 프로세스에 창이 필요합니다. 이 PoC는 WerFaultSecure.exe를 악용하여 PP-WinTcb를 달성합니다. 이 bypass에는 관리자 권한이 필요하지 않습니다. Windows 11 24H2에서 수정되었습니다.
James Forshaw의 이 게시물을 보았습니다: https://infosec.exchange/@tiraniddo/115539156769921108 제 첫 반응은: 잠깐만. 나도 이거 알아. 나는 2023년에 CVE-2023-41772와 함께 이것을 이미 발견했지만, 유효한 대상으로 보호된 프로세스를 찾을 수 없었습니다. 그래서 좋은 대상(WerFaultSecure.exe)을 찾아준 James Forshaw에게 감사합니다. CVE-2023-41772를 보고할 때 Microsoft에 이에 대해 알렸습니다. 이것이 Windows 11 24H2에서 수정된 이유일 수 있습니다.
Windows 10 1809 / Windows Server 2019의 경우 Windows 10 21H2 / Windows Server 2022의 WerFaultSecure.exe 및 wer.dll 바이너리를 사용할 수 있습니다. 두 바이너리를 폴더에 넣고 WerFaultSecure.exe의 경로를 PPLwindow의 첫 번째 명령줄 인수로 제공하세요.
