Ret2ret & Reo2pop

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Ret2ret

Glavni cilj ove tehnike je da pokuša da obiđe ASLR zloupotrebom postojećeg pokazivača na steku.

U suštini, prelivanja steka obično uzrokuju stringovi, a stringovi se završavaju nul-bajtom na kraju u memoriji. Ovo omogućava da se pokuša smanjiti mesto na koje pokazuje postojeći pokazivač već prisutan na steku. Dakle, ako je stek sadržavao 0xbfffffdd, ovo prelivanje bi moglo da ga transformiše u 0xbfffff00 (obratite pažnju na poslednji nulti bajt).

Ako ta adresa pokazuje na naš shellcode u steku, moguće je usmeriti tok ka toj adresi dodavanjem adresa u ret instrukciju dok se ne dostigne.

Stoga bi napad izgledao ovako:

  • NOP klizaljka

  • Shellcode

  • Prepisivanje steka iz EIP-a sa adresama do ret (RET klizaljka)

  • 0x00 dodat od stringa modifikujući adresu iz steka tako da pokazuje na NOP klizaljku

Prateći ovu vezu možete videti primer ranjivog binarnog fajla i u ovom eksploataciju.

Ret2pop

U slučaju da možete pronaći savršeni pokazivač na steku koji ne želite da modifikujete (u ret2ret menjamo poslednji najniži bajt u 0x00), možete izvesti isti ret2ret napad, ali dužina RET klizaljke mora biti skraćena za 1 (tako da poslednji 0x00 prepisuje podatke neposredno pre savršenog pokazivača), a poslednja adresa RET klizaljke mora pokazivati na pop <reg>; ret. Na ovaj način, podatak pre savršenog pokazivača biće uklonjen iz steka (to su podaci pogođeni 0x00) i poslednji ret će pokazivati na savršenu adresu u steku bez ikakvih promena.

Prateći ovu vezu možete videti primer ranjivog binarnog fajla i u ovom eksploataciju.

Reference

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Last updated