mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
40 lines
2.9 KiB
Markdown
40 lines
2.9 KiB
Markdown
|
# Relro
|
|||
|
|
|||
|
<details>
|
|||
|
|
|||
|
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin!</summary>
|
|||
|
|
|||
|
Diğer HackTricks'i destekleme yolları:
|
|||
|
|
|||
|
- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
|
|||
|
- [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
|
|||
|
- [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
|
|||
|
- **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
|
|||
|
- **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
|||
|
|
|||
|
</details>
|
|||
|
|
|||
|
## Relro
|
|||
|
|
|||
|
**RELRO**, **Relocation Read-Only** kelimelerinin kısaltmasıdır ve **GOT (Global Offset Table)** üzerine yazılmış riskleri azaltmak için ikili dosyalarda kullanılan bir güvenlik özelliğidir. Kavramı açıklığa kavuşturmak için **Partial RELRO** ve **Full RELRO** olmak üzere iki farklı türüne ayrılabilir.
|
|||
|
|
|||
|
### **Partial RELRO**
|
|||
|
|
|||
|
**Partial RELRO**, ikili dosyanın performansını önemli ölçüde etkilemeden güvenliği artırmak için daha basit bir yaklaşım benimser. **GOT'yi programın değişkenlerinin üzerine yerleştirerek, Partial RELRO, buffer taşmalarının GOT'a ulaşmasını ve onu bozmasını engellemeyi amaçlar**.
|
|||
|
|
|||
|
Bu, **GOT'un** keyfi yazma **zafiyetlerinden** kötüye kullanılmasını **engellemez**.
|
|||
|
|
|||
|
### **Full RELRO**
|
|||
|
|
|||
|
**Full RELRO**, **GOT ve .fini\_array** bölümünü tamamen **salt okunur** hale getirerek korumayı artırır. İkili başladığında tüm işlev adresleri çözülür ve GOT'a yüklenir, ardından GOT salt okunur olarak işaretlenir, böylece çalışma zamanında herhangi bir değişikliğe izin verilmez.
|
|||
|
|
|||
|
Ancak, Full RELRO ile performans ve başlatma süresi arasında bir takas yapılır. Çünkü GOT'u salt okunur olarak işaretlemek için başlangıçta tüm dinamik sembollerin çözülmesini gerektirir, **Full RELRO etkinleştirilmiş ikili dosyalar daha uzun yükleme süreleri yaşayabilir**. Bu ek başlangıç maliyeti nedeniyle Full RELRO varsayılan olarak tüm ikili dosyalarda etkinleştirilmez.
|
|||
|
|
|||
|
Bir ikili dosyada Full RELRO'nun etkin olup olmadığını görmek mümkündür:
|
|||
|
```bash
|
|||
|
readelf -l /proc/ID_PROC/exe | grep BIND_NOW
|
|||
|
```
|
|||
|
## Geçme
|
|||
|
|
|||
|
Tam RELRO etkinleştirildiğinde, bunu atlatmanın tek yolu, keyfi yürütme elde etmek için GOT tablosuna yazma gerektirmeyen başka bir yol bulmaktır.
|