
NtUserGetWindowProcessHandle システムコールを悪用して管理者権限なしで保護された Windows プロセスへのハンドルを取得する、概念実証の PPL バイパス。
PPLwindowは、Windows 10 1809からWindows 11 23H2に影響するPPLバイパスの概念実証(PoC)です。win32kfull.sysドライバのNtUserGetWindowProcessHandleシステムコールは、前述の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と一緒にすでに発見していたけど、有効なターゲットとなる保護プロセスを見つけられなかった」というものでした。なので、良いターゲット(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の最初のコマンドライン引数として指定してください。
