Ret2plt
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Die doel van hierdie tegniek is om 'n adres van 'n funksie uit die PLT te lek om ASLR te kan omseil. Dit is omdat as jy byvoorbeeld die adres van die funksie puts
uit die libc lek, kan jy dan bereken waar die basis van libc
is en offsets bereken om toegang te verkry tot ander funksies soos system
.
Dit kan gedoen word met 'n pwntools
payload soos (van hier):
Let op hoe puts
(met die adres van die PLT) aangeroep word met die adres van puts
wat in die GOT (Global Offset Table) geleë is. Dit is omdat teen die tyd dat puts
die GOT-invoer van puts druk, hierdie invoer die presiese adres van puts
in geheue sal bevat.
Let ook op hoe die adres van main
in die uitbuiting gebruik word, sodat wanneer puts
sy uitvoering beëindig, die binarie weer main
aanroep in plaas van om te verlaat (sodat die gelekte adres geldig sal bly).
Let op hoe om dit te laat werk, die binarie nie met PIE gekompileer kan word of jy moet 'n lek gevind het om PIE te omseil om die adres van die PLT, GOT en main te ken. Andersins moet jy eers PIE omseil.
Jy kan 'n volledige voorbeeld van hierdie omseiling hier vind. Dit was die finale uitbuiting van daardie voorbeeld:
64-bis, ASLR geaktiveer maar geen PIE, die eerste stap is om 'n oorgang te vul tot by die byte 0x00 van die canary om dan puts aan te roep en dit te lek. Met die canary word 'n ROP gadget geskep om puts aan te roep om die adres van puts van die GOT te lek en dan 'n ROP gadget om system('/bin/sh')
aan te roep.
64-bits, ASLR geaktiveer, geen canary, stap oorgang in hoof vanaf 'n kind funksie. ROP gadget om puts aan te roep om die adres van puts van die GOT te lek en dan 'n een gadget aan te roep.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)