Ret2ret & Reo2pop
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Ret2ret
Основна мета цієї техніки полягає в тому, щоб обійти ASLR, зловживаючи існуючим вказівником у стеку.
В основному, переповнення стеку зазвичай викликане рядками, і рядки закінчуються нульовим байтом в кінці в пам’яті. Це дозволяє спробувати зменшити місце, на яке вказує існуючий вказівник, вже існуючий у стеку. Тож, якщо стек містив 0xbfffffdd, це переповнення могло б перетворити його на 0xbfffff00 (зверніть увагу на останній нульовий байт).
Якщо ця адреса вказує на наш shellcode у стеку, можливо, змусити потік досягти цієї адреси, додаючи адреси до інструкції ret до тих пір, поки вона не буде досягнута.
Отже, атака виглядатиме так:
- NOP sled
- Shellcode
- Перезаписати стек з EIP з адресами до
ret(RET sled) - 0x00, доданий рядком, модифікує адресу зі стеку, змушуючи її вказувати на NOP sled
Слідуючи за цим посиланням, ви можете побачити приклад вразливого бінарного файлу, а в цьому - експлойт.
Ret2pop
У разі, якщо ви можете знайти ідеальний вказівник у стеку, який не хочете модифікувати (в ret2ret ми змінюємо останній найменший байт на 0x00), ви можете виконати ту ж атаку ret2ret, але довжина RET sled повинна бути скорочена на 1 (щоб останній 0x00 перезаписав дані безпосередньо перед ідеальним вказівником), а остання адреса RET sled повинна вказувати на pop <reg>; ret.
Таким чином, дані перед ідеальним вказівником будуть видалені зі стеку (це дані, на які вплине 0x00), а остання ret вказуватиме на ідеальну адресу у стеку без будь-яких змін.
Слідуючи за цим посиланням, ви можете побачити приклад вразливого бінарного файлу, а в цьому - експлойт.
References
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
HackTricks

