Ret2ret & Reo2pop

Reading time: 3 minutes

tip

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č 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 na 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 sa 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 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, podatak pre savršenog pokazivača biće uklonjen sa steka (to su podaci pogođeni 0x00) i konačni ret će pokazivati na savršenu adresu na steku bez ikakvih promena.

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

References

tip

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