Ret2ret & Reo2pop
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Die hoof doel van hierdie tegniek is om te probeer ASLR te omseil deur 'n bestaande pointer in die stapel te misbruik.
Basies, stapel oorgeloop is gewoonlik veroorsaak deur strings, en strings eindig met 'n null byte aan die einde in geheue. Dit maak dit moontlik om te probeer om die plek wat deur 'n bestaande pointer in die stapel aangedui word, te verminder. So as die stapel 0xbfffffdd
bevat, kan hierdie oorgeloop dit in 0xbfffff00
transformeer (let op die laaste nul byte).
As daardie adres na ons shellcode in die stapel wys, is dit moontlik om die vloei na daardie adres te laat bereik deur adresse by die ret
instruksie te voeg totdat hierdie een bereik word.
Daarom sal die aanval soos volg wees:
NOP sled
Shellcode
Oorskry die stapel vanaf die EIP met adresse na ret
(RET sled)
0x00 bygevoeg deur die string wat 'n adres van die stapel verander en dit na die NOP sled laat wys
Volg hierdie skakel jy kan 'n voorbeeld van 'n kwesbare binêre sien en in hierdie een die exploit.
In die geval dat jy 'n perfekte pointer in die stapel kan vind wat jy nie wil verander nie (in ret2ret
verander ons die finale laagste byte na 0x00
), kan jy dieselfde ret2ret
aanval uitvoer, maar die lengte van die RET sled moet met 1 verkort word (sodat die finale 0x00
die data net voor die perfekte pointer oorskry), en die laaste adres van die RET sled moet na pop <reg>; ret
wys.
Op hierdie manier sal die data voor die perfekte pointer verwyder word van die stapel (dit is die data wat deur die 0x00
geraak word) en die finale ret
sal na die perfekte adres in die stapel wys sonder enige verandering.
Volg hierdie skakel jy kan 'n voorbeeld van 'n kwesbare binêre sien en in hierdie een die exploit.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)