Ret2ret & Reo2pop
Last updated
Last updated
Jifunze & zoezi Udukuzi wa AWS:Mafunzo ya HackTricks AWS Timu Nyekundu Mtaalam (ARTE) Jifunze & zoezi Udukuzi wa GCP: Mafunzo ya HackTricks GCP Timu Nyekundu Mtaalam (GRTE)
Lengo kuu la mbinu hii ni kujaribu kupita ASLR kwa kutumia pointer iliyopo kwenye stack.
Kimsingi, mifuriko ya stack mara nyingi husababishwa na strings, na strings huishia na byte ya null mwishoni kwenye kumbukumbu. Hii inaruhusu kujaribu kupunguza mahali kinacholengwa na pointer iliyopo tayari kwenye stack. Kwa hivyo, ikiwa stack ilikuwa na 0xbfffffdd
, mifuriko hii inaweza kuibadilisha kuwa 0xbfffff00
(zingatia byte ya mwisho iliyozuiliwa).
Ikiwa anwani hiyo inalenga shellcode yetu kwenye stack, ni rahisi kufanya mwendelezo ufikie anwani hiyo kwa kuongeza anwani kwenye maagizo ya ret
hadi ifikie hiyo.
Kwa hivyo shambulio litakuwa kama ifuatavyo:
NOP sled
Shellcode
Kufunika stack kutoka kwa EIP na anwani za ret
(RET sled)
0x00 iliyoongezwa na string kubadilisha anwani kutoka kwenye stack ikilenga kwenye NOP sled
Kufuata kiunganishi hiki unaweza kuona mfano wa binary inayoweza kushambuliwa na katika hii shambulio.
Ikiwa unaweza kupata pointer kamili kwenye stack ambayo haitaki kubadilishwa (katika ret2ret
tulibadilisha byte ya chini ya mwisho kuwa 0x00
), unaweza kufanya shambulio sawa la ret2ret
, lakini urefu wa RET sled lazima uwe mfupi kwa 1 (hivyo 0x00
ya mwisho inafunika data moja kabla ya pointer kamili), na anwani ya mwisho ya RET sled lazima ilenge pop <reg>; ret
.
Kwa njia hii, data kabla ya pointer kamili itaondolewa kwenye stack (hii ni data inayoguswa na 0x00
) na ret ya mwisho italenga anwani kamili kwenye stack bila mabadiliko yoyote.
Kufuata kiunganishi hiki unaweza kuona mfano wa binary inayoweza kushambuliwa na katika hii shambulio.
Jifunze & zoezi Udukuzi wa AWS:Mafunzo ya HackTricks AWS Timu Nyekundu Mtaalam (ARTE) Jifunze & zoezi Udukuzi wa GCP: Mafunzo ya HackTricks GCP Timu Nyekundu Mtaalam (GRTE)