One Gadget

Υποστηρίξτε το HackTricks

Βασικές Πληροφορίες

One Gadget επιτρέπει την απόκτηση ενός κέλυφους αντί να χρησιμοποιείτε το system και το "/bin/sh". Το One Gadget θα βρει μέσα στη βιβλιοθήκη 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 δεν βρίσκει κανένα gadget.

Angry Gadget

Από το αποθετήριο στο github: Εμπνευσμένο από το OneGadget αυτό το εργαλείο είναι γραμμένο σε python και χρησιμοποιεί το angr για να ελέγξει τον περιορισμό για gadgets που εκτελούν execve('/bin/sh', NULL, NULL) Αν έχετε εξαντλήσει τα gadgets που θέλετε να δοκιμάσετε από το One Gadget, το Angry Gadget προσφέρει πολλά περισσότερα με πιο περίπλοκους περιορισμούς για δοκιμή!

pip install angry_gadget

angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so
Υποστηρίξτε το HackTricks

Last updated