House of Rabbit
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Capacidade de modificar o ponteiro fd do fast bin ou tamanho: Isso significa que você pode alterar o ponteiro para frente de um chunk no fastbin ou seu tamanho.
Capacidade de acionar malloc_consolidate
: Isso pode ser feito alocando um chunk grande ou mesclando o chunk superior, o que força o heap a consolidar chunks.
Criar chunks sobrepostos: Para ter um chunk sobreposto a outro, permitindo mais manipulações do heap.
Forjar chunks falsos: Para enganar o alocador fazendo-o tratar um chunk falso como um chunk legítimo durante as operações do heap.
Objetivo: Criar um chunk sobreposto manipulando o tamanho de um chunk do fastbin.
Etapa 1: Alocar Chunks
Alocamos dois chunks de 0x40 bytes cada. Esses chunks serão colocados na lista de fast bin uma vez liberados.
Passo 2: Liberar Chunks
Nós liberamos ambos os chunks, adicionando-os à lista fastbin.
Passo 3: Modificar o Tamanho do Chunk
Mudamos os metadados de tamanho de chunk1
para 0xa1. Este é um passo crucial para enganar o alocador durante a consolidação.
Passo 4: Acionar malloc_consolidate
Alocar um grande bloco aciona a função malloc_consolidate
, mesclando pequenos blocos no fast bin. O tamanho manipulado de chunk1
faz com que ele se sobreponha a chunk2
.
Após a consolidação, chunk1
se sobrepõe a chunk2
, permitindo uma exploração adicional.
fd
Objetivo: Criar um bloco falso manipulando o ponteiro fd
do fast bin.
Passo 1: Alocar Blocos
Explicação: Alocamos dois chunks, um menor e um maior, para preparar o heap para o chunk falso.
Passo 2: Criar chunk falso
Escrevemos metadados de chunk falsos em chunk2
para simular chunks menores.
Passo 3: Liberar chunk1
Explicação: Liberamos chunk1
, adicionando-o à lista fastbin.
Passo 4: Modificar fd
de chunk1
Explicação: Mudamos o ponteiro para frente (fd
) do chunk1
para apontar para nosso chunk falso dentro do chunk2
.
Passo 5: Acionar malloc_consolidate
Alocar um grande bloco novamente aciona malloc_consolidate
, que processa o bloco falso.
O bloco falso se torna parte da lista fastbin, tornando-se um bloco legítimo para exploração adicional.
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 atacantes forjem blocos legítimos na heap, possibilitando várias formas de exploração. Compreender e praticar esses passos aprimorará suas habilidades de exploração de heap.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)