House of Rabbit
Aprenda e pratique Hacking na AWS: Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking no GCP:
Treinamento HackTricks GCP Red Team Expert (GRTE)
Requisitos
Capacidade de modificar o ponteiro fd ou o tamanho do fast bin: Isso significa que você pode alterar o ponteiro forward de um pedaço no fastbin ou seu tamanho.
Capacidade de acionar
malloc_consolidate
: Isso pode ser feito alocando um grande pedaço ou mesclando o pedaço superior, o que força o heap a consolidar pedaços.
Objetivos
Criar pedaços sobrepostos: Para ter um pedaço sobreposto com outro, permitindo manipulações adicionais no heap.
Forjar pedaços falsos: Para enganar o alocador a tratar um pedaço falso como um pedaço legítimo durante operações no heap.
Etapas do ataque
POC 1: Modificar o tamanho de um pedaço fast bin
Objetivo: Criar um pedaço sobreposto manipulando o tamanho de um pedaço fastbin.
Passo 1: Alocar Pedaços
Passo 2: Liberar Chunks
Passo 3: Modificar o Tamanho do Chunk
Passo 4: Acionar
malloc_consolidate
Alocar um grande bloco aciona a função malloc_consolidate
, mesclando pequenos blocos no fast bin. O tamanho manipulado do chunk1
faz com que ele se sobreponha ao chunk2
.
Após a consolidação, o chunk1
se sobrepõe ao chunk2
, permitindo uma exploração adicional.
POC 2: Modificar o ponteiro fd
fd
Objetivo: Criar um bloco falso manipulando o ponteiro fd
do fast bin.
Passo 1: Alocar Blocos
Explicação: Alocamos dois blocos, um menor e um maior, para configurar o heap para o bloco falso.
Passo 2: Criar bloco falso
Passo 3: Liberar
chunk1
Explicação: Liberamos chunk1
, adicionando-o à lista fastbin.
Passo 4: Modificar
fd
dechunk1
Explicação: Alteramos o ponteiro para frente (fd
) do chunk1
para apontar para o nosso chunk falso dentro do chunk2
.
Passo 5: Acionar
malloc_consolidate
Alocar novamente um grande bloco aciona o malloc_consolidate
, que processa o bloco falso.
O bloco falso passa a fazer parte da lista fastbin, tornando-se um bloco legítimo para futuras explorações.
Resumo
A técnica House of Rabbit envolve modificar o tamanho de um bloco fast bin para criar blocos sobrepostos ou manipular o ponteiro fd
para criar blocos falsos. Isso permite que os atacantes forjem blocos legítimos no heap, possibilitando várias formas de exploração. Compreender e praticar esses passos irá aprimorar suas habilidades de exploração de heap.
Last updated