.. | ||
bypassing-canary-and-pie.md | ||
README.md |
PIE
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @hacktricks_live.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Binarni fajl kompajliran kao PIE, ili Position Independent Executable, znači da se program može učitati na različite memorijske lokacije svaki put kada se izvrši, sprečavajući hardkodirane adrese.
Trik za eksploataciju ovih binarnih fajlova leži u eksploatisanju relativnih adresa—offseti između delova programa ostaju isti čak i ako se apsolutne lokacije promene. Da biste zaobišli PIE, potrebno je samo procuriti jednu adresu, obično sa steka koristeći ranjivosti poput napada format string-om. Kada imate jednu adresu, možete izračunati ostale pomoću njihovih fiksnih offseta.
Korisna napomena u eksploatisanju PIE binarnih fajlova je da njihova bazna adresa obično završava sa 000 zbog toga što su memorijske stranice jedinice randomizacije, veličine 0x1000 bajtova. Ovaj poravnanje može biti ključna provera ako eksploit ne radi kako se očekuje, ukazujući da li je identifikovana tačna bazna adresa.
Ili možete koristiti ovo za vaš eksploit, ako procurite da se adresa nalazi na 0x649e1024
znate da je bazna adresa 0x649e1000
i odande možete jednostavno izračunati offsete funkcija i lokacija.
Zaobilazi
Da biste zaobišli PIE potrebno je procureti neku adresu učitanog binarnog fajla, postoje neke opcije za to:
- Onemogućen ASLR: Ako je ASLR onemogućen, binarni fajl kompajliran sa PIE će uvek biti učitan na istu adresu, stoga će PIE biti beskoristan jer će adrese objekata uvek biti na istom mestu.
- Biti dat procurak (često u lakim CTF izazovima, proverite ovaj primer)
- Brute-force vrednosti EBP i EIP na steku dok ne procurite tačne:
{% content-ref url="bypassing-canary-and-pie.md" %} bypassing-canary-and-pie.md {% endcontent-ref %}
- Koristite ranjivost proizvoljnog čitanja kao što je format string da procurite adresu binarnog fajla (npr. sa steka, kao u prethodnoj tehnici) da biste dobili bazu binarnog fajla i koristili offsete odande. Pronađite primer ovde.
Reference
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @hacktricks_live.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.