House of Roman
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)
Hii ilikuwa mbinu ya kuvutia sana ambayo iliruhusu RCE bila leaks kupitia fastbins za uwongo, shambulio la unsorted_bin na overwrites za jamaa. Hata hivyo imekuwa patched.
You can find an example in https://github.com/shellphish/how2heap/blob/master/glibc_2.23/house_of_roman.c
RCE kwa kutumia pointers za jamaa
Hariri fastbin na pointers za unsorted bin
Bits 12 za randomness lazima zishindwe kwa nguvu (0.02% chance) ya kufanya kazi
Unda chunks kadhaa:
fastbin_victim
(0x60, offset 0): UAF chunk baadaye kuhariri pointer ya heap ili kuelekeza kwenye thamani ya LibC.
chunk2
(0x80, offset 0x70): Kwa usawa mzuri
main_arena_use
(0x80, offset 0x100)
relative_offset_heap
(0x60, offset 0x190): relative offset kwenye chunk ya 'main_arena_use'
Kisha free(main_arena_use)
ambayo itaweka chunk hii kwenye orodha isiyo na mpangilio na itapata pointer kwa main_arena + 0x68
katika pointers zote za fd
na bk
.
Sasa inatolewa chunk mpya fake_libc_chunk(0x60)
kwa sababu itakuwa na pointers kwa main_arena + 0x68
katika fd
na bk
.
Kisha relative_offset_heap
na fastbin_victim
zinatolewa.
fastbin_victim
ina fd
inayoelekeza kwenye relative_offset_heap
relative_offset_heap
ni ofset ya umbali kutoka fake_libc_chunk
, ambayo ina kiashiria kwa main_arena + 0x68
Kubadilisha tu byte ya mwisho ya fastbin_victim.fd
inawezekana kufanya fastbin_victim points
kuelekeza kwenye main_arena + 0x68
Kwa hatua za awali, mshambuliaji anahitaji kuwa na uwezo wa kubadilisha kiashiria cha fd cha fastbin_victim
.
Kisha, main_arena + 0x68
si ya kuvutia sana, hivyo hebu tuibadilishe ili kiashiria kiwe kinaelekeza kwenye __malloc_hook
.
Kumbuka kwamba __memalign_hook
kawaida huanza na 0x7f
na sifuri kabla yake, kisha inawezekana kuifanya iwe kama thamani katika fast bin ya 0x70
. Kwa sababu bits 4 za mwisho za anwani ni za nasibu kuna 2^4=16
uwezekano wa thamani kumalizika ikielekeza mahali tunapovutiwa. Hivyo shambulio la BF linafanywa hapa ili kipande kiishie kama: 0x70: fastbin_victim -> fake_libc_chunk -> (__malloc_hook - 0x23)
.
(Kwa maelezo zaidi kuhusu byte zingine angalia maelezo katika how2heap mfano). Ikiwa BF haitafanya kazi programu inanguka tu (hivyo anza tena hadi ifanye kazi).
Kisha, malloc 2 zinafanywa kuondoa vipande 2 vya awali vya fast bin na kipande cha tatu kinapewa ili kupata kipande katika __malloc_hook:
Kwa maelezo zaidi unaweza kuangalia:
Unsorted Bin AttackLakini kimsingi inaruhusu kuandika main_arena + 0x68
kwenye eneo lolote lililoainishwa katika chunk->bk
. Na kwa shambulio tunachagua __malloc_hook
. Kisha, baada ya kuandika tena, tutatumia kuandika tena kwa uwiano ili kuelekeza kwenye one_gadget
.
Kwa hili tunaanza kupata chunk na kuuweka kwenye unsorted bin:
Tumia UAF katika kipande hiki kuonyesha unsorted_bin_ptr->bk
kwa anwani ya __malloc_hook
(tulifanya brute force hii hapo awali).
Kumbuka kwamba shambulio hili linaharibu unsorted bin (hivyo ndogo na kubwa pia). Hivyo tunaweza tu kutumia allocations kutoka kwa fast bin sasa (programu ngumu zaidi inaweza kufanya allocations nyingine na kuanguka), na ili kuamsha hii lazima tufanye alloc saizi ile ile au programu itanguka.
Hivyo, ili kuamsha kuandika 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 kinachoshikilia __malloc_hook
(katika variable malloc_hook_chunk
) na katika hatua ya pili tulifanikiwa kuandika main_arena + 0x68
hapa.
Sasa, tunatumia kuandika sehemu katika malloc_hook_chunk
kutumia anwani ya libc tuliyoandika pale (main_arena + 0x68
) ili kuonyesha anwani ya one_gadget
.
Hapa ndipo inahitajika bruteforce bits 12 za randomness (maelezo zaidi katika how2heap mfano).
Hatimaye, mara anwani sahihi imeandikwa, ita malloc
na kuamsha one_gadget
.
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)