Ret2plt
Last updated
Last updated
Jifunze na zoezi la AWS Hacking:Mafunzo ya HackTricks AWS Red Team Expert (ARTE) Jifunze na zoezi la GCP Hacking: Mafunzo ya HackTricks GCP Red Team Expert (GRTE)
Lengo la mbinu hii ni kuvuja anwani kutoka kwa kazi kutoka kwa PLT ili kuweza kukiuka ASLR. Hii ni kwa sababu ikiwa, kwa mfano, unavuja anwani ya kazi puts
kutoka kwa libc, basi unaweza kukadiria wapi ni msingi wa libc
na kuhesabu offsets kufikia kazi nyingine kama vile system
.
Hii inaweza kufanywa na mzigo wa pwntools
kama (kutoka hapa):
Tambua jinsi puts
(ikitumia anwani kutoka kwa PLT) inavyoitwa na anwani ya puts
iliyopo kwenye GOT (Global Offset Table). Hii ni kwa sababu wakati puts
inachapisha kuingia kwa GOT ya puts, kuingia hicho kitakuwa na anwani sahihi ya puts
kwenye kumbukumbu.
Pia tambua jinsi anwani ya main
inavyotumiwa katika shambulizi ili wakati puts
inamaliza utekelezaji wake, binary inaita main
tena badala ya kutoka (hivyo anwani iliyovuja itaendelea kuwa halali).
Tambua jinsi ili hili lifanye kazi binary haiwezi kuwa imeunganishwa na PIE au lazima uwe umepata uvujaji wa kuepuka PIE ili kujua anwani ya PLT, GOT na main. Vinginevyo, unahitaji kuepuka PIE kwanza.
Unaweza kupata mfano kamili wa kuepuka hii hapa. Hii ilikuwa shambulizi la mwisho kutoka kwenye mfano huo:
Biti 64, ASLR imewezeshwa lakini hakuna PIE, hatua ya kwanza ni kujaza kuzidi hadi byte 0x00 ya canary kisha kuita puts na kuvuja. Kwa kutumia canary, ROP gadget inaundwa kuita puts kuvuja anwani ya puts kutoka kwa GOT na kisha ROP gadget kuita system('/bin/sh')
Biti 64, ASLR imewezeshwa, hakuna canary, kuzidi steki katika main kutoka kwa kazi ya mtoto. ROP gadget kuita puts kuvuja anwani ya puts kutoka kwa GOT na kisha kuita gadget moja.