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

62 lines
3.9 KiB
Markdown
Raw Normal View History

# Kuća Einherjara
<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)
### Cilj
* Cilj je alocirati memoriju na gotovo bilo kojoj određenoj adresi.
### Zahtevi
* Greška od jednog bajta iznad zaglavlja sledećeg bloka kako bi se izmenio prethodni u upotrebi
* Biti u mogućnosti da se izmeni podatak `prev_size`, koji je deo trenutnog bloka (na kraju)
* Curenje hipa
### Napad
* Kreira se lažni blok unutar bloka koji kontroliše napadač, usmeravajući sa `fd` i `bk` na originalni blok kako bi se zaobišle zaštite
* Kreiraju se još 2 bloka (`B` i `C`)
* Iskorišćavanjem greške od jednog u bloku `B`, bit `prev in use` se čisti i podatak `prev_size` se prepisuje razlikom između mesta gde je blok `C` alociran, do lažnog bloka `A` koji je generisan pre.
* Ovaj `prev_size` i veličina lažnog bloka `A` moraju biti isti kako bi se zaobišle provere.
* Zatim se Tcache popunjava
* Zatim se `C` oslobađa kako bi se konsolidovao sa lažnim blokom `A`
* Zatim se kreira novi blok `D` koji će početi u lažnom bloku `A` i pokriti blok `B`
* Zatim se oslobađa `B` i njegov `fd` se prepisuje na ciljnu adresu tako što se usmerava na ciljnu adresu iskorišćavajući blok `D` koji ga sadrži.
* Zatim se vrše 2 alokacije jer će druga sadržati ciljnu adresu
## Reference
* [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)
<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>