Ret2plt
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ο στόχος αυτής της τεχνικής θα ήταν να διαρρεύσει μια διεύθυνση από μια συνάρτηση από το PLT για να μπορέσει να παρακάμψει το ASLR. Αυτό συμβαίνει επειδή αν, για παράδειγμα, διαρρεύσετε τη διεύθυνση της συνάρτησης puts
από τη libc, μπορείτε στη συνέχεια να υπολογίσετε πού είναι η βάση της libc
και να υπολογίσετε offsets για να αποκτήσετε πρόσβαση σε άλλες συναρτήσεις όπως system
.
Αυτό μπορεί να γίνει με ένα payload pwntools
όπως (από εδώ):
Σημειώστε πώς η puts
(χρησιμοποιώντας τη διεύθυνση από το PLT) καλείται με τη διεύθυνση της puts
που βρίσκεται στο GOT (Global Offset Table). Αυτό συμβαίνει επειδή μέχρι τη στιγμή που η puts
εκτυπώνει την εγγραφή του GOT της puts, αυτή η εγγραφή θα περιέχει τη ακριβή διεύθυνση της puts
στη μνήμη.
Επίσης, σημειώστε πώς η διεύθυνση της main
χρησιμοποιείται στην εκμετάλλευση, έτσι ώστε όταν η puts
ολοκληρώσει την εκτέλεσή της, το binary καλεί ξανά την main
αντί να τερματίσει (έτσι η διαρροή διεύθυνσης θα συνεχίσει να είναι έγκυρη).
Σημειώστε πώς για να λειτουργήσει αυτό, το binary δεν μπορεί να έχει μεταγλωττιστεί με PIE ή πρέπει να έχετε βρει μια διαρροή για να παρακάμψετε το PIE προκειμένου να γνωρίζετε τη διεύθυνση του PLT, GOT και main. Διαφορετικά, πρέπει πρώτα να παρακάμψετε το PIE.
Μπορείτε να βρείτε ένα πλήρες παράδειγμα αυτής της παράκαμψης εδώ. Αυτή ήταν η τελική εκμετάλλευση από αυτό το παράδειγμα:
64 bit, ενεργοποιημένο ASLR αλλά χωρίς PIE, το πρώτο βήμα είναι να γεμίσετε μια υπερχείλιση μέχρι το byte 0x00 του canary για να καλέσετε στη συνέχεια το puts και να διαρρεύσετε το. Με το canary δημιουργείται ένα ROP gadget για να καλέσει το puts για να διαρρεύσει τη διεύθυνση του puts από το GOT και ένα ROP gadget για να καλέσει το system('/bin/sh')
64 bits, ενεργοποιημένο ASLR, χωρίς canary, υπερχείλιση στο stack από μια παιδική συνάρτηση. ROP gadget για να καλέσει το puts για να διαρρεύσει τη διεύθυνση του puts από το GOT και στη συνέχεια να καλέσει ένα one gadget.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)