Relro

Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

Relro

RELRO, Yer Değiştirme Salt Okunur'un kısaltmasıdır ve GOT (Global Offset Table) üzerine yazma risklerini 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, tampon 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 açısından bir takas yapılır. GOT'u salt okunur olarak işaretlemek için başlangıçta tüm dinamik sembolleri çözmesi gerektiğinden, 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:

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.

LIBC'nin GOT tablosu genellikle Kısmi RELRO olduğundan, keyfi yazma ile değiştirilebilir. Daha fazla bilgi için LIBC GOT girişlerini hedefleme.

Last updated