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

4.2 KiB

Kuća Einherjar

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

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 off-by-null razliku između njega i lažnog bloka
  • Veličina lažnog bloka takođe mora biti postavljena na istu veličinu kako bi se zaobišle provere ispravnosti
  • Za konstruisanje ovih blokova, biće vam potrebno curenje 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 off by one u B bloku, 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 generisanog ranije
  • 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 pokriti blok B
  • Kuća Einherjar se završava ovde
  • Ovo se može nastaviti sa brzim bin napadom ili trovanjem Tcache-om:
  • 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