BF Forked & Threaded Stack Canaries
Ikiwa unakabiliana na binary iliyolindwa na canary na PIE (Position Independent Executable) labda unahitaji kupata njia ya kuzipuuza.
Tambua kwamba checksec
inaweza isigundue kuwa binary inalindwa na canary ikiwa ilikompiliwa kistatiki na haiwezi kutambua kazi.
Hata hivyo, unaweza kugundua hii kwa mkono ikiwa unagundua kwamba thamani imesave kwenye steki mwanzoni mwa wito wa kazi na thamani hii inachunguzwa kabla ya kutoka.
Kupuuza Canary kwa Brute Force
Njia bora ya kuzipuuza canary rahisi ni ikiwa binary ni programu inayoforka michakato ya watoto kila wakati unapounda uhusiano mpya nayo (huduma ya mtandao), kwa sababu kila wakati unapounganisha canary ile ile itatumika.
Kwa hivyo, njia bora ya kuzipuuza canary ni kwa kuzipiga nguvu moja kwa moja kwa kila herufi, na unaweza kugundua ikiwa herufi iliyoguswa ya canary ilikuwa sahihi kwa kuangalia ikiwa programu imeanguka au inaendelea na mtiririko wake wa kawaida. Katika mfano huu, kazi inapiga nguvu 8 Bytes canary (x64) na kutofautisha kati ya herufi iliyoguswa kwa usahihi na herufi mbaya tu kwa kuchunguza ikiwa jibu limetumwa na seva (njia nyingine katika hali nyingine inaweza kuwa kutumia jaribu/kinyume):
Mfano 1
Mfano huu umetekelezwa kwa 64bits lakini unaweza kutekelezwa kwa urahisi kwa bits 32.
Mfano wa 2
Hii imeboreshwa kwa bits 32, lakini hii inaweza kubadilishwa kwa urahisi kuwa bits 64. Pia eleza kwamba kwa mfano huu programu inatarajia kwanza byte kuonyesha ukubwa wa matokeo na mzigo.
Vitambulisho
Vitambulisho vya mchakato huo huo pia vitashiriki kipande sawa cha canary, hivyo itakuwa inawezekana kubadilisha canary ikiwa binary inazalisha wimbo mpya kila wakati shambulio linapotokea.
Zaidi ya hayo, kujaza kijazo katika kazi iliyowekwa ulinzi na canary inaweza kutumika kubadilisha canary kuu iliyohifadhiwa kwenye TLS. Hii ni kwa sababu, inaweza kuwa inawezekana kufikia nafasi ya kumbukumbu ambapo TLS inahifadhiwa (na kwa hivyo, canary) kupitia bof kwenye steki ya wimbo. Kama matokeo, kinga ni bure kwa sababu ukaguzi unatumika na vitambulisho viwili ambavyo ni sawa (ingawa vimebadilishwa). Shambulio hili hutekelezwa katika andiko: http://7rocky.github.io/en/ctf/htb-challenges/pwn/robot-factory/#canaries-and-threads
Angalia pia mawasilisho ya https://www.slideshare.net/codeblue_jp/master-canary-forging-by-yuki-koike-code-blue-2015 ambayo inataja kwamba kawaida TLS inahifadhiwa na mmap
na wakati steki ya wimbo inapoundwa pia inazalishwa na mmap
kulingana na hii, ambayo inaweza kuruhusu kujaza kama ilivyoonyeshwa katika andiko la awali.
Mifano na Marejeo Mengine
Biti 64, hakuna PIE, nx, BF canary, andika kwenye kumbukumbu fulani ROP kuita
execve
na ruka hapo.
Last updated