House of Einherjar

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Osnovne informacije

Kod

Cilj

  • Cilj je alocirati memoriju na gotovo bilo kojoj specifičnoj adresi.

Zahtevi

  • Kreirati lažni chunk kada želimo da alociramo chunk:
  • Postaviti pokazivače da upućuju na sebe kako bi se zaobišli provere
  • Overflow od jednog bajta sa null bajtom iz jednog chunca u sledeći kako bi se modifikovao PREV_INUSE flag.
  • Naznačiti u prev_size lažnog chunca razliku između njega i lažnog chunca
  • Veličina lažnog chunca takođe mora biti postavljena na istu veličinu kako bi se zaobišle provere
  • Za konstrukciju ovih chunkova, biće vam potreban heap leak.

Napad

  • A lažni chunk se kreira unutar chunca koji kontroliše napadač, upućujući sa fd i bk na originalni chunk kako bi se zaobišle zaštite
  • 2 druga chunca (B i C) se alociraju
  • Zloupotrebljavajući off by one u B, prev in use bit se čisti i prev_size podaci se prepisuju sa razlikom između mesta gde je alociran C chunk, do lažnog A chunca generisanog pre
  • Ovaj prev_size i veličina u lažnom chunku A moraju biti iste kako bi se zaobišle provere.
  • Zatim, tcache se puni
  • Zatim, C se oslobađa kako bi se konsolidovao sa lažnim chunkom A
  • Zatim, novi chunk D se kreira koji će početi u lažnom A chunku i pokriti B chunk
  • Kuća Einherjar se ovde završava
  • Ovo se može nastaviti brzim bin napadom ili Tcache trovanjem:
  • Oslobodite B da ga dodate u brzi bin / Tcache
  • B's fd se prepisuje tako da pokazuje na ciljnu adresu zloupotrebljavajući D chunk (pošto sadrži B unutar)
  • Zatim, vrše se 2 malloc-a i drugi će biti alociranje ciljne adrese

Reference i drugi primeri

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks