hacktricks/binary-exploitation/libc-heap/house-of-einherjar.md

5.5 KiB

Casa de Einherjar

{% hint style="success" %} Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks
{% endhint %}

Información Básica

Código

Objetivo

  • El objetivo es asignar memoria en casi cualquier dirección específica.

Requisitos

  • Crear un chunk falso cuando queremos asignar un chunk:
  • Establecer punteros para que apunten a sí mismos y evadir las comprobaciones de integridad
  • Desbordar un byte con un byte nulo de un chunk al siguiente para modificar la bandera PREV_INUSE.
  • Indicar en el prev_size del chunk abusado por el off-by-null la diferencia entre él mismo y el chunk falso.
  • El tamaño del chunk falso también debe haber sido establecido en el mismo tamaño para evadir las comprobaciones de integridad.
  • Para construir estos chunks, necesitarás una fuga de heap.

Ataque

  • Se crea un chunk falso dentro de un chunk controlado por el atacante apuntando con fd y bk al chunk original para evadir protecciones.
  • Se asignan 2 otros chunks (B y C).
  • Abusando del off-by-one en el chunk B, se limpia el bit prev in use y se sobrescribe los datos de prev_size con la diferencia entre el lugar donde se asigna el chunk C, al chunk falso A generado antes.
  • Este prev_size y el tamaño en el chunk falso A deben ser iguales para evadir las comprobaciones.
  • Luego, se llena la tcache.
  • Luego, se libera C para que se consolide con el chunk falso A.
  • Luego, se crea un nuevo chunk D que comenzará en el chunk falso A y cubrirá el chunk B.
  • La casa de Einherjar termina aquí.
  • Esto puede continuar con un ataque de fast bin o envenenamiento de Tcache:
  • Liberar B para agregarlo al fast bin / Tcache
  • Se sobrescribe el fd de B haciendo que apunte a la dirección objetivo abusando del chunk D (ya que contiene B dentro)
  • Luego, se realizan 2 mallocs y el segundo va a estar asignando la dirección objetivo

Referencias y otros ejemplos

{% hint style="success" %} Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks
{% endhint %}