Relro

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Relro

RELRO σημαίνει Relocation Read-Only και είναι μια λειτουργία ασφαλείας που χρησιμοποιείται σε δυαδικά αρχεία για τη μείωση των κινδύνων που σχετίζονται με την αντικατάσταση του GOT (Global Offset Table). Ας αναλύσουμε τον όρο σε δύο διακριτούς τύπους για σαφήνεια: Μερικό RELRO και Πλήρες RELRO.

Μερικό RELRO

Το Μερικό RELRO ακολουθεί μια απλούστερη προσέγγιση για την ενίσχυση της ασφάλειας χωρίς να επηρεάζει σημαντικά την απόδοση του δυαδικού. Με τον τοποθετώντας το GOT πάνω από τις μεταβλητές του προγράμματος στη μνήμη, το Μερικό RELRO στοχεύει στο να αποτρέψει την επικάλυψη του GOT από buffer overflows.

Αυτό δεν αποτρέπει το GOT από την κατάχρηση από ευπάθειες αυθαίρετης εγγραφής.

Πλήρες RELRO

Το Πλήρες RELRO αυξάνει την προστασία με το κάνοντας το GOT και την ενότητα .fini_array εντελώς μόνο για ανάγνωση. Μόλις το δυαδικό ξεκινά, όλες οι διευθύνσεις λειτουργιών επιλύονται και φορτώνονται στο GOT, στη συνέχεια, το GOT επισημαίνεται ως μόνο για ανάγνωση, αποτρέποντας αποτελεσματικά οποιεσδήποτε τροποποιήσεις κατά τη διάρκεια της εκτέλεσης.

Ωστόσο, το συμβιβασμός με το Πλήρες RELRO είναι σε όρους απόδοσης και χρόνου εκκίνησης. Επειδή χρειάζεται να επιλύσει όλα τα δυναμικά σύμβολα κατά την εκκίνηση πριν επισημάνει το GOT ως μόνο για ανάγνωση, τα δυαδικά με ενεργοποιημένο το Πλήρες RELRO μπορεί να βιώσουν μεγαλύτερους χρόνους φόρτωσης. Αυτό το επιπλέον χρονικό κόστος εκκίνησης είναι ο λόγος που το Πλήρες RELRO δεν είναι ενεργοποιημένο από προεπιλογή σε όλα τα δυαδικά.

Είναι δυνατόν να δείτε αν το Πλήρες RELRO είναι ενεργοποιημένο σε ένα δυαδικό με:

readelf -l /proc/ID_PROC/exe | grep BIND_NOW

Bypass

Εάν η πλήρης RELRO είναι ενεργοποιημένη, ο μόνος τρόπος να την παρακάμψετε είναι να βρείτε άλλον τρόπο που δεν χρειάζεται να γράψετε στον πίνακα GOT για να λάβετε αυθαίρετη εκτέλεση.

Σημειώστε ότι ο πίνακας GOT της LIBC είναι συνήθως μερικής RELRO, έτσι μπορεί να τροποποιηθεί με μια αυθαίρετη εγγραφή. Περισσότερες πληροφορίες στο Targetting libc GOT entries.

Last updated