House of Lore | Attacco Small bin
Reading time: 3 minutes
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.
Informazioni di base
Codice
- Controlla quello da https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Questo non funziona
- Oppure: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Questo non funziona nemmeno se cerca di bypassare alcuni controlli ottenendo l'errore:
malloc(): unaligned tcache chunk detected
- Questo esempio funziona ancora: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Obiettivo
- Inserire un finto small chunk nel small bin in modo che sia possibile allocarlo.
Nota che il small chunk aggiunto è quello falso creato dall'attaccante e non uno falso in una posizione arbitraria.
Requisiti
- Creare 2 fake chunks e collegarli insieme e con il chunk legittimo nel small bin:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(devi modificare un puntatore nel chunk del small bin liberato tramite qualche altra vulnerabilità)legit.bk
->fake0
Poi sarai in grado di allocare fake0
.
Attacco
- Un small chunk (
legit
) viene allocato, poi un altro viene allocato per prevenire la consolidazione con il top chunk. Poi,legit
viene liberato (spostandolo nella lista del bin non ordinato) e viene allocato un chunk più grande, spostandolegit
nel small bin. - Un attaccante genera un paio di fake small chunks e fa il collegamento necessario per bypassare i controlli di sanità:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(devi modificare un puntatore nel chunk del small bin liberato tramite qualche altra vulnerabilità)legit.bk
->fake0
- Un small chunk viene allocato per ottenere legit, rendendo
fake0
nella lista principale dei small bins - Un altro small chunk viene allocato, ottenendo
fake0
come chunk, permettendo potenzialmente di leggere/scrivere puntatori al suo interno.
Riferimenti
- 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
tip
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.