mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-20 16:08:27 +00:00
Translated ['binary-exploitation/rop-return-oriented-programing/ret2csu.
This commit is contained in:
parent
de4acd044b
commit
a60e73afe0
1 changed files with 5 additions and 5 deletions
|
@ -21,7 +21,7 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
|
|||
|
||||
**ret2csu** ni mbinu ya udukuzi inayotumika unapojaribu kuchukua udhibiti wa programu lakini huwezi kupata **gadgets** unazotumia kawaida kubadilisha tabia ya programu.
|
||||
|
||||
Wakati programu inatumia maktaba fulani (kama libc), ina baadhi ya kazi zilizojengwa ndani kwa ajili ya kusimamia jinsi vipande tofauti vya programu vinavyoongea na kila mmoja. Kati ya kazi hizi kuna baadhi ya vito vilivyofichwa ambavyo vinaweza kutenda kama gadgets zetu zinazokosekana, hasa moja inayoitwa `__libc_csu_init`.
|
||||
Wakati programu inatumia maktaba fulani (kama libc), ina baadhi ya kazi zilizojengwa ndani kwa ajili ya kusimamia jinsi vipande tofauti vya programu vinavyoongea na kila mmoja. Miongoni mwa kazi hizi kuna baadhi ya vito vilivyofichwa ambavyo vinaweza kutenda kama gadgets zetu zinazokosekana, hasa moja inayoitwa `__libc_csu_init`.
|
||||
|
||||
### The Magic Gadgets in \_\_libc\_csu\_init
|
||||
|
||||
|
@ -41,14 +41,14 @@ Hii gadget inatupa uwezo wa kudhibiti hizi registers kwa kupopoa thamani kutoka
|
|||
|
||||
2. Mfululizo wa pili unatumia thamani tulizoweka kufanya mambo kadhaa:
|
||||
* **Hamisha thamani maalum kwenye registers nyingine**, na kuziandaa kwa ajili yetu kuzitumia kama vigezo katika kazi.
|
||||
* **Fanya wito kwa eneo** lililopangwa kwa kuongeza pamoja thamani katika r15 na rbx, kisha kuzaa rbx kwa 8.
|
||||
* **Fanya wito kwa eneo** lililopangwa kwa kujumlisha thamani katika r15 na rbx, kisha kuzidisha rbx kwa 8.
|
||||
```armasm
|
||||
mov rdx, r15;
|
||||
mov rsi, r14;
|
||||
mov edi, r13d;
|
||||
call qword [r12 + rbx*8];
|
||||
```
|
||||
2. Labda hujui anwani yoyote ya kuandika hapo na unahitaji **amri ya `ret`**. Kumbuka kwamba gadget ya pili pia itamalizika kwa **`ret`**, lakini utahitaji kukutana na **masharti** fulani ili kufikia hiyo:
|
||||
3. Labda hujui anwani yoyote ya kuandika hapo na unahitaji **amri ya `ret`**. Kumbuka kwamba gadget ya pili pia itamalizika kwa **`ret`**, lakini utahitaji kukutana na **masharti** fulani ili kufikia hiyo:
|
||||
```armasm
|
||||
mov rdx, r15;
|
||||
mov rsi, r14;
|
||||
|
@ -96,7 +96,7 @@ Fikiria unataka kufanya syscall au kuita kazi kama `write()` lakini unahitaji th
|
|||
|
||||
Hapa ndipo **ret2csu** inapoingia:
|
||||
|
||||
1. **Weka Register**: Tumia gadget ya kwanza ya kichawi kutoa thamani kutoka kwenye stack na kuingia rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), na r15.
|
||||
1. **Weka Register**: Tumia gadget ya kwanza ya kichawi kupop values kutoka kwenye stack na kuingia rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), na r15.
|
||||
2. **Tumia Gadget ya Pili**: Ukiwa na register hizo zimewekwa, unatumia gadget ya pili. Hii inakuwezesha kuhamasisha thamani zako ulizochagua katika `rdx` na `rsi` (kutoka r14 na r13, mtawalia), ukitayarisha vigezo kwa wito wa kazi. Zaidi ya hayo, kwa kudhibiti `r15` na `rbx`, unaweza kufanya programu iite kazi iliyoko kwenye anwani unayoihesabu na kuweka katika `[r15 + rbx*8]`.
|
||||
|
||||
Una [**mfano unaotumia mbinu hii na kuielezea hapa**](https://ir0nstone.gitbook.io/notes/types/stack/ret2csu/exploitation), na hii ndiyo exploit ya mwisho iliyotumika:
|
||||
|
@ -129,7 +129,7 @@ Kumbuka kwamba exploit iliyopita haikusudiwi kufanya **`RCE`**, inakusudia tu ku
|
|||
|
||||
### Kupita simu na kufikia ret
|
||||
|
||||
Exploit ifuatayo ilitolewa [**kutoka kwenye ukurasa huu**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) ambapo **ret2csu** inatumika lakini badala ya kutumia simu, in **kupita kulinganisha na kufikia `ret`** baada ya simu:
|
||||
Exploit ifuatayo ilitolewa [**kutoka kwenye ukurasa huu**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) ambapo **ret2csu** inatumika lakini badala ya kutumia simu, in **akipita kulinganisha na kufikia `ret`** baada ya simu:
|
||||
```python
|
||||
# Code from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html
|
||||
# This exploit is based off of: https://www.rootnetsec.com/ropemporium-ret2csu/
|
||||
|
|
Loading…
Add table
Reference in a new issue