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

4.2 KiB

Kuća Einherjar

{% hint style="success" %} Naučite i vežbajte hakovanje AWS:HackTricks Obuka AWS Crveni Tim Stručnjak (ARTE)
Naučite i vežbajte hakovanje GCP: HackTricks Obuka GCP Crveni Tim Stručnjak (GRTE)

Podržite HackTricks
{% endhint %}

Osnovne informacije

Kod

Cilj

  • Cilj je alocirati memoriju na gotovo bilo kojoj određenoj adresi.

Zahtevi

  • Kreirati lažan blok kada želimo da alociramo blok:
  • Postaviti pokazivače da pokazuju na sebe kako bi se zaobišle provere ispravnosti
  • Prekoračenje za jedan bajt sa nulom iz jednog bloka u sledeći kako bi se izmenila oznaka PREV_INUSE
  • Ukazati u prev_size zloupotrebljenog bloka sa nulom razliku između njega i lažnog bloka
  • Veličina lažnog bloka takođe mora biti postavljena iste veličine kako bi se zaobišle provere ispravnosti
  • Za konstruisanje ovih blokova, biće vam potrebno procurivanje hipa.

Napad

  • Kreiran je A lažan blok unutar bloka koji kontroliše napadač pokazujući sa fd i bk na originalni blok kako bi se zaobišle zaštite
  • Alocirana su još 2 bloka (B i C)
  • Zloupotrebom prekoračenja za jedan u bloku B, bit prev in use se čisti i podaci prev_size se prepisuju sa razlikom između mesta gde je alociran blok C, do lažnog bloka A koji je generisan pre
  • Ovaj prev_size i veličina u lažnom bloku A moraju biti iste kako bi se zaobišle provere.
  • Zatim, tcache se popunjava
  • Zatim, C se oslobađa kako bi se konsolidovao sa lažnim blokom A
  • Zatim, kreira se novi blok D koji će početi u lažnom bloku A i pokrivati blok B
  • Kuća Einherjar se završava ovde
  • Ovo se može nastaviti sa brzim bin napadom ili trovanjem Tcache-a:
  • Oslobodite B da ga dodate u brzi bin / Tcache
  • fd od B se prepisuje tako da pokazuje na ciljnu adresu zloupotrebom bloka D (jer sadrži B unutra)
  • Zatim, vrše se 2 alokacije i druga će alocirati ciljnu adresu

Reference i drugi primeri