mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-18 06:58:27 +00:00
4.8 KiB
4.8 KiB
House of Lore | Ataque Small bin
{% hint style="success" %}
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)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.
Información Básica
Código
- Revisa el código en https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Esto no está funcionando
- O: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Esto tampoco está funcionando, incluso si intenta evitar algunas verificaciones obteniendo el error:
malloc(): unaligned tcache chunk detected
- Este ejemplo aún funciona: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Objetivo
- Insertar un trozo pequeño falso en el small bin para luego poder asignarlo.
Ten en cuenta que el trozo pequeño añadido es el falso creado por el atacante y no uno falso en una posición arbitraria.
Requisitos
- Crear 2 trozos falsos y enlazarlos entre sí y con el trozo legítimo en el small bin:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(necesitas modificar un puntero en el trozo liberado del small bin a través de alguna otra vulnerabilidad)legit.bk
->fake0
Entonces podrás asignar fake0
.
Ataque
- Se asigna un trozo pequeño (
legit
), luego se asigna otro para evitar la consolidación con el trozo superior. Luego, se liberalegit
(moviéndolo a la lista de bins no ordenados) y se asigna un trozo más grande, moviendolegit
al small bin. - Un atacante genera un par de trozos pequeños falsos y realiza el enlace necesario para evitar las comprobaciones de integridad:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(necesitas modificar un puntero en el trozo liberado del small bin a través de alguna otra vulnerabilidad)legit.bk
->fake0
- Se asigna un trozo pequeño para obtener
legit
, haciendo quefake0
esté en la lista superior de small bins - Se asigna otro trozo pequeño, obteniendo
fake0
como un trozo, permitiendo potencialmente leer/escribir punteros dentro de él.
Referencias
- https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- https://heap-exploitation.dhavalkapil.com/attacks/house_of_lore
- https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
{% hint style="success" %}
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)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.