mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/android-app-pentesting/README.md', 's
This commit is contained in:
parent
366ddd0fb5
commit
175f4716c0
@ -326,6 +326,7 @@
|
||||
- [Android APK Checklist](mobile-pentesting/android-checklist.md)
|
||||
- [Android Applications Pentesting](mobile-pentesting/android-app-pentesting/README.md)
|
||||
- [Accessibility Services Abuse](mobile-pentesting/android-app-pentesting/accessibility-services-abuse.md)
|
||||
- [Android Anti Instrumentation And Ssl Pinning Bypass](mobile-pentesting/android-app-pentesting/android-anti-instrumentation-and-ssl-pinning-bypass.md)
|
||||
- [Android Applications Basics](mobile-pentesting/android-app-pentesting/android-applications-basics.md)
|
||||
- [Android Task Hijacking](mobile-pentesting/android-app-pentesting/android-task-hijacking.md)
|
||||
- [ADB Commands](mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
|
@ -20,7 +20,7 @@ Angalia orodha ifuatayo ya [**Amri za ADB**](adb-commands.md) kujifunza jinsi ya
|
||||
## Smali
|
||||
|
||||
Wakati mwingine ni muhimu **kubadilisha msimbo wa programu** ili kufikia **habari zilizofichwa** (labda nywila au bendera zilizofichwa vizuri). Hivyo, inaweza kuwa ya kuvutia decompile apk, kubadilisha msimbo na kuirekebisha.\
|
||||
[**Katika mafunzo haya** unaweza **kujifunza jinsi ya decompile APK, kubadilisha msimbo wa Smali na kuirekebisha APK** na kazi mpya](smali-changes.md). Hii inaweza kuwa ya manufaa kama **mbadala kwa majaribio kadhaa wakati wa uchambuzi wa dynamic** ambayo yatpresentwa. Hivyo, **weka daima katika akili uwezekano huu**.
|
||||
[**Katika mafunzo haya** unaweza **kujifunza jinsi ya decompile APK, kubadilisha msimbo wa Smali na kuirekebisha APK** na kazi mpya](smali-changes.md). Hii inaweza kuwa ya manufaa kama **mbadala kwa majaribio kadhaa wakati wa uchambuzi wa dynamic** ambao utawasilishwa. Hivyo, **weka daima katika akili uwezekano huu**.
|
||||
|
||||
## Njia nyingine za kuvutia
|
||||
|
||||
@ -69,20 +69,20 @@ Kwa kuangalia **nyuzi** za APK unaweza kutafuta **nywila**, **URLs** ([https://g
|
||||
|
||||
**Firebase**
|
||||
|
||||
Lipa kipaumbele maalum kwa **firebase URLs** na angalia kama imewekwa vibaya. [Taarifa zaidi kuhusu nini FIrebase na jinsi ya kuikandamiza hapa.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
|
||||
Lipa kipaumbele maalum kwa **firebase URLs** na angalia kama imewekwa vibaya. [Taarifa zaidi kuhusu nini FIrebase na jinsi ya kuitumia hapa.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
|
||||
|
||||
### Basic understanding of the application - Manifest.xml, strings.xml
|
||||
|
||||
**Uchambuzi wa faili za _Manifest.xml_ za programu na **_strings.xml_** unaweza kufichua udhaifu wa usalama**. Faili hizi zinaweza kufikiwa kwa kutumia decompilers au kwa kubadilisha kiendelezi cha faili la APK kuwa .zip na kisha kuzipa.
|
||||
**Uchambuzi wa faili za _Manifest.xml_ na **_strings.xml_** za programu unaweza kufichua udhaifu wa usalama**. Faili hizi zinaweza kufikiwa kwa kutumia decompilers au kwa kubadilisha kiendelezi cha faili la APK kuwa .zip na kisha kuzipa.
|
||||
|
||||
**Udhaifu** ulioainishwa kutoka kwa **Manifest.xml** ni pamoja na:
|
||||
|
||||
- **Programu zinazoweza kudhibitiwa**: Programu zilizowekwa kama zinazoweza kudhibitiwa (`debuggable="true"`) katika faili la _Manifest.xml_ zinatoa hatari kwani zinaruhusu muunganisho ambao unaweza kusababisha unyakuzi. Kwa ufahamu zaidi kuhusu jinsi ya kukandamiza programu zinazoweza kudhibitiwa, rejelea mafunzo juu ya kutafuta na kukandamiza programu zinazoweza kudhibitiwa 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.
|
||||
- **Programu zinazoweza kudhibitiwa**: Programu zilizowekwa kama zinazoweza kudhibitiwa (`debuggable="true"`) katika faili ya _Manifest.xml_ zinatoa hatari kwani zinaruhusu muunganisho ambao unaweza kusababisha matumizi mabaya. Kwa ufahamu zaidi kuhusu jinsi ya kutumia programu zinazoweza kudhibitiwa, rejelea mafunzo kuhusu kutafuta na kutumia programu zinazoweza kudhibitiwa kwenye kifaa.
|
||||
- **Mipangilio ya Nakala**: 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.
|
||||
- **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 kukandamiza 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.
|
||||
- **Vikumbusho vya Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa unyakuzi, huku kukiwa na umakini maalum juu ya jinsi mipango ya URL inavyoshughulikiwa kwa udhaifu wa ingizo.
|
||||
- **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 kutumia 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.
|
||||
- **Vipokezi vya Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa matumizi mabaya, huku kukiwa na umakini maalum kuhusu jinsi mipango ya URL inavyosimamiwa kwa udhaifu wa ingizo.
|
||||
- **Toleo la SDK**: Sifa za `minSdkVersion`, `targetSDKVersion`, na `maxSdkVersion` zinaonyesha toleo la Android linaloungwa mkono, zikisisitiza umuhimu wa kutosaidia toleo la zamani la Android 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.
|
||||
@ -90,7 +90,7 @@ Kutoka kwa faili ya **strings.xml**, taarifa nyeti kama funguo za API, mipango y
|
||||
### 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 inapitisha mwingiliano huo kwa programu ya mwathirika.\
|
||||
Kwa kweli, inamfanya mtumiaji **kutojua kwamba anafanya vitendo kwenye programu ya mwathirika**.
|
||||
Kwa kweli, inafanya **mtumiaji asijue kwamba anafanya vitendo kwenye programu ya mwathirika**.
|
||||
|
||||
Pata taarifa zaidi katika:
|
||||
|
||||
@ -100,7 +100,7 @@ tapjacking.md
|
||||
|
||||
### Task Hijacking
|
||||
|
||||
**Shughuli** yenye **`launchMode`** iliyowekwa kuwa **`singleTask` bila `taskAffinity`** iliyofafanuliwa inakuwa hatarini kwa Task Hijacking. Hii inamaanisha kwamba, **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 kwamba, **programu** inaweza kusakinishwa na ikiwa itazinduliwa kabla ya programu halisi inaweza **kuchukua kazi ya programu halisi** (hivyo mtumiaji atakuwa akifanya kazi na **programu mbaya akidhani anatumia halisi**).
|
||||
|
||||
Taarifa zaidi katika:
|
||||
|
||||
@ -112,28 +112,28 @@ android-task-hijacking.md
|
||||
|
||||
**Hifadhi ya Ndani**
|
||||
|
||||
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 **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:**
|
||||
- **Hakikisha** kwamba 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:**
|
||||
1. **Uchambuzi wa Kawaida:**
|
||||
- **Hakikisha** kwamba matumizi ya `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` yanachunguzwa kwa makini. Njia hizi **zinaweza kufichua** faili kwa **ufikiaji usioidhinishwa au usioidhinishwa**.
|
||||
2. **Uchambuzi wa Dinamik:**
|
||||
- **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.
|
||||
|
||||
**Hifadhi ya Nje**
|
||||
|
||||
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.
|
||||
2. **Masuala ya Usalama**:
|
||||
- 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 kufanya kuwa na usalama mdogo.
|
||||
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.
|
||||
- Kuhifadhi faili za kutekeleza au faili za darasa kwenye hifadhi ya nje kwa ajili ya upakiaji wa dinamik kunakataliwa vikali.
|
||||
- Ikiwa programu yako inapaswa kupata faili za kutekeleza 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.
|
||||
- Kuhifadhi executable au faili za darasa kwenye hifadhi ya nje kwa ajili ya upakiaji wa dinamik kunashauriwa kutoendeshwa.
|
||||
- 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.
|
||||
|
||||
Hifadhi ya nje inaweza kufikiwa katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
||||
Hifadhi ya nje inaweza **kufikiwa** katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
||||
|
||||
> [!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.
|
||||
@ -162,14 +162,14 @@ Wakandarasi wengine huhifadhi data nyeti katika hifadhi ya ndani na kuificha kwa
|
||||
|
||||
**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
|
||||
|
||||
- Inapendekezwa **kuficha APK** ili kufanya kazi ya mhandisi wa kurudi kuwa ngumu kwa washambuliaji.
|
||||
- Inapendekezwa **kuficha APK** ili kufanya kazi ya mhandisi wa kurudi nyuma kuwa ngumu kwa washambuliaji.
|
||||
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya **ukaguzi wake mwenyewe kuona kama simu imejikita** na kuchukua hatua zinazofaa.
|
||||
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kuangalia ikiwa **emulator** inatumika.
|
||||
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa **kuangalia uadilifu wake mwenyewe kabla ya kutekeleza** ili kuangalia ikiwa imebadilishwa.
|
||||
- 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.
|
||||
- Tumia [**APKiD**](https://github.com/rednaga/APKiD) kuangalia ni compiler/packer/obfuscator gani ilitumika kujenga APK
|
||||
|
||||
### Programu ya React Native
|
||||
@ -192,9 +192,9 @@ Soma ukurasa ufuatao kujifunza jinsi ya kufikia kwa urahisi msimbo wa C# wa prog
|
||||
|
||||
Kulingana na [**blogu hii**](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 Kawaida
|
||||
|
||||
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 vinavyojulikana** (ambayo inaonyesha kwa chombo **mahali** ambapo **ingizo** linadhibitiwa na mtumiaji), **sinks** (ambayo inaonyesha kwa chombo **mahali hatari** ambapo ingizo la mtumiaji mbaya linaweza kusababisha madhara) na **sheria**. Sheria 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 vinavyojulikana** (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.
|
||||
|
||||
Kwa maarifa haya, **mariana-trench itakagua msimbo na kupata udhaifu unaowezekana ndani yake**.
|
||||
|
||||
@ -208,7 +208,7 @@ Programu inaweza kuwa na siri (funguo za API, nywila, URLs zilizofichwa, subdoma
|
||||
bypass-biometric-authentication-android.md
|
||||
{{#endref}}
|
||||
|
||||
### Kazi Nyingine za Kuvutia
|
||||
### Kazi Mwingine za Kuvutia
|
||||
|
||||
- **Utekelezaji wa msimbo**: `Runtime.exec(), ProcessBuilder(), native code:system()`
|
||||
- **Tuma SMS**: `sendTextMessage, sendMultipartTestMessage`
|
||||
@ -231,7 +231,7 @@ content-protocol.md
|
||||
|
||||
### Uchambuzi wa Kijani Mtandaoni
|
||||
|
||||
Unaweza kuunda **akaunti ya bure** katika: [https://appetize.io/](https://appetize.io). Jukwaa hili linakuruhusu **kupakia** na **kutekeleza** APKs, hivyo ni muhimu kuona jinsi apk inavyofanya kazi.
|
||||
Unaweza kuunda **akaunti ya bure** katika: [https://appetize.io/](https://appetize.io). Jukwaa hili linakuwezesha **kupakia** na **kutekeleza** APKs, hivyo ni muhimu kuona jinsi apk inavyofanya kazi.
|
||||
|
||||
Unaweza hata **kuona kumbukumbu za programu yako** kwenye wavuti na kuungana kupitia **adb**.
|
||||
|
||||
@ -243,7 +243,7 @@ Shukrani kwa muunganisho wa ADB unaweza kutumia **Drozer** na **Frida** ndani ya
|
||||
|
||||
#### Kutumia emulator
|
||||
|
||||
- [**Android Studio**](https://developer.android.com/studio) (Unaweza kuunda **x86** na **arm** vifaa, na kulingana na [**hii**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**toleo la hivi karibuni la x86** lina **unga mkono maktaba za ARM** bila kuhitaji emulator ya arm yenye polepole).
|
||||
- [**Android Studio**](https://developer.android.com/studio) (Unaweza kuunda **x86** na **arm** vifaa, na kulingana na [**hii**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**toleo la hivi karibuni la x86** lina **unga mkono maktaba za ARM** bila kuhitaji emulator ya arm yenye kasi polepole).
|
||||
- Jifunze jinsi ya kuiseti kwenye ukurasa huu:
|
||||
|
||||
{{#ref}}
|
||||
@ -272,7 +272,7 @@ Unahitaji kuwasha **chaguzi za ufuatiliaji** na itakuwa vizuri ikiwa unaweza **k
|
||||
4. Bonyeza **Nambari ya kujenga** mara 7.
|
||||
5. Rudi nyuma na utapata **Chaguzi za Mwandamizi**.
|
||||
|
||||
> Mara tu umepakia programu, jambo la kwanza unapaswa kufanya ni kujaribu na kuchunguza inafanya nini, inafanya kazi vipi na kuzoea nayo.\
|
||||
> Mara tu umepofunga 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 kijani kwa kutumia uchambuzi wa kijani wa MobSF + pidcat**, ili tuweze **kujifunza jinsi programu inavyofanya kazi** wakati MobSF **inakamata** data nyingi **za kuvutia** ambazo unaweza kupitia baadaye.
|
||||
|
||||
### Kuvuja kwa Data zisizokusudiwa
|
||||
@ -283,21 +283,21 @@ Wakandarasi wanapaswa kuwa waangalifu kuhusu kufichua **taarifa za ufuatiliaji**
|
||||
|
||||
> [!WARNING]
|
||||
> Kumbuka kwamba kuanzia **baada ya Android 4.0**, **programu zinaweza kufikia kumbukumbu zao tu**. Hivyo programu haziwezi kufikia kumbukumbu za programu nyingine.\
|
||||
> Hata hivyo, bado inapendekezwa **kutokuficha taarifa nyeti**.
|
||||
> Hata hivyo, bado inapendekezwa **kutokufichua taarifa nyeti**.
|
||||
|
||||
**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 Ajali**
|
||||
|
||||
Ikiwa programu **inaanguka** na **kuhifadhi kumbukumbu**, kumbukumbu hizi zinaweza kusaidia washambuliaji, hasa wakati programu haiwezi kurudi nyuma. Ili kupunguza hatari hii, epuka kuficha kumbukumbu wakati wa kuanguka, na ikiwa kumbukumbu lazima zitumwe kupitia mtandao, hakikisha zinatumwa kupitia njia ya SSL kwa usalama.
|
||||
Ikiwa programu **inasambaratika** na **kuhifadhi kumbukumbu**, kumbukumbu hizi zinaweza kusaidia washambuliaji, hasa wakati programu haiwezi kurudi nyuma. Ili kupunguza hatari hii, epuka kufichua kumbukumbu wakati wa ajali, na ikiwa kumbukumbu lazima zitumwe kupitia mtandao, hakikisha zinatumwa kupitia njia ya SSL kwa usalama.
|
||||
|
||||
Kama pentester, **jaribu kuangalia kumbukumbu hizi**.
|
||||
|
||||
**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 kuvuja kwa data zinazoweza kutokea, inapendekezwa **kukamata trafiki ya programu** na kuangalia ikiwa kuna taarifa nyeti zinazotumwa kwa huduma za vyama vya tatu.
|
||||
|
||||
### SQLite DBs
|
||||
|
||||
@ -306,23 +306,23 @@ Maktaba zinapaswa kuwa katika `/data/data/the.package.name/databases` kama `/dat
|
||||
|
||||
Ikiwa maktaba inahifadhi taarifa za siri na ime **fichwa** lakini unaweza **kupata** **nywila** ndani ya programu bado ni **udhaifu**.
|
||||
|
||||
Panga meza kwa kutumia `.tables` na panga safu za meza kwa kufanya `.schema <table_name>`
|
||||
Taja meza kwa kutumia `.tables` na taja safu za meza kwa kufanya `.schema <table_name>`
|
||||
|
||||
### Drozer (Kuvunja Shughuli, Watoa Maudhui na Huduma)
|
||||
### Drozer (Shughuli za Kutekeleza, Watoa Maudhui na Huduma)
|
||||
|
||||
Kutoka [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** inakuruhusu **kuchukua jukumu la programu ya Android** na kuingiliana na programu nyingine. Inaweza kufanya **chochote ambacho programu iliyosakinishwa inaweza kufanya**, kama kutumia mfumo wa Mawasiliano ya Mchakato wa Android (IPC) na kuingiliana na mfumo wa uendeshaji wa chini.\
|
||||
Drozer ni chombo muhimu kwa **kuvunja shughuli zilizotolewa, huduma zilizotolewa na Watoa Maudhui** kama utakavyofundishwa katika sehemu zifuatazo.
|
||||
Kutoka [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** inakuwezesha **kuchukua jukumu la programu ya Android** na kuingiliana na programu nyingine. Inaweza kufanya **chochote ambacho programu iliyosakinishwa inaweza kufanya**, kama kutumia mfumo wa Mawasiliano ya Mchakato wa Android (IPC) na kuingiliana na mfumo wa uendeshaji wa chini.\
|
||||
Drozer ni chombo muhimu kwa **kufanya udhaifu wa shughuli zilizotolewa, huduma zilizotolewa na Watoa Maudhui** kama utakavyofundishwa katika sehemu zifuatazo.
|
||||
|
||||
### Kuvunja Shughuli Zilizotolewa
|
||||
### Kutilia Mkazo Shughuli Zilizotolewa
|
||||
|
||||
[**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.
|
||||
|
||||
**Kupita Uthibitishaji**
|
||||
|
||||
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.**
|
||||
Wakati shughuli inapotolewa unaweza kuita skrini yake kutoka programu ya nje. Hivyo, ikiwa shughuli yenye **taarifa nyeti** ime **tolewa** unaweza **kupita** mitambo ya **uthibitishaji** **ili kuipata.**
|
||||
|
||||
[**Jifunze jinsi ya kuvunja shughuli zilizotolewa na Drozer.**](drozer-tutorial/index.html#activities)
|
||||
[**Jifunze jinsi ya kutumia udhaifu wa shughuli zilizotolewa na Drozer.**](drozer-tutorial/index.html#activities)
|
||||
|
||||
Unaweza pia kuanzisha shughuli iliyotolewa kutoka adb:
|
||||
|
||||
@ -331,7 +331,7 @@ Unaweza pia kuanzisha shughuli iliyotolewa kutoka adb:
|
||||
```bash
|
||||
adb shell am start -n com.example.demo/com.example.test.MainActivity
|
||||
```
|
||||
**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), kwa wazi hii ni hatari tu katika toleo za zamani (API versions < 21).
|
||||
**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).
|
||||
|
||||
> [!TIP]
|
||||
> Kumbuka kwamba kupita kwa idhini si kila wakati udhaifu, itategemea jinsi kupita kunavyofanya kazi na ni taarifa gani zinazoonyeshwa.
|
||||
@ -347,7 +347,7 @@ Ikiwa tapjacking haizuiwi, unaweza kutumia shughuli iliyosambazwa kufanya **mtum
|
||||
### Kutumia Watoa Maudhui - Kufikia na kubadilisha taarifa nyeti
|
||||
|
||||
[**Soma hii ikiwa unataka kukumbusha nini ni Mtoa Maudhui.**](android-applications-basics.md#content-provider)\
|
||||
Watoa maudhui kimsingi hutumiwa **kushiriki data**. Ikiwa programu ina watoa maudhui wanaopatikana unaweza kuwa na uwezo wa **kuchota taarifa nyeti** kutoka kwao. Pia ni ya kuvutia kujaribu **SQL injections** na **Path Traversals** kwani zinaweza kuwa na udhaifu.
|
||||
Watoa maudhui kimsingi hutumiwa **kushiriki data**. Ikiwa programu ina watoa maudhui wanaopatikana unaweza kuwa na uwezo wa **kuchota taarifa nyeti** kutoka kwao. Pia ni muhimu kujaribu **SQL injections** na **Path Traversals** kwani zinaweza kuwa na udhaifu.
|
||||
|
||||
[**Jifunze jinsi ya kutumia Watoa Maudhui na Drozer.**](drozer-tutorial/index.html#content-providers)
|
||||
|
||||
@ -356,7 +356,7 @@ Watoa maudhui kimsingi hutumiwa **kushiriki data**. Ikiwa programu ina watoa mau
|
||||
[**Soma hii ikiwa unataka kukumbusha nini ni Huduma.**](android-applications-basics.md#services)\
|
||||
Kumbuka kwamba vitendo vya Huduma huanza katika njia `onStartCommand`.
|
||||
|
||||
Huduma kimsingi ni kitu ambacho **kinaweza kupokea data**, **kuchakata** na **kurudisha** (au la) jibu. Hivyo, ikiwa programu inasambaza huduma fulani unapaswa **kuangalia** **msimbo** ili kuelewa inafanya nini na **kujaribu** kwa **dynamically** ili kuchota taarifa za siri, kupita hatua za uthibitishaji...\
|
||||
Huduma kimsingi ni kitu ambacho **kinaweza kupokea data**, **kuchakata** na **kurudisha** (au la) jibu. Hivyo, ikiwa programu inasambaza huduma fulani unapaswa **kuangalia** **kod** ili kuelewa inafanya nini na **kujaribu** kwa **dynamically** ili kuchota taarifa za siri, kupita hatua za uthibitishaji...\
|
||||
[**Jifunze jinsi ya kutumia Huduma na Drozer.**](drozer-tutorial/index.html#services)
|
||||
|
||||
### **Kutumia Vastika za Matangazo**
|
||||
@ -394,7 +394,7 @@ Kila wakati unapotafuta deeplink hakikisha kuwa **haipokei data nyeti (kama nywi
|
||||
**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` .\
|
||||
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 domain), **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/).
|
||||
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**
|
||||
|
||||
@ -408,7 +408,7 @@ Ripoti ya [bug bounty](https://hackerone.com/reports/855618) kuhusu viungo (_/.w
|
||||
|
||||
#### 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 usanidi usio salama wa TLS na uhamasishaji wa data nyeti kupitia njia zisizo na usalama unaweza 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
|
||||
|
||||
@ -416,7 +416,7 @@ SSL Pinning ni hatua ya usalama ambapo programu inathibitisha cheti cha seva dhi
|
||||
|
||||
#### 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 hii, 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 mwongozo huu**](make-apk-accept-ca-certificate.md).
|
||||
|
||||
@ -426,7 +426,7 @@ 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:
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
- 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 **MobSF uchambuzi wa dynamic** (ilielezwa hapa chini)
|
||||
@ -434,12 +434,12 @@ Wakati SSL Pinning inatekelezwa, kuipita inakuwa muhimu ili kukagua trafiki ya H
|
||||
|
||||
#### 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](https://www.frida.re) ni zana ya uhandisi wa dynamic kwa ajili ya waendelezaji, wahandisi wa kurudi, na watafiti wa usalama.\
|
||||
**Unaweza kufikia programu inayotembea na kuunganisha mbinu wakati wa wakati wa kukarabati, kubadilisha tabia, kubadilisha thamani, kutoa thamani, kukimbia code tofauti...**\
|
||||
[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 kukarabati tabia, kubadilisha thamani, kutoa thamani, kuendesha code tofauti...**\
|
||||
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)
|
||||
@ -448,9 +448,15 @@ Ikiwa unataka kufanya pentest kwenye programu za Android unahitaji kujua jinsi y
|
||||
- Unaweza kupata baadhi ya scripts za Frida hapa: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
- Jaribu kuipita mitambo ya anti-debugging / anti-frida kwa kupakia Frida kama ilivyoonyeshwa katika [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (chombo [linjector](https://github.com/erfur/linjector-rs))
|
||||
|
||||
#### Anti-instrumentation & SSL pinning bypass workflow
|
||||
|
||||
{{#ref}}
|
||||
android-anti-instrumentation-and-ssl-pinning-bypass.md
|
||||
{{#endref}}
|
||||
|
||||
### **Dump Memory - Fridump**
|
||||
|
||||
Angalia ikiwa programu inahifadhi taarifa nyeti ndani ya kumbukumbu ambayo haipaswi kuhifadhiwa kama nywila au maneno ya kukumbuka.
|
||||
Angalia ikiwa programu inahifadhi taarifa nyeti ndani ya kumbukumbu ambayo haipaswi kuhifadhi kama nywila au maneno ya kukumbuka.
|
||||
|
||||
Kwa kutumia [**Fridump3**](https://github.com/rootbsd/fridump3) unaweza kutupa kumbukumbu ya programu kwa:
|
||||
```bash
|
||||
@ -485,7 +491,7 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app
|
||||
|
||||
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 **habari nyeti**, mtu mwenye ufikiaji wa picha hiyo anaweza **kuchukua habari hiyo** (kumbuka kuwa unahitaji root ili kuweza kuifikia).
|
||||
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).
|
||||
|
||||
Picha hizo kwa kawaida huhifadhiwa katika: **`/data/system_ce/0/snapshots`**
|
||||
|
||||
@ -506,7 +512,7 @@ Hatari iko katika kuruhusu washambuliaji kuanzisha vipengele vya programu visivy
|
||||
### Mambo Muhimu ya Kujifunza
|
||||
|
||||
- **Kuingilia kwa Intent** ni sawa na tatizo la Open Redirect la wavuti.
|
||||
- Uhalifu unahusisha kupitisha vitu vya `Intent` kama extras, ambavyo vinaweza kuhamasishwa kutekeleza operesheni zisizo salama.
|
||||
- Uhalifu unahusisha kupitisha vitu vya `Intent` kama ziada, ambavyo vinaweza kuelekezwa kutekeleza operesheni zisizo salama.
|
||||
- Inaweza kufichua vipengele visivyoweza kusambazwa na watoa maudhui kwa washambuliaji.
|
||||
- Kubadilisha URL ya `WebView` kuwa `Intent` kunaweza kuwezesha vitendo visivyokusudiwa.
|
||||
|
||||
@ -514,8 +520,8 @@ 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:
|
||||
|
||||
- **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).
|
||||
- **SQL Injection:** Unaposhughulika na maswali ya dynamic au Watoa-Maudhui hakikisha unatumia maswali yaliyopangwa.
|
||||
- **JavaScript Injection (XSS):** Hakikisha kuwa msaada wa JavaScript na Plugin umezimwa kwa WebViews zozote (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).
|
||||
- **Cookies za Milele**: Katika kesi kadhaa wakati programu ya android inamaliza kikao, cookie haifutwi au inaweza hata kuhifadhiwa kwenye diski.
|
||||
- [**Bendera Salama** katika cookies](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
|
||||
@ -536,28 +542,28 @@ docker pull opensecurity/mobile-security-framework-mobsf
|
||||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||
```
|
||||
Kumbuka kwamba MobSF inaweza kuchambua **Android**(apk)**, IOS**(ipa) **na Windows**(apx) programu (_Programu za Windows lazima zichambuliwe kutoka kwa MobSF iliyosakinishwa kwenye mwenyeji wa Windows_).\
|
||||
Pia, ikiwa utaunda **ZIP** faili yenye msimbo wa chanzo wa programu ya **Android** au **IOS** (nenda kwenye folda ya mzizi ya programu, chagua kila kitu na uunde faili la ZIP), itakuwa na uwezo wa kuichambua pia.
|
||||
Pia, ikiwa unaunda **ZIP** faili yenye msimbo wa chanzo wa programu ya **Android** au **IOS** (nenda kwenye folda ya mzizi ya programu, chagua kila kitu na uunde faili la ZIP), itakuwa na uwezo wa kuichambua pia.
|
||||
|
||||
MobSF pia inakuwezesha kufanya **diff/Compare** uchambuzi na kuunganisha **VirusTotal** (utahitaji kuweka funguo yako ya API katika _MobSF/settings.py_ na kuifanya iweze: `VT_ENABLED = TRUE` `VT_API_KEY = <Funguo yako ya API>` `VT_UPLOAD = TRUE`). Unaweza pia kuweka `VT_UPLOAD` kuwa `False`, kisha **hash** itapakiwa badala ya faili.
|
||||
MobSF pia inakuwezesha kufanya **diff/Compare** uchambuzi na kuunganisha **VirusTotal** (utahitaji kuweka funguo yako ya API katika _MobSF/settings.py_ na kuifanya iweze: `VT_ENABLED = TRUE` `VT_API_KEY = <Funguo yako ya API>` `VT_UPLOAD = TRUE`). Unaweza pia kuweka `VT_UPLOAD` kuwa `False`, kisha **hash** itakuwa **upload** badala ya faili.
|
||||
|
||||
### Uchambuzi wa Kisaidizi wa Kijamii na MobSF
|
||||
### Uchambuzi wa Kisaidizi wa Dynamic na MobSF
|
||||
|
||||
**MobSF** pia inaweza kuwa na msaada mkubwa kwa **uchambuzi wa kisaidizi** katika **Android**, lakini katika kesi hiyo utahitaji kusakinisha MobSF na **genymotion** kwenye mwenyeji wako (VM au Docker haitafanya kazi). _Kumbuka: Unahitaji **kuanzisha kwanza VM katika genymotion** na **kisha MobSF.**_\
|
||||
**MobSF** pia inaweza kuwa na msaada mkubwa kwa **uchambuzi wa dynamic** katika **Android**, lakini katika kesi hiyo utahitaji kusakinisha MobSF na **genymotion** kwenye mwenyeji wako (VM au Docker haitafanya kazi). _Kumbuka: Unahitaji **kuanzisha kwanza VM katika genymotion** na **kisha MobSF.**_\
|
||||
**MobSF dynamic analyser** inaweza:
|
||||
|
||||
- **Dump data za programu** (URLs, logi, clipboard, picha za skrini ulizofanya, picha za skrini zilizofanywa na "**Exported Activity Tester**", barua pepe, hifadhidata za SQLite, faili za XML, na faili nyingine zilizoundwa). Hii yote inafanywa kiotomatiki isipokuwa kwa picha za skrini, unahitaji kubonyeza unapohitaji picha ya skrini au unahitaji kubonyeza "**Exported Activity Tester**" ili kupata picha za skrini za shughuli zote zilizofanywa.
|
||||
- **Dump data za programu** (URLs, logs, clipboard, picha za skrini ulizofanya, picha za skrini zilizofanywa na "**Exported Activity Tester**", barua pepe, hifadhidata za SQLite, faili za XML, na faili nyingine zilizoundwa). Hii yote inafanywa kiotomatiki isipokuwa kwa picha za skrini, unahitaji kubonyeza unapohitaji picha ya skrini au unahitaji kubonyeza "**Exported Activity Tester**" ili kupata picha za skrini za shughuli zote zilizofanywa.
|
||||
- Kukamata **trafiki ya HTTPS**
|
||||
- Kutumia **Frida** kupata **maelezo ya wakati wa kukimbia**
|
||||
- Kutumia **Frida** kupata **maelezo ya wakati wa utekelezaji**
|
||||
|
||||
Kuanzia toleo la **android > 5**, itaanza **Frida** kiotomatiki na kuweka mipangilio ya **proxy** ya kimataifa ili **kukamata** trafiki. Itakamata tu trafiki kutoka kwa programu iliyojaribiwa.
|
||||
|
||||
**Frida**
|
||||
|
||||
Kwa kawaida, itatumia pia baadhi ya Scripts za Frida ili **kupita SSL pinning**, **ugunduzi wa root** na **ugunduzi wa debugger** na **kufuatilia APIs za kuvutia**.\
|
||||
MobSF pia inaweza **kuitisha shughuli zilizofanywa**, kuchukua **picha za skrini** za hizo na **kuhifadhi** kwa ripoti.
|
||||
Kwa kawaida, itatumia baadhi ya Scripts za Frida ili **kupita SSL pinning**, **ugunduzi wa root** na **ugunduzi wa debugger** na **kufuatilia APIs za kuvutia**.\
|
||||
MobSF pia inaweza **kuita shughuli zilizofanywa**, kuchukua **picha za skrini** za hizo na **kuhifadhi** kwa ripoti.
|
||||
|
||||
Ili **kuanza** upimaji wa kisaidizi bonyeza kitufe kibichi: "**Start Instrumentation**". Bonyeza "**Frida Live Logs**" kuona logi zinazozalishwa na scripts za Frida na "**Live API Monitor**" kuona kila mwito kwa mbinu zilizoshikiliwa, hoja zilizopitishwa na thamani zilizorejeshwa (hii itaonekana baada ya kubonyeza "Start Instrumentation").\
|
||||
MobSF pia inakuwezesha kupakia **scripts zako za Frida** (ili kutuma matokeo ya scripts zako za Ijumaa kwa MobSF tumia kazi `send()`). Pia ina **scripts kadhaa zilizotayarishwa awali** ambazo unaweza kupakia (unaweza kuongeza zaidi katika `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), chagua tu **zinazo**, bonyeza "**Load**" na bonyeza "**Start Instrumentation**" (utaweza kuona logi za hizo scripts ndani ya "**Frida Live Logs**").
|
||||
Ili **kuanza** upimaji wa dynamic bonyeza kitufe kibichi: "**Start Instrumentation**". Bonyeza "**Frida Live Logs**" kuona logs zinazozalishwa na scripts za Frida na "**Live API Monitor**" kuona kila mwito kwa mbinu zilizoshikiliwa, hoja zilizopitishwa na thamani zilizorejeshwa (hii itaonekana baada ya kubonyeza "Start Instrumentation").\
|
||||
MobSF pia inakuwezesha kupakia **scripts zako za Frida** (ili kutuma matokeo ya scripts zako za Ijumaa kwa MobSF tumia kazi `send()`). Pia ina **scripts kadhaa zilizotayarishwa awali** ambazo unaweza kupakia (unaweza kuongeza zaidi katika `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), chagua tu **zinazo**, bonyeza "**Load**" na bonyeza "**Start Instrumentation**" (utaweza kuona logs za hizo scripts ndani ya "**Frida Live Logs**").
|
||||
|
||||
.png>)
|
||||
|
||||
@ -565,7 +571,7 @@ Zaidi ya hayo, una baadhi ya kazi za ziada za Frida:
|
||||
|
||||
- **Enumerate Loaded Classes**: Itachapisha kila darasa lililopakiwa
|
||||
- **Capture Strings**: Itachapisha kila nyenzo iliyokamatwa wakati wa kutumia programu (sauti nyingi)
|
||||
- **Capture String Comparisons**: Inaweza kuwa ya manufaa sana. It **onyeshe nyenzo 2 zinazolinganishwa** na ikiwa matokeo yalikuwa Kweli au Uongo.
|
||||
- **Capture String Comparisons**: Inaweza kuwa ya manufaa sana. It **onyesha nyenzo 2 zinazolinganishwa** 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.
|
||||
- **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.
|
||||
@ -574,7 +580,7 @@ Mara tu unapochagua moduli ya ziada unayotaka kutumia unahitaji kubonyeza "**Sta
|
||||
|
||||
**Shell**
|
||||
|
||||
Mobsf pia inakuletea shell yenye baadhi ya **adb** amri, **MobSF commands**, na amri za kawaida za **shell** chini ya ukurasa wa uchambuzi wa kisaidizi. Baadhi ya amri za kuvutia:
|
||||
Mobsf pia inakuletea shell yenye baadhi ya **adb** amri, **MobSF commands**, na amri za kawaida za **shell** chini ya ukurasa wa uchambuzi wa dynamic. Baadhi ya amri za kuvutia:
|
||||
```bash
|
||||
help
|
||||
shell ls
|
||||
@ -610,7 +616,7 @@ Hii ni **chombo kizuri kufanya uchambuzi wa static na GUI**
|
||||
|
||||
### [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 zilizo wazi, nia, tapjacking...). Kama ilivyo kwa Drozer, hakuna haja ya ku-root kifaa kinachojaribiwa.
|
||||
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 zilizo wazi, nia, tapjacking...). Kama ilivyo kwa Drozer, hakuna haja ya ku-root kifaa cha mtihani.
|
||||
```bash
|
||||
pip3 install --user qark # --user is only needed if not using a virtualenv
|
||||
qark --apk path/to/my.apk
|
||||
@ -619,7 +625,7 @@ qark --java path/to/specific/java/file.java
|
||||
```
|
||||
### [**ReverseAPK**](https://github.com/1N3/ReverseAPK.git)
|
||||
|
||||
- Inaonyesha faili zote zilizovunjwa kwa ajili ya rejeleo rahisi
|
||||
- Inaonyesha faili zote zilizotolewa kwa ajili ya rejeleo rahisi
|
||||
- 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
|
||||
- Uchambuzi wa msimbo wa chanzo wa statiki kwa ajili ya udhaifu na tabia za kawaida
|
||||
@ -634,7 +640,7 @@ SUPER ni programu ya amri inayoweza kutumika katika Windows, MacOS X na Linux, i
|
||||
|
||||
Sheria zote zinazingatia faili ya `rules.json`, na kila kampuni au mtathmini anaweza kuunda sheria zake mwenyewe kuchambua kile wanachohitaji.
|
||||
|
||||
Pakua binaries za hivi karibuni kutoka kwenye [download page](https://superanalyzer.rocks/download.html)
|
||||
Pakua binaries za hivi punde kutoka kwenye [download page](https://superanalyzer.rocks/download.html)
|
||||
```
|
||||
super-analyzer {apk_file}
|
||||
```
|
||||
@ -652,7 +658,7 @@ Pakua [latest release](https://github.com/vincentcox/StaCoAn/releases):
|
||||
```
|
||||
### [AndroBugs](https://github.com/AndroBugs/AndroBugs_Framework)
|
||||
|
||||
AndroBugs Framework ni mfumo wa uchambuzi wa udhaifu wa Android unaosaidia waendelezaji au hackers kupata udhaifu wa usalama unaoweza kuwepo 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)
|
||||
```
|
||||
python androbugs.py -f [APK file]
|
||||
@ -725,7 +731,7 @@ Ni **deobfuscator ya android ya jumla.** Simplify **inatekeleza programu kwa kar
|
||||
|
||||
### [APKiD](https://github.com/rednaga/APKiD)
|
||||
|
||||
APKiD inakupa taarifa kuhusu **jinsi APK ilivyotengenezwa**. Inatambua waandishi wengi wa **kompyuta**, **pakka**, **obfuscators**, na vitu vingine vya ajabu. Ni [_PEiD_](https://www.aldeid.com/wiki/PEiD) kwa Android.
|
||||
APKiD inakupa taarifa kuhusu **jinsi APK ilivyotengenezwa**. Inatambua waandishi wengi wa **kompyuta**, **paket**, **obfuscators**, na vitu vingine vya ajabu. Ni [_PEiD_](https://www.aldeid.com/wiki/PEiD) kwa Android.
|
||||
|
||||
### Manual
|
||||
|
||||
|
@ -0,0 +1,203 @@
|
||||
# Android Anti-Instrumentation & SSL Pinning Bypass (Frida/Objection)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Ukurasa huu unatoa mchakato wa vitendo wa kurejesha uchambuzi wa dynamic dhidi ya programu za Android ambazo zinagundua/block instrumentation au kutekeleza TLS pinning. Inazingatia uchambuzi wa haraka, ugunduzi wa kawaida, na hooks/tactics zinazoweza kunakiliwa na kupitishwa ili kuzikwepa bila repacking inapowezekana.
|
||||
|
||||
## Detection Surface (nini programu zinakagua)
|
||||
|
||||
- Root checks: su binary, Magisk paths, getprop values, common root packages
|
||||
- Frida/debugger checks (Java): Debug.isDebuggerConnected(), ActivityManager.getRunningAppProcesses(), getRunningServices(), scanning /proc, classpath, loaded libs
|
||||
- Native anti‑debug: ptrace(), syscalls, anti‑attach, breakpoints, inline hooks
|
||||
- Early init checks: Application.onCreate() au process start hooks ambazo zinakabiliwa na crash ikiwa instrumentation ipo
|
||||
- TLS pinning: custom TrustManager/HostnameVerifier, OkHttp CertificatePinner, Conscrypt pinning, native pins
|
||||
|
||||
## Step 1 — Quick win: hide root with Magisk DenyList
|
||||
|
||||
- Enable Zygisk katika Magisk
|
||||
- Enable DenyList, ongeza package lengwa
|
||||
- Reboot na retest
|
||||
|
||||
Programu nyingi tu zinatazama viashiria dhahiri (su/Magisk paths/getprop). DenyList mara nyingi inafanya kazi kuondoa checks za kijinga.
|
||||
|
||||
References:
|
||||
- Magisk (Zygisk & DenyList): https://github.com/topjohnwu/Magisk
|
||||
|
||||
## Step 2 — 30‑second Frida Codeshare tests
|
||||
|
||||
Jaribu scripts za kawaida za drop‑in kabla ya kuingia kwa undani:
|
||||
|
||||
- anti-root-bypass.js
|
||||
- anti-frida-detection.js
|
||||
- hide_frida_gum.js
|
||||
|
||||
Mfano:
|
||||
```bash
|
||||
frida -U -f com.example.app -l anti-frida-detection.js
|
||||
```
|
||||
Hizi kwa kawaida huzuia ukaguzi wa Java root/debug, skana za mchakato/huduma, na ptrace() asilia. Zinatumika kwenye programu zilizo na ulinzi hafifu; malengo yaliyohardishwa yanaweza kuhitaji vidokezo vilivyobinafsishwa.
|
||||
|
||||
- Codeshare: https://codeshare.frida.re/
|
||||
|
||||
## Hatua ya 3 — Pita waandishi wa wakati wa kuanzisha kwa kuungana baadaye
|
||||
|
||||
Ugunduzi mwingi hufanyika tu wakati wa kuzalisha mchakato/onCreate(). Uingizaji wa wakati wa kuzalisha (-f) au vifaa vinakamatwa; kuungana baada ya UI kupakia kunaweza kupita.
|
||||
```bash
|
||||
# Launch the app normally (launcher/adb), wait for UI, then attach
|
||||
frida -U -n com.example.app
|
||||
# Or with Objection to attach to running process
|
||||
aobjection --gadget com.example.app explore # if using gadget
|
||||
```
|
||||
Ikiwa hii inafanya kazi, panua kikao na uendelee na ramani na ukaguzi wa stub.
|
||||
|
||||
## Hatua ya 4 — Ramani ya mantiki ya kugundua kupitia Jadx na uwindaji wa nyuzi
|
||||
|
||||
Maneno muhimu ya triage ya statiki katika Jadx:
|
||||
- "frida", "gum", "root", "magisk", "ptrace", "su", "getprop", "debugger"
|
||||
|
||||
Mifumo ya kawaida ya Java:
|
||||
```java
|
||||
public boolean isFridaDetected() {
|
||||
return getRunningServices().contains("frida");
|
||||
}
|
||||
```
|
||||
Common APIs to review/hook:
|
||||
- android.os.Debug.isDebuggerConnected
|
||||
- android.app.ActivityManager.getRunningAppProcesses / getRunningServices
|
||||
- java.lang.System.loadLibrary / System.load (native bridge)
|
||||
- java.lang.Runtime.exec / ProcessBuilder (probing commands)
|
||||
- android.os.SystemProperties.get (root/emulator heuristics)
|
||||
|
||||
## Step 5 — Runtime stubbing with Frida (Java)
|
||||
|
||||
Override custom guards to return safe values without repacking:
|
||||
```js
|
||||
Java.perform(() => {
|
||||
const Checks = Java.use('com.example.security.Checks');
|
||||
Checks.isFridaDetected.implementation = function () { return false; };
|
||||
|
||||
// Neutralize debugger checks
|
||||
const Debug = Java.use('android.os.Debug');
|
||||
Debug.isDebuggerConnected.implementation = function () { return false; };
|
||||
|
||||
// Example: kill ActivityManager scans
|
||||
const AM = Java.use('android.app.ActivityManager');
|
||||
AM.getRunningAppProcesses.implementation = function () { return java.util.Collections.emptyList(); };
|
||||
});
|
||||
```
|
||||
Kuchunguza ajali za mapema? Tupa madarasa kabla ya kufa ili kubaini majina ya nafasi za ugunduzi zinazoweza kuwa:
|
||||
```js
|
||||
Java.perform(() => {
|
||||
Java.enumerateLoadedClasses({
|
||||
onMatch: n => console.log(n),
|
||||
onComplete: () => console.log('Done')
|
||||
});
|
||||
});
|
||||
```
|
||||
Log na kuzuia mbinu zinazoshukiwa ili kuthibitisha mtiririko wa utekelezaji:
|
||||
```js
|
||||
Java.perform(() => {
|
||||
const Det = Java.use('com.example.security.DetectionManager');
|
||||
Det.checkFrida.implementation = function () {
|
||||
console.log('checkFrida() called');
|
||||
return false;
|
||||
};
|
||||
});
|
||||
```
|
||||
## Step 6 — Fuata njia ya JNI/native wakati vidokezo vya Java vinashindwa
|
||||
|
||||
Fuata alama za kuingia za JNI ili kupata wasakinishaji wa asili na kuanzisha ugunduzi:
|
||||
```bash
|
||||
frida-trace -n com.example.app -i "JNI_OnLoad"
|
||||
```
|
||||
Haraka ya asili ya uchambuzi wa faili za .so zilizofungwa:
|
||||
```bash
|
||||
# List exported symbols & JNI
|
||||
nm -D libfoo.so | head
|
||||
objdump -T libfoo.so | grep Java_
|
||||
strings -n 6 libfoo.so | egrep -i 'frida|ptrace|gum|magisk|su|root'
|
||||
```
|
||||
Interactive/native reversing:
|
||||
- Ghidra: https://ghidra-sre.org/
|
||||
- r2frida: https://github.com/nowsecure/r2frida
|
||||
|
||||
Mfano: neuter ptrace ili kushinda anti‑debug rahisi katika libc:
|
||||
```js
|
||||
const ptrace = Module.findExportByName(null, 'ptrace');
|
||||
if (ptrace) {
|
||||
Interceptor.replace(ptrace, new NativeCallback(function () {
|
||||
return -1; // pretend failure
|
||||
}, 'int', ['int', 'int', 'pointer', 'pointer']));
|
||||
}
|
||||
```
|
||||
Tazama pia: {{#ref}}
|
||||
reversing-native-libraries.md
|
||||
{{#endref}}
|
||||
|
||||
## Hatua ya 7 — Urekebishaji wa Objection (kuweka gadget / kuondoa misingi)
|
||||
|
||||
Unapopendelea kufunga upya badala ya vidokezo vya wakati wa utekelezaji, jaribu:
|
||||
```bash
|
||||
objection patchapk --source app.apk
|
||||
```
|
||||
Notes:
|
||||
- Inahitaji apktool; hakikisha toleo la sasa kutoka kwa mwongozo rasmi ili kuepuka matatizo ya kujenga: https://apktool.org/docs/install
|
||||
- Gadget injection inaruhusu instrumentation bila root lakini bado inaweza kukamatwa na ukaguzi mzito wa wakati wa kuanzisha.
|
||||
|
||||
References:
|
||||
- Objection: https://github.com/sensepost/objection
|
||||
|
||||
## Step 8 — Fallback: Patch TLS pinning for network visibility
|
||||
|
||||
Ikiwa instrumentation imezuiwa, bado unaweza kuchunguza trafiki kwa kuondoa pinning kwa njia ya kudumu:
|
||||
```bash
|
||||
apk-mitm app.apk
|
||||
# Then install the patched APK and proxy via Burp/mitmproxy
|
||||
```
|
||||
- Chombo: https://github.com/shroudedcode/apk-mitm
|
||||
- Kwa hila za kuamini CA za usanidi wa mtandao (na uaminifu wa CA wa mtumiaji wa Android 7+), angalia:
|
||||
{{#ref}}
|
||||
make-apk-accept-ca-certificate.md
|
||||
{{#endref}}
|
||||
{{#ref}}
|
||||
install-burp-certificate.md
|
||||
{{#endref}}
|
||||
|
||||
## Karatasi ya udanganyifu ya amri zilizofaa
|
||||
```bash
|
||||
# List processes and attach
|
||||
frida-ps -Uai
|
||||
frida -U -n com.example.app
|
||||
|
||||
# Spawn with a script (may trigger detectors)
|
||||
frida -U -f com.example.app -l anti-frida-detection.js
|
||||
|
||||
# Trace native init
|
||||
frida-trace -n com.example.app -i "JNI_OnLoad"
|
||||
|
||||
# Objection runtime
|
||||
objection --gadget com.example.app explore
|
||||
|
||||
# Static TLS pinning removal
|
||||
apk-mitm app.apk
|
||||
```
|
||||
## Vidokezo na tahadhari
|
||||
|
||||
- Pendelea kuunganisha baadaye badala ya kuzalisha wakati programu zinaposhindwa kuanzishwa
|
||||
- Baadhi ya ugunduzi hujirudia katika mchakato muhimu (mfano, malipo, uthibitisho) — weka vidokezo vya kazi wakati wa kuvinjari
|
||||
- Changanya statiki na dinamik: tafuta nyuzi katika Jadx ili kupunguza orodha ya madarasa; kisha ungana na mbinu ili kuthibitisha wakati wa utekelezaji
|
||||
- Programu zilizohardishwa zinaweza kutumia pakers na TLS pinning asilia — tarajia kubadilisha msimbo wa asili
|
||||
|
||||
## Marejeleo
|
||||
|
||||
- [Reversing Android Apps: Bypassing Detection Like a Pro](https://www.kayssel.com/newsletter/issue-12/)
|
||||
- [Frida Codeshare](https://codeshare.frida.re/)
|
||||
- [Objection](https://github.com/sensepost/objection)
|
||||
- [apk-mitm](https://github.com/shroudedcode/apk-mitm)
|
||||
- [Jadx](https://github.com/skylot/jadx)
|
||||
- [Ghidra](https://ghidra-sre.org/)
|
||||
- [r2frida](https://github.com/nowsecure/r2frida)
|
||||
- [Apktool install guide](https://apktool.org/docs/install)
|
||||
- [Magisk](https://github.com/topjohnwu/Magisk)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user