House of Rabbit
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Capacidad para modificar el puntero fd de fast bin o su tamaño: Esto significa que puedes cambiar el puntero hacia adelante de un chunk en el fastbin o su tamaño.
Capacidad para activar malloc_consolidate
: Esto se puede hacer al asignar un chunk grande o fusionar el chunk superior, lo que obliga al heap a consolidar chunks.
Crear chunks superpuestos: Para que un chunk se superponga con otro, permitiendo más manipulaciones del heap.
Forjar chunks falsos: Para engañar al asignador haciéndole tratar un chunk falso como un chunk legítimo durante las operaciones del heap.
Objetivo: Crear un chunk superpuesto manipulando el tamaño de un chunk de fastbin.
Paso 1: Asignar Chunks
We allocate two chunks of 0x40 bytes each. These chunks will be placed in the fast bin list once freed.
Paso 2: Liberar Chunks
We free both chunks, adding them to the fastbin list.
Paso 3: Modificar el tamaño del chunk
Cambiamos los metadatos de tamaño de chunk1
a 0xa1. Este es un paso crucial para engañar al asignador durante la consolidación.
Paso 4: Activar malloc_consolidate
Asignar un gran bloque activa la función malloc_consolidate
, fusionando pequeños bloques en el fast bin. El tamaño manipulado de chunk1
hace que se superponga con chunk2
.
Después de la consolidación, chunk1
se superpone con chunk2
, lo que permite una mayor explotación.
fd
Objetivo: Crear un bloque falso manipulando el puntero fd
del fast bin.
Paso 1: Asignar Bloques
Explicación: Asignamos dos trozos, uno más pequeño y uno más grande, para preparar el heap para el trozo falso.
Paso 2: Crear trozo falso
Escribimos metadatos de chunk falsos en chunk2
para simular chunks más pequeños.
Paso 3: Liberar chunk1
Explicación: Liberamos chunk1
, añadiéndolo a la lista fastbin.
Paso 4: Modificar fd
de chunk1
Explicación: Cambiamos el puntero hacia adelante (fd
) de chunk1
para que apunte a nuestro chunk falso dentro de chunk2
.
Paso 5: Activar malloc_consolidate
Asignar un gran bloque nuevamente activa malloc_consolidate
, que procesa el bloque falso.
El bloque falso se convierte en parte de la lista fastbin, haciéndolo un bloque legítimo para una mayor explotación.
La técnica House of Rabbit implica modificar el tamaño de un bloque fast bin para crear bloques superpuestos o manipular el puntero fd
para crear bloques falsos. Esto permite a los atacantes forjar bloques legítimos en el heap, habilitando varias formas de explotación. Comprender y practicar estos pasos mejorará tus habilidades de explotación de heap.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)