Translated ['mobile-pentesting/android-app-pentesting/README.md'] to sw

This commit is contained in:
Translator 2024-09-06 12:55:25 +00:00
parent 7f3f113f6b
commit d096908dab

View file

@ -1,34 +1,34 @@
# Android Applications Pentesting
{% hint style="success" %}
Jifunze na fanya mazoezi ya AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Jifunze na fanya mazoezi ya GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **fuata** sisi kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
Jiunge na [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server kuwasiliana na hackers wenye uzoefu na wawindaji wa bug bounty!
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
**Hacking Insights**\
Shiriki na maudhui yanayoangazia msisimko na changamoto za hacking
Engage with content that delves into the thrill and challenges of hacking
**Real-Time Hack News**\
Baki na habari za hivi punde katika ulimwengu wa hacking kupitia habari na maarifa ya wakati halisi
Keep up-to-date with fast-paced hacking world through real-time news and insights
**Latest Announcements**\
Baki na taarifa kuhusu bug bounties mpya zinazozinduliwa na masasisho muhimu ya jukwaa
Stay informed with the newest bug bounties launching and crucial platform updates
**Jiunge nasi kwenye** [**Discord**](https://discord.com/invite/N3FrSbmwdy) na uanze kushirikiana na hackers bora leo!
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
## Misingi ya Programu za Android
@ -40,17 +40,17 @@ Inapendekezwa sana kuanza kusoma ukurasa huu ili kujua kuhusu **sehemu muhimu za
## ADB (Android Debug Bridge)
Hii ni chombo kikuu unachohitaji kuungana na kifaa cha android (kilichotengenezwa au halisi).\
**ADB** inaruhusu kudhibiti vifaa ama kupitia **USB** au **Network** kutoka kwa kompyuta. Hii inaruhusu **kuhamasisha** faili katika mwelekeo wote, **ufungaji** na **kuondoa** programu, **kutekeleza** amri za shell, **kuhifadhi** data, **kusoma** kumbukumbu, kati ya kazi nyingine.
Hii ni zana kuu unayohitaji kuungana na kifaa cha android (kilichotengenezwa au halisi).\
**ADB** inaruhusu kudhibiti vifaa ama kupitia **USB** au **Network** kutoka kwa kompyuta. Zana hii 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.
## Smali
Wakati mwingine ni muhimu **kubadilisha msimbo wa programu** ili kufikia **habari zilizofichwa** (labda nywila au bendera zilizofichwa vizuri). Hivyo, inaweza kuwa ya kuvutia kufungua apk, kubadilisha msimbo na kuirejesha.\
[**Katika mafunzo haya** unaweza **kujifunza jinsi ya kufungua APK, kubadilisha msimbo wa Smali na kuirejesha APK** na kazi mpya](smali-changes.md). Hii inaweza kuwa ya manufaa kama **mbadala wa majaribio kadhaa wakati wa uchambuzi wa dynamic** ambao utawasilishwa. Hivyo, **weka daima katika akili uwezekano huu**.
Wakati mwingine ni muhimu **kubadilisha msimbo wa programu** ili kufikia **habari zilizofichwa** (labda nywila au bendera zilizofichwa vizuri). Hivyo, inaweza kuwa ya kuvutia kufungua apk, kubadilisha msimbo na kuirekebisha.\
[**Katika tutorial hii** unaweza **kujifunza jinsi ya kufungua 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 dinamik** ambao utawasilishwa. Hivyo, **weka daima katika akili uwezekano huu**.
## Mbinu nyingine za kuvutia
## Njia nyingine za kuvutia
* [Kudanganya eneo lako katika Play Store](spoofing-your-location-in-play-store.md)
* **Pakua APKs**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
@ -67,7 +67,7 @@ adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
* Unganisha vipasuo vyote na apks za msingi kwa kutumia [APKEditor](https://github.com/REAndroid/APKEditor):
```bash
mkdir splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 1 | xargs -n1 -i adb pull {} splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
java -jar ../APKEditor.jar m -i splits/ -o merged.apk
# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
@ -92,19 +92,19 @@ Lipa kipaumbele maalum kwa **firebase URLs** na angalia kama imewekwa vibaya. [T
**Udhaifu** ulioainishwa kutoka kwa **Manifest.xml** ni pamoja na:
* **Programu zinazoweza kudhibitiwa**: Programu zilizowekwa kama zinazoweza kudhibitiwa (`debuggable="true"`) katika faili la _Manifest.xml_ zina hatari kwani zinaruhusu muunganisho ambao unaweza kusababisha matumizi mabaya. Kwa ufahamu zaidi kuhusu jinsi ya kutumia programu zinazoweza kudhibitiwa, rejelea mafunzo juu ya 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.
* **Programu zinazoweza kufanyiwa uchambuzi**: Programu zilizowekwa kama debuggable (`debuggable="true"`) katika faili la _Manifest.xml_ zina hatari kwani zinaruhusu muunganisho ambao unaweza kusababisha matumizi mabaya. Kwa ufahamu zaidi kuhusu jinsi ya kutumia programu zinazoweza kufanyiwa uchambuzi, rejelea mafunzo juu ya kutafuta na kutumia programu zinazoweza kufanyiwa uchambuzi kwenye kifaa.
* **Mipangilio ya Nakala**: Sifa ya `android:allowBackup="false"` inapaswa kuwekwa wazi kwa programu zinazoshughulika na taarifa nyeti ili kuzuia nakala zisizoruhusiwa 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 nguvu 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 inapaswa pia kuchunguzwa kwa makini.
* **Vipokezi vya Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa matumizi mabaya, huku kukiwa na umakini maalum juu ya jinsi mipango ya URL inavyoshughulikiwa 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.
* **Watoa Maudhui na Watoa Faili**: Watoa maudhui walio wazi wanaweza kuruhusu ufikiaji usioruhusiwa 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 juu ya 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 kutosupport 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.
### 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.\
**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 hivyo, inafanya **mtumiaji kuwa kipofu kwa kujua kwamba kwa kweli wanatekeleza vitendo kwenye programu ya mwathirika**.
Pata taarifa zaidi katika:
@ -115,7 +115,7 @@ Pata taarifa zaidi katika:
### Task Hijacking
**shughuli** yenye **`launchMode`** iliyowekwa kuwa **`singleTask` bila `taskAffinity`** iliyofafanuliwa ina udhaifu wa hijacking ya kazi. 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**).
**shughuli** yenye **`launchMode`** iliyowekwa kuwa **`singleTask` bila `taskAffinity`** iliyofafanuliwa ina udhaifu wa hijacking ya kazi. 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:
@ -127,12 +127,12 @@ Taarifa zaidi katika:
**Hifadhi ya Ndani**
Katika Android, faili **zilizohifadhiwa** katika **hifadhi ya ndani** zime **kusudiwa** kuwa **zinapatikana** pekee na **programu** iliyozitengeneza. Kipimo hiki cha usalama kina **imarishwa** 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.
Katika Android, faili **zilizohifadhiwa** katika **hifadhi ya ndani** zime **kusudiwa** kuwa **zinapatikana** pekee na **programu** iliyozitengeneza. Kipimo hiki cha usalama kinadhibitiwa 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` yana **chunguzwa kwa makini**. Njia hizi **zinaweza kufichua** faili kwa **ufikiaji usioidhinishwa au usio kusudiwa**.
2. **Uchambuzi wa Dini:**
* **Thibitisha** **idhini** zilizowekwa kwenye faili zilizoundwa na programu. Kwa haswa, **angalia** kama faili yoyote ime **wekwa 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.
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 usiotarajiwa au usioruhusiwa**.
2. **Uchambuzi wa Kijamii:**
* **Thibitisha** **idhini** zilizowekwa kwenye faili zilizotengenezwa na programu. Kwa haswa, **angalia** kama faili yoyote ime **wekwa 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**
@ -142,10 +142,10 @@ Wakati wa kushughulikia faili kwenye **hifadhi ya nje**, kama vile Kadi za SD, t
* 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 kuzingatia 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**:
* 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 nguvu kunashauriwa kutozwa.
* Daima **fanya uthibitisho wa ingizo** kwenye data iliyopatikana kutoka hifadhi ya nje. Hii ni muhimu kwa sababu data hiyo inatoka kwenye chanzo kisichotegemewa.
* Kuhifadhi executable au faili za darasa kwenye hifadhi ya nje kwa ajili ya upakiaji wa nguvu kunakataliwa vikali.
* Ikiwa programu yako inapaswa kupata faili za executable kutoka hifadhi ya nje, hakikisha faili hizi zime **sainiwa na kuthibitishwa kwa njia ya kisasa** kabla ya kupakiwa kwa nguvu. Hatua hii ni muhimu kwa kudumisha uaminifu wa usalama wa programu yako.
Hifadhi ya nje inaweza **kupatikana** katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
@ -172,21 +172,21 @@ A good way to test this is to try to capture the traffic using some proxy like B
### Broken Cryptography
**Poor Key Management Processes**
**Mchakato Duni za Usimamizi wa Funguo**
Wakandarasi wengine huhifadhi data nyeti katika hifadhi ya ndani na kuificha kwa kutumia funguo zilizowekwa kwa ngumu/zinazoweza kutabiriwa 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/kupatikana kwa urahisi katika msimbo. Hii haipaswi kufanywa kwani baadhi ya kurudi nyuma kunaweza kuruhusu washambuliaji kutoa taarifa za siri.
**Use of Insecure and/or Deprecated Algorithms**
**Matumizi ya Algorithms zisizo Salama na/au Zilizopitwa na Wakati**
Wakandarasi hawapaswi kutumia **algorithms zilizopitwa na wakati** kufanya **muhimu**, **hifadhi** au **tuma** data. Baadhi ya hizi ni: RC4, MD4, MD5, SHA1... Ikiwa **hashes** zinatumika kuhifadhi nywila kwa mfano, hashes zinazopinga **brute-force** zinapaswa kutumika na chumvi.
Wakandarasi hawapaswi kutumia **algorithms zilizopitwa na wakati** kufanya **ukaguzi wa mamlaka**, **hifadhi** au **kutuma** data. Baadhi ya hizi algorithms ni: RC4, MD4, MD5, SHA1... Ikiwa **hashes** zinatumika kuhifadhi nywila kwa mfano, hashes zinazopinga **brute-force** zinapaswa kutumika na chumvi.
### Other checks
* Inapendekezwa **kuficha APK** ili kufanya kazi ya mhandisi wa kurudi kuwa ngumu kwa washambuliaji.
* Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya **muhimu yake mwenyewe kuona kama simu imejikita** na kuchukua hatua.
* 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 kuangalia kama imebadilishwa.
* Tumia [**APKiD**](https://github.com/rednaga/APKiD) kuangalia ni compiler/packer/obfuscator gani ilitumika kujenga APK
* It's recommended to **obfuscate the APK** to difficult the reverse engineer labour to attackers.
* If the app is sensitive (like bank apps), it should perform it's **own checks to see if the mobile is rooted** and act in consequence.
* If the app is sensitive (like bank apps), it should check if an **emulator** is being used.
* If the app is sensitive (like bank apps), it should **check it's own integrity before executing** it to check if it was modified.
* Use [**APKiD**](https://github.com/rednaga/APKiD) to check which compiler/packer/obfuscator was used to build the APK
### React Native Application
@ -311,7 +311,7 @@ You need to activate the **debugging** options and it will be cool if you can **
**Logging**
Wakandarasi wanapaswa kuwa makini kuhusu kufichua **taarifa za ufuatiliaji** hadharani, kwani inaweza kusababisha uvujaji wa data nyeti. Zana [**pidcat**](https://github.com/JakeWharton/pidcat) na `adb logcat` zinapendekezwa kwa ajili ya kufuatilia kumbukumbu za programu ili kubaini na kulinda taarifa nyeti. **Pidcat** inapendwa kwa urahisi wa matumizi na usomaji.
Wakandarasi wanapaswa kuwa makini na kufichua **taarifa za ufuatiliaji** hadharani, kwani inaweza kusababisha uvujaji wa data nyeti. Zana [**pidcat**](https://github.com/JakeWharton/pidcat) na `adb logcat` zinapendekezwa kwa ajili ya kufuatilia kumbukumbu za programu ili kubaini na kulinda taarifa nyeti. **Pidcat** inapendekezwa kwa urahisi wa matumizi na ueleweka.
{% hint style="warning" %}
Note that from **later newer than Android 4.0**, **applications are only able to access their own logs**. So applications cannot access other apps logs.\
@ -320,7 +320,7 @@ Anyway, it's still recommended to **not log sensitive information**.
**Copy/Paste Buffer Caching**
Mfumo wa **clipboard-based** wa Android unaruhusu kazi ya kunakili-na-kut粘 katika programu, lakini unatoa hatari kwani **programu nyingine** zinaweza **kupata** clipboard, na hivyo kuweza kufichua data nyeti. Ni muhimu **kuondoa kazi za kunakili/kut粘** kwa sehemu nyeti za programu, kama vile maelezo ya kadi ya mkopo, ili kuzuia uvujaji wa data.
Mfumo wa **clipboard-based** wa Android unaruhusu kazi za kunakili na kubandika katika programu, lakini unatoa hatari kwani **programu nyingine** zinaweza **kupata** clipboard, na hivyo kufichua data nyeti. Ni muhimu **kuondoa kazi za kunakili/kubandika** kwa sehemu nyeti za programu, kama vile maelezo ya kadi ya mkopo, ili kuzuia uvujaji wa data.
**Crash Logs**
@ -328,9 +328,9 @@ Ikiwa programu **inasambaratika** na **kuhifadhi kumbukumbu**, kumbukumbu hizi z
Kama pentester, **jaribu kuangalia kumbukumbu hizi**.
**Analytics Data Sent To 3rd Parties**
**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 usiofaa na wakandarasi. Ili kubaini uvujaji wa data, inashauriwa **kukamata trafiki ya programu** na kuangalia kama kuna taarifa nyeti zinazotumwa kwa huduma za upande wa 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 uvujaji wa data, ni vyema **kuingilia kati trafiki ya programu** na kuangalia ikiwa kuna taarifa nyeti zinazotumwa kwa huduma za vyama vya tatu.
### SQLite DBs
@ -364,19 +364,19 @@ You can also start an exported activity from 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), inaonekana hii ni hatari tu kwenye 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).
{% hint style="info" %}
Kumbuka kwamba kupita kwa idhini si kila wakati ni 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.
{% endhint %}
**Kuvuja kwa taarifa nyeti**
**Shughuli zinaweza pia kurudisha matokeo**. Ikiwa utaweza kupata shughuli iliyosafirishwa na isiyo na ulinzi inayoita **`setResult`** na **kurudisha taarifa nyeti**, kuna uvujaji wa taarifa nyeti.
**Shughuli zinaweza pia kurudisha matokeo**. Ikiwa utaweza kupata shughuli iliyosambazwa na isiyo na ulinzi inayoita **`setResult`** na **kurudisha taarifa nyeti**, kuna uvujaji wa taarifa nyeti.
#### Tapjacking
Ikiwa tapjacking haizuiwi, unaweza kutumia shughuli iliyosafirishwa kufanya **mtumiaji afanye vitendo visivyotarajiwa**. Kwa maelezo zaidi kuhusu [**nini Tapjacking fuata kiungo**](./#tapjacking).
Ikiwa tapjacking haizuiwi, unaweza kutumia shughuli iliyosambazwa kufanya **mtumiaji afanye vitendo visivyotarajiwa**. Kwa maelezo zaidi kuhusu [**nini Tapjacking fuata kiungo**](./#tapjacking).
### Kutumia Watoa Maudhui - Kufikia na kubadilisha taarifa nyeti
@ -390,7 +390,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 inasafirisha baadhi ya huduma 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** **msimbo** 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/#services)
### **Kutumia Vastika za Matangazo**
@ -412,7 +412,7 @@ adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?para
```
{% endcode %}
_Kumbuka kwamba unaweza **kuacha jina la kifurushi** na simu itaita kiotomatiki programu ambayo inapaswa kufungua kiungo hicho._
_Kumbuka kwamba unaweza **kusaidia jina la kifurushi** na simu itaita kiotomatiki programu ambayo inapaswa kufungua kiungo hicho._
{% code overflow="wrap" %}
```markup
@ -431,26 +431,26 @@ Ili kupata **msimbo utakaotekelezwa katika App**, nenda kwenye shughuli inayoitw
**Taarifa nyeti**
Kila wakati unapata deeplink hakikisha kuwa **haipati data nyeti (kama nywila) kupitia vigezo vya URL**, kwa sababu programu nyingine yoyote inaweza **kujifanya kuwa deeplink na kuiba data hiyo!**
Kila wakati unapotafuta deeplink hakikisha kuwa **haipati data nyeti (kama nywila) kupitia vigezo vya URL**, kwa sababu programu nyingine yoyote inaweza **kujifanya kuwa deeplink na kuiba data hiyo!**
**Vigezo katika njia**
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 ukifika 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), **kuchukua akaunti** (ikiwa unaweza kubadilisha maelezo ya watumiaji bila CSRF token na mwisho ulio na vuln ulitumia njia sahihi) na vuln nyingine yoyote. Maelezo zaidi [hapa](http://dphoeniixx.com/2020/12/13-2/).
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 ukifika 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), **kuchukua akaunti** (ikiwa unaweza kubadilisha maelezo ya watumiaji bila CSRF token na mwisho wa vuln ulitumia njia sahihi) na vuln nyingine yoyote. Maelezo zaidi [hapa](http://dphoeniixx.com/2020/12/13-2/).
**Mifano zaidi**
Ripoti ya [bug bounty ya kuvutia](https://hackerone.com/reports/855618) kuhusu viungo (_/.well-known/assetlinks.json_).
### Ukaguzi wa Tabaka la Usafirishaji na Kushindwa kwa Uthibitishaji
### Ukaguzi wa Safu ya Usafirishaji na Kushindwa kwa Uthibitishaji
* **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 mkono wa SSL/TLS wakati mwingine ni dhaifu**, yakitumia cipher suites zisizo salama. Uthibitisho huu unafanya muunganisho uwe hatarini kwa mashambulizi ya mtu katikati (MITM), kuruhusu washambuliaji kufungua data.
* **Kuvuja kwa taarifa binafsi** 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.
* **Majadiliano wakati wa mkono wa 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.
* **Kuvuja kwa taarifa binafsi** 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 viumbe wabaya.
#### Uthibitishaji wa Cheti
Tutazingatia **uthibitishaji wa cheti**. Uadilifu wa cheti cha seva lazima uthibitishwe ili kuimarisha 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 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 uthibitishwe ili kuimarisha 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.
#### SSL Pinning
@ -458,7 +458,7 @@ SSL Pinning ni hatua ya usalama ambapo programu inathibitisha cheti cha seva dhi
#### Ukaguzi wa Trafiki
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).
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).
Programu zinazolenga **API Level 24 na zaidi** 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).
@ -466,20 +466,20 @@ Programu zinazolenga **API Level 24 na zaidi** zinahitaji marekebisho kwenye Usa
Wakati SSL Pinning inatekelezwa, kupita inakuwa muhimu ili kukagua trafiki ya HTTPS. Njia mbalimbali zinapatikana kwa kusudi hili:
* Kiotomatiki **badilisha** **apk** ili **kupita** SSLPinning na [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Faida bora ya chaguo hili ni kwamba hutahitaji root ili kupita SSL Pinning, lakini utahitaji kufuta programu na kuisakinisha upya, na hii haitafanya kazi kila wakati.
* Unaweza kutumia **Frida** (iliyajadiliwa hapa chini) ili kupita 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/)
* Kiotomatiki **badilisha** **apk** ili **kupita** SSLPinning na [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Faida bora ya chaguo hili, ni kwamba hutahitaji root ili kupita SSL Pinning, lakini utahitaji kufuta programu na kuisakinisha upya, na hii haitafanya kazi kila wakati.
* Unaweza kutumia **Frida** (iliyozungumziwa hapa chini) ili kupita 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 **kupita kiotomatiki SSL Pinning** kwa kutumia [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
* Unaweza pia kujaribu **kupita kiotomatiki SSL Pinning** kwa kutumia **uchambuzi wa dynamic wa MobSF** (ilivyoelezwa 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)
* Unaweza pia kujaribu **kupita kiotomatiki SSL Pinning** kwa kutumia **MobSF uchambuzi wa dynamic** (iliyofafanuliwa hapa chini)
* Ikiwa bado unafikiri kuna trafiki ambayo huwezi kukamata 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)
#### Kutafuta Udhaifu wa Kawaida wa Mtandao
Ni muhimu pia kutafuta udhaifu wa kawaida wa mtandao ndani ya programu. Taarifa za kina kuhusu kutambua na kupunguza udhaifu hizi ziko nje ya upeo wa muhtasari huu lakini zimefunikwa kwa kina mahali pengine.
Ni muhimu pia kutafuta udhaifu wa kawaida wa mtandao ndani ya programu. Taarifa za kina juu ya kutambua na kupunguza udhaifu hizi ziko nje ya upeo wa muhtasari huu lakini zimefunikwa kwa kina mahali pengine.
### Frida
[Frida](https://www.frida.re) ni zana ya uhandisi wa dynamic kwa ajili ya waendelezaji, wahandisi wa kurudi nyuma, na watafiti wa usalama.\
**Unaweza kufikia programu inayofanya kazi na kuunganisha mbinu wakati wa wakati wa kukimbia kubadilisha tabia, kubadilisha thamani, kutoa thamani, kukimbia msimbo tofauti...**\
[Frida](https://www.frida.re) ni zana ya uhandisi wa dynamic kwa waendelezaji, wahandisi wa kurudi nyuma, na watafiti wa usalama.\
**Unaweza kufikia programu inayofanya kazi na kuunganisha mbinu wakati wa kukimbia kubadilisha tabia, kubadilisha thamani, kutoa thamani, kukimbia msimbo tofauti...**\
Ikiwa unataka kufanya pentest kwenye programu za Android unahitaji kujua jinsi ya kutumia Frida.
* Jifunze jinsi ya kutumia Frida: [**Mafunzo ya Frida**](frida-tutorial/)
@ -492,7 +492,7 @@ Ikiwa unataka kufanya pentest kwenye programu za Android unahitaji kujua jinsi y
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 dump kumbukumbu ya programu na:
Kwa kutumia [**Fridump3**](https://github.com/rootbsd/fridump3) unaweza dump kumbukumbu ya programu kwa:
```bash
# With PID
python3 fridump3.py -u <PID>
@ -501,7 +501,7 @@ python3 fridump3.py -u <PID>
frida-ps -Uai
python3 fridump3.py -u "<Name>"
```
Hii itatoa kumbukumbu katika folda ya ./dump, na humo unaweza kutumia grep na kitu kama:
Hii itatoa kumbukumbu katika folda ./dump, na humo unaweza kutumia grep na kitu kama:
{% code overflow="wrap" %}
```bash
@ -511,7 +511,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
### **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 kwenye kifaa anaweza kuwa na uwezo wa kuiba data hii.
Hata kama programu imehifadhi data katika keystore, data inapaswa kuwa imefungwa.
@ -521,7 +521,7 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
```
### **Fingerprint/Biometrics Bypass**
Kwa kutumia skripti ya Frida ifuatayo inaweza kuwa inawezekana **kuzidi uthibitisho wa alama za vidole** ambayo programu za Android zinaweza kuwa zinafanya ili **kulinda maeneo fulani nyeti:**
Kwa kutumia skripti ya Frida ifuatayo inaweza kuwa na uwezo wa **kuzidi uthibitisho wa alama za vidole** ambayo programu za Android zinaweza kufanya ili **kulinda maeneo fulani nyeti:**
{% code overflow="wrap" %}
```bash
@ -556,7 +556,7 @@ Hatari iko katika kuruhusu washambuliaji kuanzisha vipengele vya programu visivy
* **Intent Injection** ni sawa na tatizo la Open Redirect la wavuti.
* Uhalifu unahusisha kupitisha vitu vya `Intent` kama ziada, ambavyo vinaweza kuhamasishwa kutekeleza operesheni zisizo salama.
* Inaweza kufichua vipengele visivyoweza kusambazwa na watoa maudhui kwa washambuliaji.
* Ubadilishaji wa URL wa `WebView` kuwa `Intent` unaweza kuwezesha vitendo visivyokusudiwa.
* Mabadiliko ya URL ya `WebView` kuwa `Intent` yanaweza kuwezesha vitendo visivyokusudiwa.
### Android Client Side Injections and others
@ -565,7 +565,7 @@ Labda unajua kuhusu aina hii ya udhaifu kutoka kwa Wavuti. Lazima uwe makini san
* **SQL Injection:** Unaposhughulikia maswali ya dynamic au Watoa-Maudhui hakikisha unatumia maswali yaliyopangwa.
* **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).
* **Local File Inclusion:** 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).
* **Eternal cookies**: Katika kesi kadhaa wakati programu ya android inamaliza kikao, cookie haifutwi au inaweza hata kuhifadhiwa kwenye diski.
* **Eternal cookies**: Katika kesi kadhaa wakati programu ya android inamaliza kikao, cookie haifutwi au inaweza hata kuhifadhiwa kwenye diski
* [**Secure Flag** katika cookies](../../pentesting-web/hacking-with-cookies/#cookies-flags)
***
@ -648,13 +648,13 @@ receivers
```
**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 muonekano mbaya wa trafiki iliyokamatwa kwenye "**HTTP(S) Traffic**" chini au muonekano mzuri kwenye "**Start HTTPTools**" kitufe kibichi. 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)).
Mara tu unapo maliza uchambuzi wa dynamic na MobSF unaweza kubonyeza "**Start Web API Fuzzer**" ili **fuzz maombi ya http** na kutafuta udhaifu.
{% hint style="info" %}
Baada ya kufanya uchambuzi wa dynamic na MobSF mipangilio ya proxy inaweza kuwa haijapangwa vizuri 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 haijapangwa vizuri na huwezi kuziweka kutoka kwenye GUI. Unaweza kurekebisha mipangilio ya proxy kwa kufanya:
```
adb shell settings put global http_proxy :0
```
@ -693,7 +693,7 @@ reverse-apk relative/path/to/APP.apk
```
### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super)
SUPER ni programu ya amri ambayo inaweza kutumika katika Windows, MacOS X na Linux, inayochambua faili za _.apk_ kutafuta udhaifu. Inafanya hivyo kwa kubonyeza APKs na kutumia mfululizo wa sheria kugundua udhaifu hao.
SUPER ni programu ya amri ambayo inaweza kutumika katika Windows, MacOS X na Linux, inayochambua _.apk_ faili kutafuta udhaifu. Inafanya hivyo kwa kubonyeza APKs na kutumia mfululizo wa sheria kugundua udhaifu hao.
Sheria zote zinazingatia faili ya `rules.json`, na kila kampuni au mtathmini anaweza kuunda sheria zake mwenyewe kuchambua kile wanachohitaji.
@ -705,7 +705,7 @@ super-analyzer {apk_file}
![](<../../.gitbook/assets/image (297).png>)
StaCoAn ni chombo **crossplatform** ambacho kinawasaidia waendelezaji, wawindaji wa bugbounty na hackers wa kimaadili wanaofanya [static code analysis](https://en.wikipedia.org/wiki/Static\_program\_analysis) kwenye programu za simu.
StaCoAn ni chombo **crossplatform** ambacho kinasaidia waendelezaji, wawindaji wa bugbounty 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.
@ -727,7 +727,7 @@ androbugs.exe -f [APK file]
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, Ukatishaji wa mtiririko wa sauti/video, Marekebisho ya data za PIM, Utekelezaji wa msimbo wa kiholela...
```
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
```
@ -735,20 +735,20 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
![](<../../.gitbook/assets/image (595).png>)
**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.
**MARA** ni **M**obile **A**pplication **R**everse engineering na **A**nalysis Framework. Ni chombo kinachokusanya 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.
Inaweza:
Inauwezo wa:
* Kutolewa Java na Smali code kwa kutumia zana tofauti
* Kutolewa kwa msimbo wa Java na Smali 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)
* Kutolewa taarifa za kibinafsi kutoka kwa APK kwa kutumia regexps.
* Kutolewa kwa taarifa za kibinafsi kutoka kwa APK kwa kutumia regexps.
* 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)
* Kuondoa obfuscation ya APK kupitia [apk-deguard.com](http://www.apk-deguard.com)
### Koodous
Inatumika kugundua malware: [https://koodous.com/](https://koodous.com)
Inafaida kugundua malware: [https://koodous.com/](https://koodous.com)
## Obfuscating/Deobfuscating code
@ -756,7 +756,7 @@ Kumbuka kwamba kulingana na huduma na usanidi unayotumia kuondoa obfuscation ya
### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\))
Kutoka [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** ni chombo cha amri cha wazi ambacho kinapunguza, kinaboresha na kinaondoa obfuscation ya 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.
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 Leseni ya Umma ya GNU, toleo la 2.
ProGuard inasambazwa kama sehemu ya Android SDK na inafanya kazi wakati wa kujenga programu katika hali ya kutolewa.
@ -764,19 +764,19 @@ ProGuard inasambazwa kama sehemu ya Android SDK na inafanya kazi wakati wa kujen
Pata mwongozo wa hatua kwa hatua wa kuondoa obfuscation ya apk katika [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
(Kutoka kwa mwongozo huo) Mara ya mwisho tulipoangalia, hali ya uendeshaji ya Dexguard ilikuwa:
(Kutoka kwa mwongozo huo) Mara ya mwisho tulipokagua, hali ya uendeshaji ya Dexguard ilikuwa:
* kupakia rasilimali kama InputStream;
* kutoa matokeo kwa darasa linalorithishwa kutoka FilterInputStream ili kuyafungua;
* kutoa matokeo kwa darasa linalorithi kutoka FilterInputStream ili kuyafichua;
* kufanya obfuscation isiyo na maana ili kupoteza dakika chache za muda kutoka kwa mhandisi wa nyuma;
* kutoa matokeo yaliyofunguliwa kwa ZipInputStream ili kupata faili ya DEX;
* kutoa matokeo yaliyofichuliwa kwa ZipInputStream ili kupata faili ya DEX;
* hatimaye kupakia DEX inayotokana kama Rasilimali kwa kutumia njia ya `loadDex`.
### [DeGuard](http://apk-deguard.com)
**DeGuard inarudisha mchakato wa obfuscation uliofanywa na zana za obfuscation za Android. Hii inaruhusu uchambuzi mwingi wa usalama, ikiwa ni pamoja na ukaguzi wa msimbo na kutabiri maktaba.**
Unaweza kupakia APK iliyokuwa obfuscated kwenye jukwaa lao.
Unaweza kupakia APK iliyofichwa kwenye jukwaa lao.
### [Simplify](https://github.com/CalebFenton/simplify)
@ -788,13 +788,13 @@ APKiD inakupa taarifa kuhusu **jinsi APK ilivyotengenezwa**. Inatambua waandishi
### Manual
[Somai hii tutorial ili kujifunza mbinu za **jinsi ya kurudi nyuma obfuscation ya kawaida**](manual-deobfuscation.md)
[Somai mwongo huu kujifunza mbinu za **jinsi ya kurudi nyuma obfuscation ya kawaida**](manual-deobfuscation.md)
## Labs
### [Androl4b](https://github.com/sh4hin/Androl4b)
AndroL4b ni mashine ya virtual ya usalama wa 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.
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