House of Roman
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)
Hii ilikuwa mbinu ya kuvutia sana iliyoruhusu RCE bila kuvuja kupitia fastbins bandia, shambulio la unsorted_bin na kubadilisha maeneo ya kumbukumbu kwa kiasi kinachofaa. Hata hivyo, imefanyiwa marekebisho.
Unaweza kupata mfano katika https://github.com/shellphish/how2heap/blob/master/glibc_2.23/house_of_roman.c
RCE kwa kudanganya pointers za kihusishi
Hariri pointers za fastbin na unsorted bin
Lazima ujaribu kwa nguvu bits 12 za nasibu (0.02% nafasi) ya kufanya kazi
Unda vipande kadhaa:
fastbin_victim
(0x60, offset 0): Kipande cha UAF kitakachotumiwa baadaye kuhariri pointer ya kumbukumbu ili ielekee thamani ya LibC.
chunk2
(0x80, offset 0x70): Kwa upangilio mzuri
main_arena_use
(0x80, offset 0x100)
relative_offset_heap
(0x60, offset 0x190): kiasi cha kihusishi kwenye kipande cha 'main_arena_use'
Kisha free(main_arena_use)
ambayo itaweka kipande hiki kwenye orodha isiyopangwa na kupata pointer kwa main_arena + 0x68
katika pointers za fd
na bk
.
Sasa inaundwa kipande kipya fake_libc_chunk(0x60)
kwa sababu italeta pointers kwa main_arena + 0x68
katika fd
na bk
.
Kisha relative_offset_heap
na fastbin_victim
zinaachiliwa.
fastbin_victim
ina fd
inayoelekeza relative_offset_heap
relative_offset_heap
ni mbali ya umbali kutoka kwa fake_libc_chunk
, ambayo ina pointer kwa main_arena + 0x68
Kwa kubadilisha herufi ya mwisho ya fastbin_victim.fd
inawezekana kufanya fastbin_victim ielekee
kwa main_arena + 0x68
Kwa hatua zilizotangulia, mshambuliaji anahitaji kuwa na uwezo wa kubadilisha kidude cha fd cha fastbin_victim
.
Kisha, main_arena + 0x68
sio ya kuvutia sana, hivyo turekebishe ili kidude kiashirie __malloc_hook
.
Tambua kwamba __memalign_hook
kawaida huanza na 0x7f
na sifuri kabla yake, kwa hivyo inawezekana kuidanganya kama thamani katika fast bin ya 0x70
. Kwa sababu biti 4 za mwisho za anwani ni za kubahatisha kuna 2^4=16
uwezekano wa thamani kuishia kuelekeza mahali tunapovutiwa. Kwa hivyo shambulio la BF linatekelezwa hapa ili kidude kiishie kama: 0x70: fastbin_victim -> fake_libc_chunk -> (__malloc_hook - 0x23)
.
(Kwa habari zaidi kuhusu sehemu iliyobaki ya herufi angalia maelezo katika how2heap mfano). Ikiwa BF haifanyi kazi, programu itaanguka (kwa hivyo anza tena hadi itakapofanya kazi).
Kisha, 2 mallocs zinatekelezwa kuondoa vipande 2 vya mwanzo vya fast bin na ya tatu inatengwa kupata kidude katika __malloc_hook:
Kwa maelezo zaidi unaweza kuangalia:
Lakini kimsingi inaruhusu kuandika main_arena + 0x68
kwenye eneo lolote lililowekwa katika chunk->bk
. Na kwa shambulio tunachagua __malloc_hook
. Kisha, baada ya kuibadilisha tutatumia ubadilishaji wa kihesabu) kuashiria kwa one_gadget
.
Kwa hili tunaanza kupata kipande na kukitia kwenye unsorted bin:
Tumia UAF katika sehemu hii kuashiria unsorted_bin_ptr->bk
kwa anwani ya __malloc_hook
(tulilazimisha hii hapo awali).
Tafadhali kumbuka kuwa shambulio hili linaharibu sanduku lisilo na mpangilio (hivyo ndogo na kubwa pia). Kwa hivyo tunaweza kutumia alokesheni kutoka kwa sanduku la haraka sasa (programu yenye ngumu zaidi inaweza kufanya alokesheni nyingine na kugonga), na ili kuzindua hii lazima aloke ukubwa sawa au programu itaanguka.
Kwa hivyo, ili kuzindua andika ya main_arena + 0x68
katika __malloc_hook
tunafanya baada ya kuweka __malloc_hook
katika unsorted_bin_ptr->bk
tunahitaji tu kufanya: malloc(0x80)
Katika hatua ya kwanza tulimaliza kudhibiti kipande kinachohusisha __malloc_hook
(katika kipengele cha malloc_hook_chunk
) na katika hatua ya pili tulifanikiwa kuandika main_arena + 0x68
hapa.
Sasa, tunatumia uandishi wa sehemu katika malloc_hook_chunk
kutumia anwani ya libc tuliyoiandika hapo (main_arena + 0x68
) ku ashiria anwani ya one_gadget
.
Hapa ndipo inapohitajika kuvunja nguvu 12 bits za nasibu (maelezo zaidi katika how2heap mfano).
Hatimaye, baada ya anwani sahihi kuandikwa, ita malloc
na kuzindua one_gadget
.
Jifunze & fanye Udukuzi wa AWS:Mafunzo ya HackTricks AWS Red Team Expert (ARTE) Jifunze & fanye Udukuzi wa GCP: Mafunzo ya HackTricks GCP Red Team Expert (GRTE)