hacktricks/binary-exploitation/common-binary-protections-and-bypasses/aslr/ret2ret.md

4.9 KiB
Raw Blame History

Ret2ret & Ret2pop

AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Ret2ret

Bu tekniğin ana amacı, mevcut bir işaretçiyi kötüye kullanarak ASLR'yi atlamaya çalışmaktır.

Temelde, yığın taşmaları genellikle dizilerden kaynaklanır ve diziler bellekte sonunda bir nul bayt ile biter. Bu, yığında zaten mevcut olan bir işaretçinin işaret ettiği yeri azaltmaya çalışma olanağı sağlar. Dolayısıyla, eğer yığın 0xbfffffdd içeriyorsa, bu taşma onu 0xbfffff00'e dönüştürebilir (son sıfır baytına dikkat edin).

Eğer o adres yığında shellcodemuzu işaret ediyorsa, akışın o adrese ulaşmasını sağlamak için ret komutuna adresler ekleyerek bu adrese ulaşılabilir.

Bu nedenle saldırı şu şekilde olacaktır:

  • NOP kaydırıcısı
  • Shellcode
  • Yığını EIP'den ret adreslerine (RET kaydırıcısı) üzerine yazın
  • Yığını değiştirerek bir adresi sıfır bayt ekleyerek (0x00), yığını NOP kaydırıcısına işaret edecek şekilde değiştirin

Bu bağlantıyı takip ederek savunmasız bir ikili örneğini ve bu bağlantıdaki saldırıyı görebilirsiniz.

Ret2pop

Eğer değiştirmek istemediğiniz yığındaki mükemmel bir işaretçi bulabilirseniz (ret2rette en düşük baytı 0x00 ile değiştirdik), aynı ret2ret saldırısını gerçekleştirebilirsiniz, ancak RET kaydırıcısının uzunluğu 1 azaltılmalıdır (böylece son 0x00 verileri mükemmel işaretçiden önceki verileri üzerine yazar), ve RET kaydırıcısının son adresi pop <reg>; ret'ye işaret etmelidir.
Bu şekilde, mükemmel işaretçiden önceki veriler yığından kaldırılacaktır (bu, 0x00 tarafından etkilenen verilerdir) ve son ret mükemmel adrese işaret edecektir yığında herhangi bir değişiklik olmadan.

Bu bağlantıyı takip ederek savunmasız bir ikili örneğini ve bu bağlantıdaki saldırıyı görebilirsiniz.

Referanslar

AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları: