Fast Bin Attack
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)
Kwa maelezo zaidi kuhusu nini fast bin angalia ukurasa huu:
Kwa sababu fast bin ni orodha iliyo na kiungo kimoja, kuna ulinzi mdogo zaidi kuliko katika bins nyingine na tu kubadilisha anwani katika fast bin chunk iliyofutwa inatosha kuwa na uwezo wa kuallocate baadaye chunk katika anwani yoyote ya kumbukumbu.
Kama muhtasari:
Unaweza kupata mfano kamili katika msimbo ulioelezewa vizuri kutoka https://guyinatuxedo.github.io/28-fastbin_attack/explanation_fastbinAttack/index.html:
Ikiwa inawezekana kubadilisha thamani ya kiambatisho cha kimataifa global_max_fast
kwa nambari kubwa, hii inaruhusu kuunda vipande vya fast bin vya ukubwa mkubwa, ambayo inaweza kuruhusu kufanya mashambulizi ya fast bin katika hali ambapo haikuwezekana hapo awali. Hali hii ni muhimu katika muktadha wa large bin attack na unsorted bin attack
Inawezekana kugawa vipande, kuvisafisha, kusoma maudhui yake na kuzijaza (kwa kutumia udhaifu wa overflow).
Consolidate chunk for infoleak: Mbinu hii ni kimsingi kutumia overflow kuunda prev_size
bandia ili vipande vya awali viwe ndani ya kimoja kikubwa, hivyo wakati wa kugawa kimoja kikubwa kinachoshikilia kipande kingine, inawezekana kuchapisha data yake na kuvuja anwani kwa libc (main_arena+88
).
Overwrite malloc hook: Kwa hili, na kutumia hali ya awali ya overlapping, ilikuwa inawezekana kuwa na vipande 2 vilivyokuwa vinashikilia kumbukumbu sawa. Hivyo, kuvisafisha vyote (kuvisafisha kipande kingine katikati ili kuepuka ulinzi) ilikuwa inawezekana kuwa na kipande sawa katika fast bin mara 2. Kisha, ilikuwa inawezekana kukigawa tena, kubadilisha anwani ya kipande kinachofuata ili kuashiria kidogo kabla ya __malloc_hook
(hivyo inaashiria nambari ambayo malloc inadhani ni ukubwa wa bure - njia nyingine ya kupita), kukigawa tena na kisha kugawa kipande kingine ambacho kitapokea anwani kwa malloc hooks.
Hatimaye one gadget iliandikwa humo.
Kuna overflow ya heap na matumizi baada ya kusafisha na kusafisha mara mbili kwa sababu wakati kipande kinapaswa kusafishwa inawezekana kutumia tena na kusafisha tena viashiria.
Libc info leak: Safisha tu baadhi ya vipande na vitapata kiashiria kwa sehemu ya eneo la main arena. Kwa kuwa unaweza kutumia tena viashiria vilivyopasishwa, soma tu anwani hii.
Fast bin attack: Viashiria vyote vya kugawa vinahifadhiwa ndani ya array, hivyo tunaweza kusafisha vipande kadhaa vya fast bin na katika la mwisho kubadilisha anwani ili kuashiria kidogo kabla ya array hii ya viashiria. Kisha, gawiwa vipande kadhaa vya ukubwa sawa na tutapata kwanza ile halali na kisha ile bandia inayoshikilia array ya viashiria. Sasa tunaweza kubadilisha viashiria vya kugawa ili kufanya anwani ya GOT ya free
iashirie system
na kisha kuandika "/bin/sh"
katika kipande 1 ili kisha kuita free(chunk1)
ambayo badala yake itatekeleza system("/bin/sh")
.
Mfano mwingine wa kutumia overflow ya byte moja ili kuunganisha vipande katika unsorted bin na kupata libc infoleak na kisha kufanya mashambulizi ya fast bin ili kubadilisha malloc hook na anwani ya one gadget.
Baada ya infoleak ikitumia unsorted bin na UAF kuvuja anwani ya libc na anwani ya PIE, exploit ya CTF hii ilitumia mashambulizi ya fast bin kugawa kipande katika mahali ambapo viashiria vya vipande vilivyodhibitiwa vilikuwa vimewekwa hivyo ilikuwa inawezekana kubadilisha viashiria fulani ili kuandika one gadget katika GOT.
Unaweza kupata mashambulizi ya Fast Bin yaliyotumiwa kupitia mashambulizi ya unsorted bin:
Kumbuka kwamba ni kawaida kabla ya kufanya mashambulizi ya fast bin kutumia orodha za bure kuvuja anwani za libc/heap (wakati inahitajika).
Tunaweza tu kugawa vipande vya ukubwa mkubwa kuliko 0x100
.
Badilisha global_max_fast
kwa kutumia mashambulizi ya Unsorted Bin (inafanya kazi 1/16 kwa sababu ya ASLR, kwa sababu tunahitaji kubadilisha bits 12, lakini lazima tubadilishe bits 16).
Mashambulizi ya Fast Bin kubadilisha array ya kimataifa ya vipande. Hii inatoa primitive ya kusoma/kandika isiyo na mipaka, ambayo inaruhusu kubadilisha GOT na kuweka baadhi ya kazi kuashiria system
.
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)