House of Rabbit
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Capacità di modificare il puntatore o la dimensione del fast bin fd: Questo significa che puoi cambiare il puntatore in avanti di un chunk nel fastbin o la sua dimensione.
Capacità di attivare malloc_consolidate
: Questo può essere fatto allocando un grande chunk o unendo il chunk superiore, il che costringe l'heap a consolidare i chunk.
Creare chunk sovrapposti: Avere un chunk che si sovrappone a un altro, consentendo ulteriori manipolazioni dell'heap.
Falsificare chunk falsi: Ingannare l'allocatore facendogli trattare un chunk falso come un chunk legittimo durante le operazioni sull'heap.
Obiettivo: Creare un chunk sovrapposto manipolando la dimensione di un chunk fastbin.
Passo 1: Allocare Chunk
Allocchiamo due chunk di 0x40 byte ciascuno. Questi chunk saranno collocati nella lista fast bin una volta liberati.
Step 2: Free Chunks
We free both chunks, adding them to the fastbin list.
Passo 3: Modifica della dimensione del chunk
We change the size metadata of chunk1
to 0xa1. This is a crucial step to trick the allocator during consolidation.
Passo 4: Attivare malloc_consolidate
Allocare un grande blocco attiva la funzione malloc_consolidate
, unendo piccoli blocchi nel fast bin. La dimensione manipolata di chunk1
provoca una sovrapposizione con chunk2
.
Dopo la consolidazione, chunk1
sovrappone chunk2
, consentendo ulteriori sfruttamenti.
fd
Obiettivo: Creare un blocco falso manipolando il puntatore fd
del fast bin.
Passo 1: Allocare Blocchi
Spiegazione: Allochiamo due chunk, uno più piccolo e uno più grande, per preparare l'heap per il chunk falso.
Passo 2: Crea chunk falso
Scriviamo metadati falsi del chunk in chunk2
per simulare chunk più piccoli.
Passo 3: Libera chunk1
Spiegazione: Liberiamo chunk1
, aggiungendolo alla lista fastbin.
Passo 4: Modifica fd
di chunk1
Spiegazione: Cambiamo il puntatore forward (fd
) di chunk1
per puntare al nostro chunk falso all'interno di chunk2
.
Passo 5: Attivare malloc_consolidate
Allocare un grande blocco attiva di nuovo malloc_consolidate
, che elabora il blocco falso.
Il blocco falso diventa parte della lista fastbin, rendendolo un blocco legittimo per ulteriori sfruttamenti.
La tecnica House of Rabbit implica la modifica della dimensione di un blocco fast bin per creare blocchi sovrapposti o la manipolazione del puntatore fd
per creare blocchi falsi. Questo consente agli attaccanti di forgiare blocchi legittimi nell'heap, abilitando varie forme di sfruttamento. Comprendere e praticare questi passaggi migliorerà le tue abilità di sfruttamento dell'heap.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)