
PoC exploiting Aligned Chunk Confusion on Windows kernel Segment Heap
Ce dépôt contient un exploit de type PoC utilisant une technique d'exploitation appelée Aligned Chunk Confusion. Les détails de la technique sont disponibles dans le document.
Cet exploit tire parti d'un débordement de tas dans le tas du noyau Windows pour élever ses privilèges de Low à SYSTEM.
L'objectif de la recherche était de développer un exploit générique pour une vulnérabilité de débordement de tas dans le Pool du noyau.
Lors de l'exploitation d'un débordement de tas, la taille de l'objet vulnérable (celui qui déborde) est importante, car elle a un impact sur où et comment il est alloué. De plus, le type de pool dans lequel il sera alloué est également pertinent pour les mêmes raisons.
C'est pourquoi, pour être générique, l'exploit doit :
L'exploit présenté peut fonctionner à la fois dans PagedPool et NonPagedPool ; il utilise des techniques similaires avec des objets différents.
La vulnérabilité exploitée n'est pas réelle et est construite avec un pilote exposant un débordement de tas entièrement contrôlé.
L'exploit est un PoC et n'est pas parfaitement stable. Il fonctionne principalement avec des tailles allant de 0x130 à 0x300, mais il pourrait être adapté pour fonctionner avec n'importe quelle taille. La stabilité de l'exploit peut également être grandement améliorée en utilisant de meilleures techniques de massage du tas.
Le pilote peut être compilé avec Visual Studio, en utilisant la solution dans Driver.
Un makefile permet de compiler l'intégralité de l'exploit écrit en C.
Il dépend de gcc-mingw-w64-x86-64.
make
Il peut être compilé en mode debug, ce qui ajoutera des vérifications utilisant le pilote et une sortie plus détaillée.
make debug
Ces travaux ont été présentés à SSTIC 2020 et à OPCDE 8. Les slides des deux présentations sont disponibles ici.