mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 22:20:43 +00:00
4.9 KiB
4.9 KiB
House of Lore | Ataque Small bin
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si quieres ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.
Información Básica
Código
- Revisa el de 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 comprobaciones 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 que el atacante crea, 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 no ordenada) 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 trozos pequeños - 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
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si quieres ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.