PIE
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Binarni fajl kompajliran kao PIE, ili Position Independent Executable, znači da se program može učitati na različitim memorijskim lokacijama svaki put kada se izvrši, sprečavajući hardkodirane adrese.
Trik za iskorišćavanje ovih binarnih fajlova leži u iskorišćavanju relativnih adresa—ofseti između delova programa ostaju isti čak i ako se apsolutne lokacije menjaju. Da biste obišli PIE, potrebno je da iscuri jedna adresa, obično sa stack-a koristeći ranjivosti poput napada format string. Kada dobijete adresu, možete izračunati druge prema njihovim fiksnim ofsetima.
Koristan savet za iskorišćavanje PIE binarnih fajlova je da njihova osnovna adresa obično završava sa 000 zbog toga što su memorijske stranice jedinice randomizacije, veličine 0x1000 bajtova. Ova usklađenost može biti kritična provera ako eksploatacija ne funkcioniše kako se očekuje, ukazujući na to da li je pravilna osnovna adresa identifikovana.
Ili možete koristiti ovo za vašu eksploataciju, ako iscuri da se adresa nalazi na 0x649e1024
znate da je osnovna adresa 0x649e1000
i odatle možete samo izračunati ofsete funkcija i lokacija.
Da biste obišli PIE potrebno je iscuriti neku adresu učitanog binarnog fajla, postoje neke opcije za to:
Onemogućen ASLR: Ako je ASLR onemogućen, binarni fajl kompajliran sa PIE se uvek učitava na istoj adresi, stoga PIE će biti beskoristan jer će adrese objekata uvek biti na istom mestu.
Da vam bude data curenje (uobičajeno u lakim CTF izazovima, proverite ovaj primer)
Brute-force EBP i EIP vrednosti na stack-u dok ne iscurite prave:
Koristite arbitrarno čitanje ranjivost kao što je format string da iscurite adresu binarnog fajla (npr. sa stack-a, kao u prethodnoj tehnici) da dobijete osnovu binarnog fajla i koristite ofsete odatle. Pronađite primer ovde.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)