Ret2ret & Reo2pop

Reading time: 3 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

Ret2ret

Das Hauptziel dieser Technik ist es, ASLR zu umgehen, indem ein vorhandener Zeiger im Stack missbraucht wird.

Im Grunde genommen werden Stack-Überläufe normalerweise durch Strings verursacht, und Strings enden in der Regel mit einem Null-Byte am Ende im Speicher. Dies ermöglicht es, den Ort, auf den ein bereits vorhandener Zeiger im Stack zeigt, zu reduzieren. Wenn der Stack also 0xbfffffdd enthielt, könnte dieser Überlauf ihn in 0xbfffff00 umwandeln (beachten Sie das letzte Null-Byte).

Wenn diese Adresse auf unseren Shellcode im Stack zeigt, ist es möglich, den Fluss zu dieser Adresse zu bringen, indem man Adressen zur ret-Anweisung hinzufügt, bis diese erreicht wird.

Daher würde der Angriff folgendermaßen aussehen:

  • NOP-Sled
  • Shellcode
  • Überschreiben des Stacks vom EIP mit Adressen zu ret (RET-Sled)
  • 0x00, das durch den String hinzugefügt wird, um eine Adresse im Stack zu modifizieren, sodass sie auf den NOP-Sled zeigt

Folgen Sie diesem Link, um ein Beispiel für eine verwundbare Binärdatei zu sehen, und in diesem hier den Exploit.

Ret2pop

Falls Sie einen perfekten Zeiger im Stack finden, den Sie nicht ändern möchten (in ret2ret haben wir das letzte niedrigste Byte auf 0x00 geändert), können Sie den gleichen ret2ret-Angriff durchführen, aber die Länge des RET-Sled muss um 1 verkürzt werden (damit das finale 0x00 die Daten direkt vor dem perfekten Zeiger überschreibt), und die letzte Adresse des RET-Sled muss auf pop <reg>; ret zeigen.
Auf diese Weise werden die Daten vor dem perfekten Zeiger vom Stack entfernt (dies sind die Daten, die vom 0x00 betroffen sind) und das finale ret zeigt auf die perfekte Adresse im Stack, ohne dass Änderungen vorgenommen werden.

Folgen Sie diesem Link, um ein Beispiel für eine verwundbare Binärdatei zu sehen, und in diesem hier den Exploit.

References

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