PIE
Reading time: 3 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
Binary iliyotengenezwa kama PIE, au Position Independent Executable, inamaanisha programu inaweza kupakiwa katika maeneo tofauti ya kumbukumbu kila wakati inatekelezwa, ikizuia anwani zilizowekwa kwa nguvu.
Njia ya kutumia hizi binaries inategemea kutumia anwani za uhusiano—mipaka kati ya sehemu za programu inabaki sawa hata kama maeneo halisi yanabadilika. Ili kuzidi PIE, unahitaji tu kuvuja anwani moja, kawaida kutoka kwa stack kwa kutumia udhaifu kama mashambulizi ya format string. Mara unapokuwa na anwani, unaweza kuhesabu zingine kwa mipaka yao iliyowekwa.
Kidokezo muhimu katika kutumia binaries za PIE ni kwamba anwani yao ya msingi kawaida huishia na 000 kutokana na kurasa za kumbukumbu kuwa vitengo vya randomization, vilivyopimwa kwa 0x1000 bytes. Mwelekeo huu unaweza kuwa ukaguzi muhimu ikiwa exploit haifanyi kazi kama inavyotarajiwa, ikionyesha ikiwa anwani sahihi ya msingi imebainishwa.
Au unaweza kutumia hii kwa exploit yako, ikiwa unavuja kwamba anwani iko katika 0x649e1024
unajua kwamba anwani ya msingi ni 0x649e1000
na kutoka hapo unaweza tu kuhesabu mipaka ya kazi na maeneo.
Bypasses
Ili kupita PIE inahitajika kuvuja anwani fulani ya binary iliyopakiwa, kuna chaguzi kadhaa kwa hili:
- ASLR Imezimwa: Ikiwa ASLR imezimwa, binary iliyotengenezwa na PIE daima itawekwa katika anwani ile ile, kwa hivyo PIE itakuwa haina maana kwani anwani za vitu daima zitakuwa mahali pamoja.
- Kuwa na uvujaji (kawaida katika changamoto rahisi za CTF, angalia mfano huu)
- Brute-force EBP na EIP values katika stack hadi uvuja anwani sahihi:
{{#ref}} bypassing-canary-and-pie.md {{#endref}}
- Tumia udhaifu wa kusoma bila mpangilio kama format string kuvuja anwani ya binary (kwa mfano kutoka kwa stack, kama katika mbinu ya awali) ili kupata msingi wa binary na kutumia mipaka kutoka hapo. Pata mfano hapa.
References
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.