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
- Ü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.
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
- Ü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.