Ret2ret & Reo2pop
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)
Ο κύριος στόχος αυτής της τεχνικής είναι να προσπαθήσει να παρακάμψει το ASLR εκμεταλλευόμενος έναν υπάρχοντα δείκτη στη στοίβα.
Βασικά, οι υπερχειλίσεις στοίβας προκαλούνται συνήθως από συμβολοσειρές, και οι συμβολοσειρές τελειώνουν με ένα null byte στο τέλος στη μνήμη. Αυτό επιτρέπει να προσπαθήσουμε να μειώσουμε τη θέση που δείχνει ένας υπάρχων δείκτης ήδη στη στοίβα. Έτσι, αν η στοίβα περιείχε 0xbfffffdd
, αυτή η υπερχείλιση θα μπορούσε να την μετατρέψει σε 0xbfffff00
(σημειώστε το τελευταίο μηδενισμένο byte).
Αν αυτή η διεύθυνση δείχνει στον shellcode μας στη στοίβα, είναι δυνατόν να κάνουμε τη ροή να φτάσει σε αυτή τη διεύθυνση προσθέτοντας διευθύνσεις στην εντολή ret
μέχρι να φτάσει αυτή.
Επομένως, η επίθεση θα είναι ως εξής:
NOP sled
Shellcode
Επικαλύψτε τη στοίβα από το EIP με διευθύνσεις προς ret
(RET sled)
0x00 προστίθεται από τη συμβολοσειρά τροποποιώντας μια διεύθυνση από τη στοίβα κάνοντάς την να δείχνει στο NOP sled
Ακολουθώντας αυτή τη σύνδεση μπορείτε να δείτε ένα παράδειγμα ενός ευάλωτου δυαδικού και σε αυτήν την εκμετάλλευση.
Σε περίπτωση που μπορείτε να βρείτε έναν τέλειο δείκτη στη στοίβα που δεν θέλετε να τροποποιήσετε (στο ret2ret
αλλάζουμε το τελικό χαμηλότερο byte σε 0x00
), μπορείτε να εκτελέσετε την ίδια επίθεση ret2ret
, αλλά το μήκος του RET sled πρέπει να μειωθεί κατά 1 (έτσι το τελικό 0x00
επικαλύπτει τα δεδομένα ακριβώς πριν από τον τέλειο δείκτη), και η τελευταία διεύθυνση του RET sled πρέπει να δείχνει σε pop <reg>; ret
.
Με αυτόν τον τρόπο, τα δεδομένα πριν από τον τέλειο δείκτη θα αφαιρεθούν από τη στοίβα (αυτά είναι τα δεδομένα που επηρεάζονται από το 0x00
) και το τελικό ret
θα δείχνει στη τέλεια διεύθυνση στη στοίβα χωρίς καμία αλλαγή.
Ακολουθώντας αυτή τη σύνδεση μπορείτε να δείτε ένα παράδειγμα ενός ευάλωτου δυαδικού και σε αυτήν την εκμετάλλευση.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)