One Gadget

Wesprzyj HackTricks

Podstawowe informacje

Jedno narzędzie pozwala uzyskać powłokę zamiast korzystania z system i "/bin/sh". Jedno narzędzie znajdzie w bibliotece libc sposób uzyskania powłoki (execve("/bin/sh")) za pomocą jednego adresu. Jednak zazwyczaj istnieją pewne ograniczenia, najczęstsze i łatwe do uniknięcia to na przykład [rsp+0x30] == NULL. Ponieważ kontrolujesz wartości w RSP, wystarczy wysłać więcej wartości NULL, aby uniknąć ograniczenia.

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

Do adresu wskazanego przez One Gadget należy dodać bazowy adres, pod którym jest załadowany libc.

One Gadget jest wielką pomocą dla technik Arbitrary Write 2 Exec i może upraszczać łańcuchy ROP, ponieważ wystarczy wywołać jeden adres (i spełnić wymagania).

ARM64

Repozytorium na githubie wspomina, że ARM64 jest obsługiwany przez narzędzie, ale podczas uruchamiania go w bibliotece libc Kali 2023.3 nie znajduje żadnego gadżetu.

Angry Gadget

Z repozytorium na githubie: Zainspirowane przez OneGadget to narzędzie napisane w Pythonie i używa angr do testowania ograniczeń dla gadżetów wykonujących execve('/bin/sh', NULL, NULL) Jeśli skończyły Ci się gadżety do wypróbowania z OneGadget, Angry Gadget oferuje ich znacznie więcej z złożonymi ograniczeniami do wypróbowania!

pip install angry_gadget

angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so
Wesprzyj HackTricks

Last updated