
PoC explorando Aligned Chunk Confusion no Segment Heap do kernel do Windows
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.