
PoC exploiting Aligned Chunk Confusion on Windows kernel Segment Heap
Dieses Repository enthält einen PoC-Exploit, der eine Exploitationstechnik namens Aligned Chunk Confusion verwendet. Die Details zu dieser Technik finden sich im Paper.
Dieser Exploit nutzt einen Heap-Overflow im Windows-Kernel-Heap aus, um seine Berechtigungen von Low auf SYSTEM zu erhöhen.
Das Ziel der Forschung war es, einen generischen Exploit für eine Heap-Overflow-Schwachstelle im Kernel-Pool zu entwickeln.
Bei der Ausnutzung eines Heap-Overflows ist die Größe des verwundbaren Objekts (des überlaufenden) wichtig, da sie sich darauf auswirkt, wo und wie es alloziert wird. Auch der Typ des Pools, in dem es alloziert wird, ist aus denselben Gründen relevant.
Deshalb muss der Exploit, um generisch zu sein:
Der vorgestellte Exploit kann sowohl in PagedPool als auch in NonPagedPool funktionieren; er verwendet ähnliche Techniken mit unterschiedlichen Objekten.
Die ausgenutzte Schwachstelle ist keine echte, sondern wird mit einem Treiber konstruiert, der einen vollständig kontrollierten Heap-Overflow bereitstellt.
Der Exploit ist ein PoC und nicht perfekt stabil. Er funktioniert hauptsächlich mit Größen von 0x130 bis 0x300, könnte aber angepasst werden, um mit jeder Größe zu funktionieren. Die Stabilität des Exploits kann außerdem durch bessere Heap-Massaging-Techniken erheblich verbessert werden.
Der Treiber kann mit Visual Studio kompiliert werden, indem die Solution in Driver verwendet wird.
Ein Makefile kann den gesamten in C geschriebenen Exploit kompilieren.
Es ist von gcc-mingw-w64-x86-64 abhängig.
make
Es kann im Debug-Modus kompiliert werden, der Prüfungen mithilfe des Treibers und eine ausführlichere Ausgabe hinzufügt.
make debug
Diese Arbeit wurde auf der SSTIC 2020 und auf der OPCDE 8 präsentiert. Die Folien für beide Präsentationen sind hier verfügbar.