mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
71 lines
5 KiB
Markdown
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) 
|
|
* 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>
|