3.1 KiB
Relro
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 svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJATELJSTVO!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, 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.
Relro
RELRO označava Relocation Read-Only, i to je sigurnosna funkcija koja se koristi u binarnim fajlovima kako bi se umanjili rizici povezani sa GOT (Global Offset Table) prepisivanjem. Razložićemo koncept na dva različita tipa radi jasnoće: Partial RELRO i Full RELRO.
Partial RELRO
Partial RELRO koristi jednostavniji pristup poboljšanju sigurnosti bez značajnog uticaja na performanse binarnog fajla. Pomeranjem GOT iznad promenljivih programa u memoriji, Partial RELRO ima za cilj da spreči preplavljivanje bafera da dosegne i ošteti GOT.
Ovo ne sprečava zloupotrebu GOT-a od strane ranjivosti proizvolnog pisanja.
Full RELRO
Full RELRO podiže zaštitu tako što čini GOT i sekciju .fini_array potpuno samo za čitanje. Kada binarni fajl počne, sve adrese funkcija se rešavaju i učitavaju u GOT, zatim, GOT se označava kao samo za čitanje, efikasno sprečavajući bilo kakve modifikacije tokom izvršavanja.
Međutim, trgovina sa Full RELRO-om je u pogledu performansi i vremena pokretanja. Zbog potrebe da se reše svi dinamički simboli pri pokretanju pre označavanja GOT-a kao samo za čitanje, binarni fajlovi sa omogućenim Full RELRO-om mogu imati duže vreme učitavanja. Ovaj dodatni početni trošak je razlog zašto Full RELRO nije podrazumevano omogućen u svim binarnim fajlovima.
Moguće je proveriti da li je Full RELRO omogućen u binarnom fajlu sa:
readelf -l /proc/ID_PROC/exe | grep BIND_NOW
Bypass
Ako je omogućen puni RELRO, jedini način da ga zaobiđete je pronaći drugi način koji ne zahteva pisanje u GOT tabelu kako biste dobili proizvoljno izvršenje.
Imajte na umu da je GOT biblioteke obično delimično RELRO, pa je moguće izmeniti je pomoću proizvoljnog pisanja. Više informacija u Targetting libc GOT entries.