
PoC exploiting Aligned Chunk Confusion on Windows kernel Segment Heap
Este repositório contém um exploit de PoC que utiliza uma técnica de exploração chamada Aligned Chunk Confusion. Os detalhes sobre a técnica podem ser encontrados no paper.
Este exploit aproveita um heap overflow no heap do kernel do Windows para elevar seus privilégios de Low para SYSTEM.
O objetivo da pesquisa era desenvolver um exploit genérico para uma vulnerabilidade de heap overflow no Pool do kernel.
Ao explorar um heap overflow, o tamanho do objeto vulnerável (o que faz o overflow) é importante, pois terá impacto em onde e como ele é alocado. Além disso, o tipo de pool onde ele será alocado também é relevante pelos mesmos motivos.
Por isso, para ser genérico, o exploit deve:
O exploit apresentado pode funcionar tanto em PagedPool quanto em NonPagedPool; ele usa técnicas semelhantes com objetos diferentes.
A vulnerabilidade explorada não é uma vulnerabilidade real, e é construída com um driver que expõe um heap overflow totalmente controlado.
O exploit é um PoC e não é perfeitamente estável. Ele funciona principalmente com tamanhos de 0x130 a 0x300, mas pode ser adaptado para funcionar com qualquer tamanho. A estabilidade do exploit também pode ser muito melhorada usando melhores técnicas de massagem de heap.
O driver pode ser compilado com o Visual Studio, usando a solução em Driver.
Um makefile pode compilar todo o exploit escrito em C.
Ele depende de gcc-mingw-w64-x86-64.
make
Pode ser compilado em modo de depuração, o que adicionará verificações usando o driver e produzirá uma saída mais detalhada.
make debug
Este trabalho foi apresentado no SSTIC 2020 e no OPCDE 8. Os slides de ambas as apresentações estão disponíveis aqui.