Ret2ret & Reo2pop

Reading time: 3 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

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

Ret2ret

Ο κύριος στόχος αυτής της τεχνικής είναι να προσπαθήσει να παρακάμψει το ASLR εκμεταλλευόμενος έναν υπάρχοντα δείκτη στη στοίβα.

Βασικά, οι υπερχειλίσεις της στοίβας προκαλούνται συνήθως από συμβολοσειρές, και οι συμβολοσειρές τελειώνουν με ένα null byte στο τέλος στη μνήμη. Αυτό επιτρέπει να προσπαθήσουμε να μειώσουμε τη θέση που δείχνει ένας υπάρχων δείκτης που ήδη υπάρχει στη στοίβα. Έτσι, αν η στοίβα περιείχε 0xbfffffdd, αυτή η υπερχείλιση θα μπορούσε να την μετατρέψει σε 0xbfffff00 (σημειώστε το τελευταίο μηδενικό byte).

Αν αυτή η διεύθυνση δείχνει στον shellcode μας στη στοίβα, είναι δυνατόν να κάνουμε τη ροή να φτάσει σε αυτή τη διεύθυνση προσθέτοντας διευθύνσεις στην εντολή ret μέχρι να φτάσουμε σε αυτήν.

Επομένως, η επίθεση θα είναι ως εξής:

  • NOP sled
  • Shellcode
  • Επικαλύψτε τη στοίβα από το EIP με διευθύνσεις προς ret (RET sled)
  • 0x00 προστίθεται από τη συμβολοσειρά τροποποιώντας μια διεύθυνση από τη στοίβα κάνοντάς την να δείχνει στο NOP sled

Ακολουθώντας αυτόν τον σύνδεσμο μπορείτε να δείτε ένα παράδειγμα ενός ευάλωτου δυαδικού και σε αυτόν την εκμετάλλευση.

Ret2pop

Σε περίπτωση που μπορείτε να βρείτε έναν τέλειο δείκτη στη στοίβα που δεν θέλετε να τροποποιήσετε (στο ret2ret αλλάζουμε το τελικό χαμηλότερο byte σε 0x00), μπορείτε να εκτελέσετε την ίδια επίθεση ret2ret, αλλά το μήκος του RET sled πρέπει να μειωθεί κατά 1 (έτσι το τελικό 0x00 επικαλύπτει τα δεδομένα ακριβώς πριν από τον τέλειο δείκτη), και η τελευταία διεύθυνση του RET sled πρέπει να δείχνει σε pop <reg>; ret.
Με αυτόν τον τρόπο, τα δεδομένα πριν από τον τέλειο δείκτη θα αφαιρεθούν από τη στοίβα (αυτά είναι τα δεδομένα που επηρεάζονται από το 0x00) και το τελικό ret θα δείχνει στη τέλεια διεύθυνση στη στοίβα χωρίς καμία αλλαγή.

Ακολουθώντας αυτόν τον σύνδεσμο μπορείτε να δείτε ένα παράδειγμα ενός ευάλωτου δυαδικού και σε αυτόν την εκμετάλλευση.

References

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

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