mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
4.8 KiB
4.8 KiB
House of Lore | Attacco Small bin
{% hint style="success" %}
Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)
Sostieni 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 a 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
- Anche questo non funziona anche se cerca di aggirare 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 falso small chunk nel small bin in modo da poterlo allocare.
Nota che il piccolo chunk aggiunto è quello falso creato dall'attaccante e non uno falso in una posizione arbitraria.
Requisiti
- Creare 2 chunk falsi e collegarli insieme e con il chunk legittimo nel small bin:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(è necessario modificare un puntatore nel chunk del small bin liberato tramite qualche altra vulnerabilità)legit.bk
->fake0
In questo modo sarà possibile allocare fake0
.
Attacco
- Viene allocato un piccolo chunk (
legit
), quindi un altro viene allocato per evitare la consolidazione con il top chunk. Successivamente,legit
viene liberato (spostandolo nell'elenco dei chunk non ordinati) e viene allocato un chunk più grande, spostandolegit
nel small bin. - Un attaccante genera un paio di falsi small chunks e crea i collegamenti necessari per aggirare i controlli di integrità:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(è necessario modificare un puntatore nel chunk del small bin liberato tramite qualche altra vulnerabilità)legit.bk
->fake0
- Viene allocato un piccolo chunk per ottenere
legit
, facendo diventarefake0
il primo della lista dei piccoli bin - Viene allocato un altro piccolo chunk, ottenendo
fake0
come chunk, consentendo 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
{% hint style="success" %}
Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)
Sostieni 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 a HackTricks e HackTricks Cloud repos di Github.