House of Rabbit
Last updated
Last updated
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)
Capacità di modificare il puntatore fd o la dimensione del fast bin: Ciò 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 chunk grande o unendo il chunk superiore, il che costringe l'heap a consolidare i chunk.
Creare chunk sovrapposti: Per far sì che un chunk si sovrapponga a un altro, consentendo ulteriori manipolazioni dell'heap.
Forgiare chunk falsi: Per ingannare l'allocatore affinché tratti 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
Passo 2: Liberare i Chunk
Passo 3: Modifica della Dimensione del Chunk
Passo 4: Attivare malloc_consolidate
Allocare un grosso blocco attiva la funzione malloc_consolidate
, unendo i piccoli blocchi nel fast bin. La dimensione manipolata di chunk1
fa sì che si sovrapponga a chunk2
.
Dopo la consolidazione, chunk1
si sovrappone a chunk2
, consentendo ulteriori sfruttamenti.
fd
Obiettivo: Creare un blocco falso manipolando il puntatore fd
del fast bin.
Passo 1: Allocare i Blocchi
Spiegazione: Allociamo due chunk, uno più piccolo e uno più grande, per impostare l'heap per il chunk falso.
Passo 2: Creare un chunk falso
Passo 3: Liberare chunk1
Spiegazione: Liberiamo chunk1
, aggiungendolo alla lista fastbin.
Passo 4: Modifica fd
di chunk1
Spiegazione: Cambiamo il puntatore in avanti (fd
) di chunk1
in modo che punti al nostro chunk falso all'interno di chunk2
.
Passo 5: Attivare malloc_consolidate
Allocare di nuovo un grosso blocco attiva malloc_consolidate
, che elabora il blocco falso.
Il blocco falso diventa parte della lista fastbin, rendendolo un blocco legittimo per ulteriori sfruttamenti.
La tecnica della House of Rabbit coinvolge la modifica della dimensione di un blocco fast bin per creare blocchi sovrapposti o la manipolazione del puntatore fd
per creare blocchi falsi. Ciò consente agli attaccanti di forgiare blocchi legittimi nell'heap, consentendo vari tipi di sfruttamento. Comprendere e mettere in pratica questi passaggi migliorerà le tue abilità di sfruttamento dell'heap.