Ret2ret & Reo2pop
Reading time: 3 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте 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)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.