House of Einherjar

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

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

Last updated