
Proof-of-concept di bypass PPL che sfrutta la syscall NtUserGetWindowProcessHandle per ottenere un handle verso processi Windows protetti senza privilegi di amministratore.
PPLwindow è una Proof-of-Concept per un bypass PPL che interessa da Windows 10 1809 a Windows 11 23H2. La syscall NtUserGetWindowProcessHandle dal driver win32kfull.sys non verifica correttamente se un processo è un processo protetto nelle versioni di Windows menzionate. Questo può essere sfruttato per ottenere un handle di processo con PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_DUP_HANDLE verso un processo protetto da un processo non protetto.
Il processo protetto target necessita di una finestra affinché questo bypass funzioni. Il PoC sfrutta WerFaultSecure.exe e raggiunge PP-WinTcb. Per questo bypass non sono richiesti privilegi di amministratore. È stato corretto in Windows 11 24H2.
Ho visto questo post di James Forshaw: https://infosec.exchange/@tiraniddo/115539156769921108 La mia prima reazione è stata: Aspetta un secondo. Lo conosco. L'avevo già trovato nel 2023 insieme a CVE-2023-41772, ma non riuscivo a trovare un processo protetto come target valido. Quindi grazie a James Forshaw per aver trovato un buon target (WerFaultSecure.exe). Avevo informato Microsoft di questo, quando ho segnalato CVE-2023-41772. Questa potrebbe essere la ragione per cui è stato corretto in Windows 11 24H2.
Per Windows 10 1809 / Windows Server 2019 puoi usare i binari WerFaultSecure.exe e wer.dll da Windows 10 21H2 / Windows Server 2022. Metti entrambi i binari in una cartella e fornisci il percorso a WerFaultSecure.exe come primo argomento della riga di comando a PPLwindow.
