Ret2ret & Reo2pop

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 teknikteki ana amaç, ASLR'yi atlayarak yığın içindeki mevcut bir işaretçiyi kötüye kullanmaktır.

Temelde, yığın taşmaları genellikle dizilerden kaynaklanır ve bellekte diziler sonunda bir nul bayt ile biter. Bu, yığında zaten var 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 bu adres yığındaki shellcode'umuza işaret ediyorsa, akışın bu 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ı

  • Shellcode

  • Yığını EIP'den ret adreslerine (RET kaydırıcı) kadar üzerine yazın

  • Yığını değiştirerek bir adresi NOP kaydırıcısına işaret edecek şekilde 0x00 ekleyin

Bu bağlantıyı tıklayarak savunmasız bir ikili örneğini ve bu bağlantıda 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ının uzunluğu 1 azaltılmalıdır (böylece son 0x00 veriye işaret eden mükemmel işaretçiden önceki veriyi üzerine yazar), ve RET kaydırıcının son adresi pop <reg>; ret'ye 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 mükemmel adrese işaret edecektir ve yığında herhangi bir değişiklik olmadan.

Bu bağlantıyı tıklayarak savunmasız bir ikili örneğini ve bu bağlantıda 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ı:

Last updated