House of Lore | Attacco Small bin
Reading time: 3 minutes
tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
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 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->fake1fake1.fd->fake0fake0.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,legitviene liberato (spostandolo nella lista del bin non ordinato) e viene allocato un chunk più grande, spostandolegitnel small bin. - Un attaccante genera un paio di fake small chunks e fa il collegamento necessario per bypassare i controlli di sanità:
fake0.bk->fake1fake1.fd->fake0fake0.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
fake0nella lista principale dei small bins - Un altro small chunk viene allocato, ottenendo
fake0come 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 il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
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 github.
HackTricks