mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
40 lines
2.8 KiB
Markdown
40 lines
2.8 KiB
Markdown
|
# Relro
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
|
||
|
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 PRIJATELJE**](https://github.com/sponsors/carlospolop)!
|
||
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
|
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||
|
|
||
|
</details>
|
||
|
|
||
|
## 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 da GOT** bude zloupotrebljen **iz ranjivosti za proizvoljno pisanje**.
|
||
|
|
||
|
### **Full RELRO**
|
||
|
|
||
|
**Full RELRO** pojačava 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 je u pogledu performansi i vremena pokretanja. Zbog toga što zahteva rešavanje svih dinamičkih simbola pri pokretanju pre označavanja GOT 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:
|
||
|
```bash
|
||
|
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.
|