One Gadget

Reading time: 2 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks

Grundinformationen

One Gadget ermöglicht es, eine Shell zu erhalten, anstatt system und "/bin/sh" zu verwenden. One Gadget findet in der libc-Bibliothek einen Weg, um eine Shell zu erhalten (execve("/bin/sh")) und das mit nur einer Adresse.
Normalerweise gibt es jedoch einige Einschränkungen, die häufigsten und am einfachsten zu vermeidenden sind wie [rsp+0x30] == NULL. Da Sie die Werte im RSP kontrollieren, müssen Sie nur einige weitere NULL-Werte senden, damit die Einschränkung umgangen wird.

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

Um die von One Gadget angegebene Adresse zu erreichen, müssen Sie die Basisadresse hinzufügen, an der libc geladen ist.

tip

One Gadget ist eine große Hilfe für Arbitrary Write 2 Exec-Techniken und könnte ROP Ketten vereinfachen, da Sie nur eine Adresse aufrufen müssen (und die Anforderungen erfüllen).

ARM64

Das GitHub-Repo erwähnt, dass ARM64 unterstützt wird von dem Tool, aber beim Ausführen in der libc von Kali 2023.3 findet es keine Gadgets.

Angry Gadget

Vom github repo: Inspiriert von OneGadget ist dieses Tool in Python geschrieben und verwendet angr, um Einschränkungen für Gadgets zu testen, die execve('/bin/sh', NULL, NULL) ausführen.
Wenn Ihnen die Gadgets von OneGadget ausgehen, bietet Angry Gadget viele weitere mit komplizierten Einschränkungen, die Sie ausprobieren können!

bash
pip install angry_gadget

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

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks