hacktricks/reversing-and-exploiting/linux-exploiting-basic-esp/common-binary-protections/relro.md

4.1 KiB

Relro

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Relro

RELRO steht für Relocation Read-Only und ist eine Sicherheitsfunktion, die in Binärdateien verwendet wird, um die mit GOT (Global Offset Table)-Überschreibungen verbundenen Risiken zu mindern. Lassen Sie uns das Konzept in seine zwei verschiedenen Typen für Klarheit aufschlüsseln: Partial RELRO und Full RELRO.

Partial RELRO

Partial RELRO verfolgt einen einfacheren Ansatz, um die Sicherheit zu verbessern, ohne die Leistung der Binärdatei wesentlich zu beeinträchtigen. Durch Platzierung der GOT über den Variablen des Programms im Speicher zielt Partial RELRO darauf ab, Pufferüberläufe daran zu hindern, die GOT zu erreichen und zu beschädigen.

Dies verhindert nicht, dass die GOT bei beliebigen Schreib-Schwachstellen missbraucht wird.

Full RELRO

Full RELRO erhöht den Schutz, indem die GOT vollständig schreibgeschützt wird. Sobald die Binärdatei gestartet wird, werden alle Funktionsadressen aufgelöst und in der GOT geladen, dann wird die GOT als schreibgeschützt markiert, wodurch effektiv jegliche Änderungen während der Laufzeit verhindert werden.

Der Kompromiss bei Full RELRO liegt jedoch in Bezug auf Leistung und Startzeit. Da es erforderlich ist, alle dynamischen Symbole beim Start aufzulösen, bevor die GOT als schreibgeschützt markiert wird, können Binärdateien mit aktiviertem Full RELRO längere Ladezeiten haben. Dieser zusätzliche Startaufwand ist der Grund, warum Full RELRO nicht standardmäßig in allen Binärdateien aktiviert ist.

Es ist möglich zu überprüfen, ob Full RELRO in einer Binärdatei aktiviert ist, indem:

readelf -l /proc/ID_PROC/exe | grep BIND_NOW
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: