Ret2ret & Reo2pop
Reading time: 3 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Ret2ret
Głównym celem tej techniki jest próba obejścia ASLR poprzez wykorzystanie istniejącego wskaźnika na stosie.
W zasadzie, przepełnienia stosu są zazwyczaj spowodowane przez ciągi, a ciągi kończą się bajtem zerowym na końcu w pamięci. To pozwala na próbę zmniejszenia miejsca wskazywanego przez istniejący wskaźnik już obecny na stosie. Jeśli stos zawierał 0xbfffffdd
, to to przepełnienie mogłoby przekształcić go w 0xbfffff00
(zauważ ostatni zera bajt).
Jeśli ten adres wskazuje na nasz shellcode na stosie, możliwe jest skierowanie przepływu do tego adresu poprzez dodawanie adresów do instrukcji ret
aż do momentu, gdy ten zostanie osiągnięty.
Dlatego atak wyglądałby tak:
- NOP sled
- Shellcode
- Nadpisanie stosu z EIP za pomocą adresów do
ret
(RET sled) - 0x00 dodane przez ciąg modyfikujący adres ze stosu, aby wskazywał na NOP sled
Podążając za tym linkiem możesz zobaczyć przykład podatnego binarnego i w tym exploit.
Ret2pop
W przypadku, gdy możesz znaleźć idealny wskaźnik na stosie, którego nie chcesz modyfikować (w ret2ret
zmieniamy ostatni najniższy bajt na 0x00
), możesz przeprowadzić ten sam atak ret2ret
, ale długość RET sled musi być skrócona o 1 (tak, aby końcowe 0x00
nadpisało dane tuż przed idealnym wskaźnikiem), a ostatni adres RET sled musi wskazywać na pop <reg>; ret
.
W ten sposób dane przed idealnym wskaźnikiem zostaną usunięte ze stosu (to są dane dotknięte przez 0x00
), a końcowy ret
będzie wskazywał na idealny adres na stosie bez żadnej zmiany.
Podążając za tym linkiem możesz zobaczyć przykład podatnego binarnego i w tym exploit.
References
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.