House of Force

Reading time: 5 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

Informazioni di Base

Codice

  • Questa tecnica è stata corretta (qui) e produce questo errore: malloc(): corrupted top size
  • Puoi provare il codice da qui per testarlo se vuoi.

Obiettivo

  • L'obiettivo di questo attacco è essere in grado di allocare un chunk in un indirizzo specifico.

Requisiti

  • Un overflow che consenta di sovrascrivere la dimensione dell'intestazione del top chunk (ad es. -1).
  • Essere in grado di controllare la dimensione dell'allocazione della heap.

Attacco

Se un attaccante vuole allocare un chunk nell'indirizzo P per sovrascrivere un valore qui. Inizia sovrascrivendo la dimensione del top chunk con -1 (forse con un overflow). Questo assicura che malloc non utilizzerà mmap per alcuna allocazione poiché il Top chunk avrà sempre abbastanza spazio.

Poi, calcola la distanza tra l'indirizzo del top chunk e lo spazio target da allocare. Questo perché verrà eseguita una malloc con quella dimensione per spostare il top chunk in quella posizione. Questo è come la differenza/dimensione può essere facilmente calcolata:

c
// From https://github.com/shellphish/how2heap/blob/master/glibc_2.27/house_of_force.c#L59C2-L67C5
/*
* The evil_size is calulcated as (nb is the number of bytes requested + space for metadata):
* new_top = old_top + nb
* nb = new_top - old_top
* req + 2sizeof(long) = new_top - old_top
* req = new_top - old_top - 2sizeof(long)
* req = target - 2sizeof(long) - old_top - 2sizeof(long)
* req = target - old_top - 4*sizeof(long)
*/

Pertanto, allocare una dimensione di target - old_top - 4*sizeof(long) (i 4 long sono dovuti ai metadati del top chunk e del nuovo chunk quando allocato) sposterà il top chunk all'indirizzo che vogliamo sovrascrivere.
Poi, eseguire un altro malloc per ottenere un chunk all'indirizzo target.

Riferimenti e Altri Esempi

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