Ret2ret & Reo2pop
Last updated
Last updated
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)
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.
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.
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)