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

71 lines
5 KiB
Markdown

# Kuća Einherjar
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
## Osnovne informacije
### Kod
* Proverite primer sa [https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c](https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c)
* Ili sa [https://guyinatuxedo.github.io/42-house\_of\_einherjar/house\_einherjar\_exp/index.html#house-of-einherjar-explanation](https://guyinatuxedo.github.io/42-house\_of\_einherjar/house\_einherjar\_exp/index.html#house-of-einherjar-explanation) (možda će biti potrebno popuniti tcache)
### 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
* Off by one prelazak sa jednog bloka na drugi kako bi se izmenio prethodni u upotrebi
* Ukazati u `prev_size` zloupotrebljenog bloka off-by-one 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 potreban 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 je očišćen i podaci `prev_size` su prebrisani razlikom između mesta gde je alociran blok `C`, do lažnog bloka `A` generisanog pre
* Ovaj `prev_size` i veličina u lažnom bloku `A` moraju biti iste kako bi se zaobišle provere.
* Zatim, tcache je popunjen
* Zatim, `C` je oslobođen tako da se konsoliduje sa lažnim blokom `A`
* Zatim je kreiran 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:
* Oslobodite `B` da ga dodate u brzi bin
* `fd` od `B` je prebrisan tako da pokazuje na ciljnu adresu zloupotrebljavajući blok `D` (jer sadrži `B` unutra)&#x20;
* Zatim, izvršene su 2 alokacije i druga će **alocirati ciljnu adresu**
## Reference i drugi primeri
* [https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c](https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c)
* [https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_einherjar/#2016-seccon-tinypad](https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_einherjar/#2016-seccon-tinypad)
* Nakon oslobađanja pokazivača, oni nisu anulirani, pa je i dalje moguće pristupiti njihovim podacima. Stoga je blok smešten u nesortirani bin i procurili su pokazivači koje sadrži (curenje libc-a) a zatim je novi hip smešten u nesortirani bin i procurila je adresa hipa iz pokazivača koji dobija.
*
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>