Relro
Reading time: 2 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Relro
RELRO steht für Relocation Read-Only und ist eine Sicherheitsfunktion, die in Binärdateien verwendet wird, um die Risiken im Zusammenhang mit GOT (Global Offset Table)-Überschreibungen zu mindern. Es gibt zwei Arten von RELRO-Schutz: (1) Partial RELRO und (2) Full RELRO. Beide ordnen die GOT und BSS aus ELF-Dateien neu, jedoch mit unterschiedlichen Ergebnissen und Auswirkungen. Genauer gesagt, platzieren sie den GOT-Abschnitt vor der BSS. Das bedeutet, dass GOT an niedrigeren Adressen als BSS liegt, wodurch es unmöglich wird, GOT-Einträge durch Überlaufvariablen in der BSS zu überschreiben (denken Sie daran, dass das Schreiben in den Speicher von niedrigeren zu höheren Adressen erfolgt).
Lassen Sie uns das Konzept in seine beiden unterschiedlichen Typen zur Klarheit aufschlüsseln.
Partial RELRO
Partial RELRO verfolgt einen einfacheren Ansatz zur Verbesserung der Sicherheit, ohne die Leistung der Binärdatei erheblich zu beeinträchtigen. Partial RELRO macht die .got schreibgeschützt (den nicht-PLT-Teil des GOT-Abschnitts). Beachten Sie, dass der Rest des Abschnitts (wie die .got.plt) weiterhin beschreibbar ist und daher Angriffen ausgesetzt ist. Dies verhindert nicht, dass die GOT durch willkürliche Schreib-Schwachstellen missbraucht wird.
Hinweis: Standard
readelf -l /proc/ID_PROC/exe | grep BIND_NOW
Bypass
Wenn Full RELRO aktiviert ist, besteht der einzige Weg, es zu umgehen, darin, einen anderen Weg zu finden, der nicht benötigt, in die GOT-Tabelle zu schreiben, um willkürliche Ausführung zu erhalten.
Beachten Sie, dass LIBC's GOT normalerweise Partial RELRO ist, sodass es mit einem willkürlichen Schreibvorgang modifiziert werden kann. Weitere Informationen in Targetting libc GOT entries.
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.