hacktricks/reversing-and-exploiting/linux-exploiting-basic-esp/common-binary-protections/relro.md

3.8 KiB

Relro

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Relro

RELRO staan vir Relocation Read-Only, en dit is 'n sekuriteitskenmerk wat in binêre lêers gebruik word om die risiko's wat verband hou met GOT (Global Offset Table) oorskrywings te verminder. Laat ons die konsep opbreek in sy twee onderskeie tipes vir duidelikheid: Gedeeltelike RELRO en Volledige RELRO.

Gedeeltelike RELRO

Gedeeltelike RELRO neem 'n eenvoudiger benadering om sekuriteit te verbeter sonder om die binêre lêer se prestasie aansienlik te beïnvloed. Deur die GOT bo die program se veranderlikes in die geheue te posisioneer, mik Gedeeltelike RELRO daarop om te voorkom dat buffer-oorvloeiinge die GOT bereik en dit beskadig.

Dit voorkom nie dat die GOT misbruik word vanaf willekeurige skryf kwesbaarhede nie.

Volledige RELRO

Volledige RELRO verhoog die beskerming deur die GOT heeltemal skryfbaar te maak. Wanneer die binêre lêer begin, word al die funksie-adresse opgelos en in die GOT gelaai, waarna die GOT as skryfbaar gemerk word, wat enige wysigings daaraan tydens uitvoering voorkom.

Die afweging met Volledige RELRO is egter in terme van prestasie en aanvangstyd. Omdat dit vereis dat alle dinamiese simbole by aanvang opgelos word voordat die GOT as skryfbaar gemerk word, kan binêre lêers met Volledige RELRO wat geaktiveer is, langer laaitye ervaar. Hierdie addisionele aanvangsoorskot is waarom Volledige RELRO nie standaard in alle binêre lêers geaktiveer word nie.

Dit is moontlik om te sien of Volledige RELRO geaktiveer is in 'n binêre lêer met:

readelf -l /proc/ID_PROC/exe | grep BIND_NOW
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: