One Gadget

Підтримайте HackTricks

Основна Інформація

Один Гаджет дозволяє отримати оболонку замість використання system та "/bin/sh". Один Гаджет знайде у бібліотеці libc спосіб отримання оболонки (execve("/bin/sh")) використовуючи лише одну адресу. Проте, зазвичай є деякі обмеження, найбільш поширені та легкі для уникнення, такі як [rsp+0x30] == NULL. Оскільки ви контролюєте значення в RSP, вам просто потрібно відправити ще деякі NULL значення, щоб уникнути обмеження.

ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100

Для адреси, вказаної One Gadget, потрібно додати базову адресу, де завантажено libc.

One Gadget є великою допомогою для технік Arbitrary Write 2 Exec і може спростити ланцюжки ROP, оскільки вам потрібно лише викликати один адрес (і виконати вимоги).

ARM64

У репозиторії github зазначено, що ARM64 підтримується цим інструментом, але при його запуску в libc Kali 2023.3 не знаходиться жодного гаджета.

Angry Gadget

З репозиторію github: Інспірований OneGadget цей інструмент написаний на Python і використовує angr для тестування обмежень для гаджетів, що виконують execve('/bin/sh', NULL, NULL) Якщо ви вже вичерпали гаджети для спроби від One Gadget, Angry Gadget надає набагато більше з складними обмеженнями для спроби!

pip install angry_gadget

angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so
Підтримайте HackTricks

Last updated