Ret2ret & Reo2pop
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Bu tekniğin ana amacı, yığın içindeki mevcut bir işaretçiyi kötüye kullanarak ASLR'yi atlatmaya çalışmaktır.
Temelde, yığın taşmaları genellikle dizelerden kaynaklanır ve dizeler bellekte sonunda bir null byte ile biter. Bu, yığında zaten mevcut olan bir işaretçi tarafından gösterilen yeri azaltmayı sağlar. Yani eğer yığın 0xbfffffdd
içeriyorsa, bu taşma onu 0xbfffff00
'a dönüştürebilir (son sıfırlı byte'a dikkat edin).
Eğer bu adres yığında shellcode'umuza işaret ediyorsa, akışı bu adrese ulaştırmak mümkündür ret
talimatına adresler ekleyerek bu adres ulaşılana kadar.
Bu nedenle saldırı şöyle olacaktır:
NOP sled
Shellcode
EIP'den yığını ret
adresleri ile üzerine yazmak (RET sled)
Dize tarafından eklenen 0x00, yığın içindeki bir adresi değiştirerek NOP sled'e işaret etmesini sağlar.
bu bağlantıyı takip ederek savunmasız bir ikili örneğini görebilirsiniz ve bu bağlantıda ise istismarı görebilirsiniz.
Eğer değiştirmek istemediğiniz yığında mükemmel bir işaretçi bulursanız (ret2ret'te son en düşük byte'ı 0x00
olarak değiştiriyoruz), aynı ret2ret
saldırısını gerçekleştirebilirsiniz, ancak RET sled'in uzunluğu 1 azaltılmalıdır (böylece son 0x00
mükemmel işaretçinin hemen öncesindeki veriyi üzerine yazar) ve RET sled'in son adresi pop <reg>; ret
'e işaret etmelidir.
Bu şekilde, mükemmel işaretçiden önceki veri yığından kaldırılacaktır (bu 0x00
tarafından etkilenen veridir) ve son ret
, yığında mükemmel adrese işaret edecektir herhangi bir değişiklik olmadan.
bu bağlantıyı takip ederek savunmasız bir ikili örneğini görebilirsiniz ve bu bağlantıda ise istismarı görebilirsiniz.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)