House of Rabbit
Aprende y practica Hacking en AWS: HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Requisitos
Capacidad para modificar el puntero fd o el tamaño de un fastbin: Esto significa que puedes cambiar el puntero forward de un fragmento en el fastbin o su tamaño.
Capacidad para activar
malloc_consolidate
: Esto se puede hacer ya sea asignando un fragmento grande o fusionando el fragmento superior, lo que obliga al montón a consolidar fragmentos.
Objetivos
Crear fragmentos superpuestos: Para que un fragmento se solape con otro, permitiendo manipulaciones adicionales del montón.
Forjar fragmentos falsos: Para engañar al asignador para que trate un fragmento falso como un fragmento legítimo durante las operaciones del montón.
Pasos del ataque
POC 1: Modificar el tamaño de un fragmento fastbin
Objetivo: Crear un fragmento superpuesto manipulando el tamaño de un fragmento fastbin.
Paso 1: Asignar fragmentos
Paso 2: Liberar Chunks
Paso 3: Modificar el Tamaño del Chunk
Paso 4: Provocar
malloc_consolidate
Asignar un gran fragmento desencadena la función malloc_consolidate
, fusionando fragmentos pequeños en el fast bin. El tamaño manipulado de chunk1
hace que se solape con chunk2
.
Después de la consolidación, chunk1
se solapa con chunk2
, lo que permite una mayor explotación.
POC 2: Modificar el puntero fd
fd
Objetivo: Crear un fragmento falso manipulando el puntero fd
del fast bin.
Paso 1: Asignar Fragmentos
Explicación: Asignamos dos fragmentos, uno más pequeño y otro más grande, para configurar el montón para el fragmento falso.
Paso 2: Crear fragmento falso
Paso 3: Liberar
chunk1
Explicación: Liberamos chunk1
, añadiéndolo a la lista fastbin.
Paso 4: Modificar
fd
dechunk1
Explicación: Cambiamos el puntero hacia adelante (fd
) de chunk1
para que apunte a nuestro chunk falso dentro de chunk2
.
Paso 5: Desencadenar
malloc_consolidate
Asignar un gran fragmento nuevamente desencadena malloc_consolidate
, que procesa el fragmento falso.
El fragmento falso se convierte en parte de la lista fastbin, convirtiéndose en un fragmento legítimo para futuras explotaciones.
Resumen
La técnica de la Casa del Conejo implica modificar el tamaño de un fragmento de fast bin para crear fragmentos superpuestos o manipular el puntero fd
para crear fragmentos falsos. Esto permite a los atacantes forjar fragmentos legítimos en el montón, lo que habilita diversas formas de explotación. Comprender y practicar estos pasos mejorará tus habilidades de explotación de montón.
Last updated