Ret2ret & Reo2pop
Last updated
Last updated
Naučite i vežbajte hakovanje AWS-a:HackTricks Training AWS Red Team Expert (ARTE) Naučite i vežbajte hakovanje GCP-a: HackTricks Training GCP Red Team Expert (GRTE)
Glavni cilj ove tehnike je pokušaj zaobilaženja ASLR-a zloupotrebom postojećeg pokazivača na steku.
U osnovi, prekoračenja steka obično su uzrokovana stringovima, a stringovi se završavaju nul bajtom na kraju u memoriji. To omogućava pokušaj smanjenja mesta na koje pokazuje već postojeći pokazivač na steku. Dakle, ako je stek sadržao 0xbfffffdd
, ovo prekoračenje može ga transformisati u 0xbfffff00
(primetite poslednji nulirani bajt).
Ako ta adresa pokazuje naš shell kod na steku, moguće je usmeriti tok ka toj adresi dodavanjem adresa instrukciji ret
dok se ne dostigne ta adresa.
Stoga bi napad bio ovakav:
NOP klizaljka
Shell kod
Prepisivanje steka od EIP sa adresama ka ret
instrukciji (RET klizaljka)
0x00 dodat stringom menjajući adresu sa steka tako da pokazuje na NOP klizaljku
Klikom na ovaj link možete videti primer ranjivog binarnog fajla, a u ovom eksploit.
U slučaju da možete pronaći savšen pokazivač na steku koji ne želite da menjate (u ret2ret
smo promenili poslednji najniži bajt u 0x00
), možete izvesti isti napad kao ret2ret
, ali dužina RET klizaljke mora biti skraćena za 1 (tako da konačni 0x00
prepisuje podatke neposredno pre savršenog pokazivača), a poslednja adresa RET klizaljke mora pokazivati na pop <reg>; ret
.
Na ovaj način, podaci pre savršenog pokazivača će biti uklonjeni sa steka (to su podaci pogođeni sa 0x00
) i konačni ret
će pokazivati na savršenu adresu na steku bez ikakve promene.
Klikom na ovaj link možete videti primer ranjivog binarnog fajla, a u ovom eksploit.
Naučite i vežbajte hakovanje AWS-a:HackTricks Training AWS Red Team Expert (ARTE) Naučite i vežbajte hakovanje GCP-a: HackTricks Training GCP Red Team Expert (GRTE)