Ret2ret & Reo2pop

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)

Podržite HackTricks

Ret2ret

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.

Ret2pop

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.

Reference

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)

Podržite HackTricks

Last updated