Ret2ret & Reo2pop

Reading time: 3 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

Ret2ret

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 dizeler tarafından tetiklenir ve dizeler bellekte bir null byte ile biter. Bu, yığında zaten mevcut olan bir işaretçinin gösterdiği yeri azaltmaya çalışmayı sağlar. Yani eğer yığın 0xbfffffdd içeriyorsa, bu taşma onu 0xbfffff00'a dönüştürebilir (son sıfırlanmış byte'a dikkat edin).

Eğer bu adres yığında shellcode'umuza işaret ediyorsa, akışı o adrese ulaştırmak mümkündür ret talimatına adresler ekleyerek bu talimat ulaşıldığında.

Bu nedenle saldırı şöyle olacaktır:

  • NOP sled
  • Shellcode
  • EIP'den yığını ret adresleri ile yazmak (RET sled)
  • 0x00, yığın adresini değiştirerek NOP sled'e işaret etmesini sağlamak için dize tarafından eklenir

Aşağıdaki bu bağlantıda savunmasız bir ikili örneği görebilirsiniz ve bu bağlantıda ise istismarı görebilirsiniz.

Ret2pop

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 kısaltılmalıdır (böylece son 0x00 mükemmel işaretçinin hemen öncesindeki veriyi yazacaktır) 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 herhangi bir değişiklik olmadan işaret edecektir.

Aşağıdaki bu bağlantıda savunmasız bir ikili örneği görebilirsiniz ve bu bağlantıda ise istismarı görebilirsiniz.

References

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin