
PoC che sfrutta Aligned Chunk Confusion sul Segment Heap del kernel Windows
Questo repository contiene un exploit PoC che utilizza una tecnica di sfruttamento chiamata Aligned Chunk Confusion. I dettagli sulla tecnica sono disponibili nell'articolo.
Questo exploit sfrutta un heap overflow nell'heap del kernel di Windows per elevare i propri privilegi da Low a SYSTEM.
L'obiettivo della ricerca era sviluppare un exploit generico per una vulnerabilità di heap overflow nel Pool del kernel.
Quando si sfrutta un heap overflow, la dimensione dell'oggetto vulnerabile (quello che causa l'overflow) è importante, poiché influirà su dove e come viene allocato. Anche il tipo di pool in cui verrà allocato è rilevante per gli stessi motivi.
Per questo motivo, per essere generico, l'exploit deve:
L'exploit presentato può funzionare sia in PagedPool che in NonPagedPool ; utilizza tecniche simili con oggetti diversi.
La vulnerabilità sfruttata non è reale, ma è costruita con un driver che espone un heap overflow completamente controllato.
L'exploit è un PoC e non è perfettamente stabile. Funziona principalmente con dimensioni da 0x130 a 0x300, ma potrebbe essere adattato per funzionare con qualsiasi dimensione. La stabilità dell'exploit può anche essere notevolmente migliorata utilizzando migliori tecniche di heap massaging.
Il driver può essere compilato con Visual studio, utilizzando la soluzione in Driver.
Un makefile può compilare l'intero exploit scritto in C.
Dipende da gcc-mingw-w64-x86-64.
make
Può essere compilato in modalità debug, che aggiungerà controlli tramite il driver e un output più dettagliato.
make debug
Questo lavoro è stato presentato al SSTIC 2020 e all'OPCDE 8. Le slide di entrambe le presentazioni sono disponibili qui.