House of Force

Reading time: 5 minutes

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks

Informaci贸n B谩sica

C贸digo

  • Esta t茅cnica fue parcheada (aqu铆) y produce este error: malloc(): corrupted top size
  • Puedes probar el c贸digo de aqu铆 para testearlo si lo deseas.

Objetivo

  • El objetivo de este ataque es poder asignar un chunk en una direcci贸n espec铆fica.

Requisitos

  • Un desbordamiento que permita sobrescribir el tama帽o del encabezado del chunk superior (por ejemplo, -1).
  • Poder controlar el tama帽o de la asignaci贸n de heap.

Ataque

Si un atacante quiere asignar un chunk en la direcci贸n P para sobrescribir un valor aqu铆. Comienza sobrescribiendo el tama帽o del chunk superior con -1 (quiz谩s con un desbordamiento). Esto asegura que malloc no usar谩 mmap para ninguna asignaci贸n ya que el chunk superior siempre tendr谩 suficiente espacio.

Luego, calcula la distancia entre la direcci贸n del chunk superior y el espacio objetivo para asignar. Esto se debe a que se realizar谩 un malloc con ese tama帽o para mover el chunk superior a esa posici贸n. As铆 es como se puede calcular f谩cilmente la diferencia/tama帽o:

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)
*/

Por lo tanto, asignar un tama帽o de target - old_top - 4*sizeof(long) (los 4 longs son por los metadatos del chunk superior y del nuevo chunk cuando se asigna) mover谩 el chunk superior a la direcci贸n que queremos sobrescribir.
Luego, haz otro malloc para obtener un chunk en la direcci贸n objetivo.

Referencias y Otros Ejemplos

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks