
Эксплойт-доказательство концепции обхода PPL, использующий системный вызов NtUserGetWindowProcessHandle для получения дескриптора защищённых процессов Windows без прав администратора.
PPLwindow — это Proof-of-Concept для обхода PPL, затрагивающего Windows 10 1809 — Windows 11 23H2. Системный вызов NtUserGetWindowProcessHandle из драйвера win32kfull.sys не выполняет должной проверки того, является ли процесс защищённым, в указанных версиях Windows. Это можно использовать для получения дескриптора процесса с правами PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_DUP_HANDLE к защищённому процессу из незащищённого процесса.
Целевому защищённому процессу для работы этого обхода требуется окно. PoC эксплуатирует WerFaultSecure.exe и достигает PP-WinTcb. Для этого обхода не требуются права администратора. Он был исправлен в Windows 11 24H2.
Я увидел этот пост от James Forshaw: https://infosec.exchange/@tiraniddo/115539156769921108 Моей первой реакцией было: Подождите секунду. Я это знаю. Я уже находил это в 2023 году вместе с CVE-2023-41772, но не смог найти защищённый процесс в качестве подходящей цели. Так что спасибо James Forshaw за нахождение хорошей цели (WerFaultSecure.exe). Я сообщил об этом Microsoft, когда отчитывался о CVE-2023-41772. Возможно, это причина того, что это было исправлено в Windows 11 24H2.
Для Windows 10 1809 / Windows Server 2019 вы можете использовать бинарные файлы WerFaultSecure.exe и wer.dll из Windows 10 21H2 / Windows Server 2022. Поместите оба бинарных файла в папку и передайте путь к WerFaultSecure.exe в качестве первого аргумента командной строки для PPLwindow.
