Jifunze na zoezi la Kuvamia AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**Mafunzo ya HackTricks AWS Timu Nyekundu Mtaalam (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Jifunze na zoezi la Kuvamia GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**Mafunzo ya HackTricks GCP Timu Nyekundu Mtaalam (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Kama unavyoweza [Tovuti Rasmi ya GNU](https://www.gnu.org/software/libc/manual/html\_node/Hooks-for-Malloc.html), kipengele **`__malloc_hook`** ni kipande kinachoelekeza kwenye **anwani ya kazi itakayoitwa** wakati wowote `malloc()` inaitwa **imehifadhiwa kwenye sehemu ya data ya maktaba ya libc**. Kwa hivyo, ikiwa anwani hii itabadilishwa na **One Gadget** kwa mfano na `malloc` inaitwa, **One Gadget itaitwa**.
Kuita malloc inawezekana kusubiri programu iite au kwa **kuita `printf("%10000$c")`** ambayo inaendelea kuchukua nafasi nyingi kufanya `libc` iite malloc kuzitenga kwenye rundo.
Tafadhali elewa kwamba vitanzi vime **lemazwa kwa GLIBC >= 2.34**. Kuna njia nyingine ambazo zinaweza kutumika kwenye toleo za kisasa za GLIBC. Angalia: [https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md](https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md).
Hii ilidhulumiwa katika moja ya mfano kutoka kwenye ukurasa ukidhulumu shambulio la rundo la haraka baada ya kudhulumiwa shambulio la rundo lisilo na mpangilio:
[Katika chapisho](https://guyinatuxedo.github.io/41-house\_of\_force/bkp16\_cookbook/index.html) unaweza kupata mwongozo wa hatua kwa hatua juu ya jinsi ya kutambua anwani ya kitanzi cha bure bila alama. Kwa muhtasari, katika kazi ya bure:
* Ikiwa tunaweza kupata kipande cha haraka cha ukubwa wa 0x200 katika eneo hili, itawezekana kubadilisha kidole cha kazi ambacho kitatekelezwa
* Kwa hili, kipande kipya cha ukubwa wa `0xfc` kinajengwa na kuitwa kazi iliyochanganywa mara mbili na kidole hicho, njia hii tunapata kidole kwa kipande kilichofutwa cha ukubwa wa `0xfc*2 = 0x1f8` katika bendi ya haraka.
* Kisha, kazi ya hariri inaitwa kwenye kipande hiki kurekebisha anwani ya **`fd`** ya bendi hii ya haraka ili ielekee kwenye kazi ya awali ya **`__free_hook`**.
* Kisha, kipande cha ukubwa wa `0x1f8` kinajengwa ili kurejesha kutoka kwa bendi ya haraka kipande kisichofaa cha awali hivyo kipande kingine cha ukubwa wa `0x1f8` kinajengwa ili kupata kipande cha bendi ya haraka katika **`__free_hook`** ambayo inabadilishwa na anwani ya kazi ya **`system`**.
* Na mwishowe kipande kinachohifadhi string `/bin/sh\x00` kinawekwa huru kwa kuita kazi ya kufuta, kuzindua kazi ya **`__free_hook`** ambayo inaelekeza kwa mfumo na `/bin/sh\x00` kama parameter.