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

58 lines
4.8 KiB
Markdown
Raw Normal View History

# Ret2ret & Ret2pop
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
</details>
## 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ı**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2ret.c) tıklayarak savunmasız bir ikili örneğini ve [**bu bağlantıda**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2retexploit.c) saldırıyı görebilirsiniz.
## Ret2pop
Eğer **değiştirmek istemediğiniz yığındaki mükemmel bir işaretçi bulabilirseniz** (`ret2ret`te 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ı**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2pop.c) tıklayarak savunmasız bir ikili örneğini ve [**bu bağlantıda**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2popexploit.c) saldırıyı görebilirsiniz.
## Referanslar
* [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
</details>