House of Einherjar
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Check the example from https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c
Or the one from https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation (možda ćete morati da popunite tcache)
Cilj je alocirati memoriju na gotovo bilo kojoj specifičnoj adresi.
Kreirati lažni chunk kada želimo da alociramo chunk:
Postaviti pokazivače da upućuju na sebe kako bi zaobišli provere
Prelivanje od jednog bajta sa nul bajtom iz jednog chunk-a u drugi kako bi se izmenila PREV_INUSE
oznaka.
Naznačiti u prev_size
lažnog chunk-a razliku između njega i lažnog chunk-a
Veličina lažnog chunk-a takođe mora biti postavljena na istu veličinu kako bi se zaobišle provere
Za konstrukciju ovih chunk-ova, biće vam potreban heap leak.
A
lažni chunk se kreira unutar chunk-a koji kontroliše napadač, upućujući sa fd
i bk
na originalni chunk kako bi se zaobišle zaštite
Alociraju se još 2 chunk-a (B
i C
)
Zloupotrebljavajući prelivanje od jedan 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
chunk-a generisanog pre
Ova prev_size
i veličina u lažnom chunk-u 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 chunk-om A
Zatim, kreira se novi chunk D
koji će početi u lažnom A
chunk-u i pokrivati 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
Nakon oslobađanja pokazivača, oni nisu postavljeni na null, tako da je još uvek moguće pristupiti njihovim podacima. Stoga se chunk postavlja u nesortirani bin i curi pokazivače koje sadrži (libc leak) i zatim se novi heap postavlja na nesortirani bin i curi adresu heap-a iz pokazivača koji dobija.
Null-byte prelivanje greška u strtok
.
Koristite House of Einherjar da dobijete situaciju preklapanja chunk-ova i završite sa Tcache trovanjem kako biste dobili proizvoljnu write primitivu.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)