.. | ||
drozer-tutorial | ||
frida-tutorial | ||
adb-commands.md | ||
android-applications-basics.md | ||
android-task-hijacking.md | ||
apk-decompilers.md | ||
avd-android-virtual-device.md | ||
bypass-biometric-authentication-android.md | ||
content-protocol.md | ||
exploiting-a-debuggeable-applciation.md | ||
google-ctf-2018-shall-we-play-a-game.md | ||
install-burp-certificate.md | ||
intent-injection.md | ||
make-apk-accept-ca-certificate.md | ||
manual-deobfuscation.md | ||
react-native-application.md | ||
README.md | ||
reversing-native-libraries.md | ||
smali-changes.md | ||
spoofing-your-location-in-play-store.md | ||
tapjacking.md | ||
webview-attacks.md |
Ukadiriaji wa Programu za Android
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikionekana kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA KUJIUNGA!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.
Jiunge na HackenProof Discord server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa zawadi za mdudu!
Machapisho ya Kudukua
Shiriki na yaliyomo yanayochimba kina katika msisimko na changamoto za kudukua
Habari za Kudukua za Muda Halisi
Kaa up-to-date na ulimwengu wa kudukua unaobadilika haraka kupitia habari za muda halisi na ufahamu
Matangazo Mapya
Baki mwelewa na zawadi mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
Jiunge nasi kwenye Discord na anza kushirikiana na wadukuzi bora leo!
Misingi ya Programu za Android
Inashauriwa sana kuanza kusoma ukurasa huu ili kujua kuhusu sehemu muhimu zinazohusiana na usalama wa Android na vipengele hatari zaidi katika programu ya Android:
{% content-ref url="android-applications-basics.md" %} android-applications-basics.md {% endcontent-ref %}
ADB (Daraja la Kudukua la Android)
Hii ni zana kuu unayohitaji kuunganisha kifaa cha Android (kielekezwa au halisi).
ADB inaruhusu kudhibiti vifaa kupitia USB au Mtandao kutoka kwenye kompyuta. Zana hii inawezesha nakala ya faili kwa pande zote, ufungaji na ufutaji wa programu, utekelezaji wa amri za shell, kuhifadhi data, kusoma magogo, miongoni mwa kazi nyingine.
Angalia orodha ifuatayo ya Amri za ADB kujifunza jinsi ya kutumia adb.
Smali
Marafiki ni muhimu kurekebisha msimbo wa programu ili kupata habari iliyofichwa (labda nywila zilizofichwa vizuri au bendera). Kisha, inaweza kuwa muhimu kudecompile apk, kurekebisha msimbo na kuirekebisha.
Katika mafunzo haya unaweza kujifunza jinsi ya kudecompile na APK, kurekebisha msimbo wa Smali na kuirekebisha APK na kazi mpya. Hii inaweza kuwa muhimu sana kama mbadala kwa vipimo kadhaa wakati wa uchambuzi wa kudhibiti ambao utawasilishwa. Kisha, kuwa na uwezekano huu akilini daima.
Mbinu zingine za kuvutia
- Kughushi eneo lako kwenye Duka la Google
- Pakua APKs: https://apps.evozi.com/apk-downloader/, https://apkpure.com/es/, https://www.apkmirror.com/, https://apkcombo.com/es-es/apk-downloader/
- Chambua APK kutoka kifaa:
adb shell pm list packages
com.android.insecurebankv2
adb shell pm path com.android.insecurebankv2
package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
adb pull /data/app/com.android.insecurebankv2- Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
Uchambuzi Statis
Kwanza kabisa, kwa kuchambua APK unapaswa kutazama msimbo wa Java kwa kutumia decompiler.
Tafadhali, soma hapa kupata habari kuhusu decompilers mbalimbali zilizopo.
Kutafuta Habari Muhimu
Kwa kuchunguza strings za APK unaweza kutafuta manenosiri, URLs (https://github.com/ndelphit/apkurlgrep), funguo za api, encryption, bluetooth uuids, tokens na chochote kingine cha kuvutia... tafuta hata backdoors za utekelezaji wa msimbo au backdoors za uthibitishaji (vitambulisho vya msimamizi vilivyowekwa kwa nguvu kwenye programu).
Firebase
Tilia maanani URLs za firebase na hakikisha kama imeconfigure vibaya. Taarifa zaidi kuhusu ni nini Firebase na jinsi ya kuitumia vibaya hapa.
Kuelewa Msingi wa Programu - Manifest.xml, strings.xml
Uchunguzi wa faili za _Manifest.xml na strings.xml wa programu unaweza kufichua mapungufu ya usalama yanayowezekana. Faili hizi zinaweza kupatikana kwa kutumia decompilers au kwa kubadilisha kificho cha faili ya APK kuwa .zip na kisha kuizipua.
Mapungufu yaliyobainishwa kutoka kwa Manifest.xml ni pamoja na:
- Programu za Debuggable: Programu zilizowekwa kama debuggable (
debuggable="true"
) kwenye faili ya Manifest.xml zinaweza kuwa na hatari kwani zinaruhusu uhusiano ambao unaweza kusababisha kutumiwa vibaya. Kwa uelewa zaidi kuhusu jinsi ya kutumia vibaya programu za debuggable, rejea mafunzo kuhusu kutafuta na kutumia vibaya programu za debuggable kwenye kifaa. - Mipangilio ya Backup: Sifa ya
android:allowBackup="false"
inapaswa kuwekwa wazi kwa programu zinazoshughulikia habari nyeti ili kuzuia nakala za data zisizoidhinishwa kupitia adb, hasa wakati uwezeshaji wa usb debugging unawezeshwa. - 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 pins za vyeti na mipangilio ya trafiki ya HTTP. Mfano ni kuruhusu trafiki ya HTTP kwa udomen fulani. - Shughuli na Huduma Zilizowekwa Wazi: Kutambua shughuli na huduma zilizowekwa wazi katika manifest kunaweza kufichua vipengele vinavyoweza kutumiwa vibaya. Uchambuzi zaidi wakati wa majaribio ya moja kwa moja unaweza kufunua jinsi ya kutumia vibaya vipengele hivi.
- Watoaji wa Yaliyomo na Watoaji wa Faili: Watoaji wa yaliyomo waliowekwa wazi wanaweza kuruhusu ufikiaji usiohalali au ubadilishaji wa data. Mipangilio ya Watoaji wa Faili pia inapaswa kuchunguzwa kwa makini.
- Wapokeaji wa Matangazo na Mipango ya URL: Vipengele hivi vinaweza kutumika kwa kutumiwa vibaya, kwa umakini maalum kwa jinsi mipango ya URL inavyosimamiwa kwa mapungufu ya kuingiza.
- Toleo za SDK: Sifa za
minSdkVersion
,targetSDKVersion
, namaxSdkVersion
zinaonyesha toleo za Android zinazoungwa mkono, ikisisitiza umuhimu wa kutokuunga mkono toleo za Android zilizopitwa na wakati kwa sababu za usalama.
Kutoka kwa faili ya strings.xml, habari nyeti kama vile funguo za API, mipangilio ya desturi, na maelezo mengine ya watengenezaji yanaweza kugunduliwa, ikisisitiza umuhimu wa kupitia upya kwa uangalifu rasilimali hizi.
Tapjacking
Tapjacking ni shambulio ambapo programu mbovu inazinduliwa na kujipanga juu ya programu ya mwathiriwa. Mara tu inapofunika programu ya mwathiriwa, kiolesura chake cha mtumiaji kimeundwa kwa njia ambayo inadanganya mtumiaji kuingiliana nacho, wakati inapitisha mwingiliano kwa programu ya mwathiriwa.
Kimsingi, inamfanya mtumiaji ashindwe kujua kwamba kimsingi anatekeleza vitendo kwenye programu ya mwathiriwa.
Pata habari zaidi hapa:
{% content-ref url="tapjacking.md" %} tapjacking.md {% endcontent-ref %}
Task Hijacking
Shughuli yenye launchMode
iliyowekwa kama singleTask
bila taskAffinity
iliyofafanuliwa inaweza kudhuriwa na Task Hijacking. Hii inamaanisha, kwamba programu inaweza kusakinishwa na ikizinduliwa kabla ya programu halisi inaweza kuteka nyara kazi ya programu halisi (hivyo mtumiaji atakuwa anaingiliana na programu mbovu akidhani anatumia ile halisi).
Taarifa zaidi katika:
{% content-ref url="android-task-hijacking.md" %} android-task-hijacking.md {% endcontent-ref %}
Uhifadhi Dhaifu wa Data
Uhifadhi wa Ndani
Kwenye Android, faili zilizohifadhiwa kwenye uhifadhi wa ndani zimedhamiriwa kuwa inapatikana kipekee na programu iliyoziumba. Hatua hii ya usalama inatekelezwa na mfumo wa uendeshaji wa Android na kwa ujumla ni ya kutosha kwa mahitaji ya usalama ya programu nyingi. Hata hivyo, watengenezaji mara nyingine hutumia njia kama MODE_WORLD_READABLE
na MODE_WORLD_WRITABLE
kuwaruhusu faili kushirikiwa kati ya programu tofauti. Hata hivyo, njia hizi hazizuili upatikanaji wa faili hizi na programu nyingine, ikiwemo zile zenye nia mbaya.
- Uchambuzi Statis:
- Hakikisha matumizi ya
MODE_WORLD_READABLE
naMODE_WORLD_WRITABLE
yanachunguzwa kwa umakini. Njia hizi zinaweza kufichua faili kwa upatikanaji usiokusudiwa au usiohalali.
- Uchambuzi wa Moja kwa Moja:
- Thibitisha ruhusa zilizowekwa kwenye faili zilizoundwa na programu. Hasa, angalia kama kuna faili zilizowekwa kuwa za kusomwa au kuandikwa na kila mtu. Hii inaweza kuwa hatari kubwa ya usalama, kwani itaruhusu programu yoyote iliyosakinishwa kwenye kifaa, bila kujali asili au nia yake, kusoma au kuhariri faili hizo.
Uhifadhi wa Nje
Wakati unashughulika na faili kwenye uhifadhi wa nje, kama Kadi za SD, tahadhari fulani inapaswa kuchukuliwa:
- Upatikanaji:
- Faili kwenye uhifadhi wa nje ni zinazosomwa na kuandikwa kimataifa. Hii inamaanisha programu au mtumiaji yeyote anaweza kufikia faili hizo.
- Masuala ya Usalama:
- Kwa kuwa ni rahisi kufikia, inashauriwa kutokuhifadhi habari nyeti kwenye uhifadhi wa nje.
- Uhifadhi wa nje unaweza kuondolewa au kufikiwa na programu yoyote, ikifanya kuwa si salama.
- Kushughulikia Data kutoka kwa Uhifadhi wa Nje:
- Daima fanya uthibitishaji wa kuingiza kwenye data inayopatikana kutoka kwa uhifadhi wa nje. Hii ni muhimu kwa sababu data inatoka kwenye chanzo kisichoweza kudhibitishwa.
- Kuhifadhi faili za kutekelezeka au faili za darasa kwenye uhifadhi wa nje kwa kupakia kwa muda ni jambo linalopendekezwa sana.
- Ikiwa programu yako lazima ipate faili za kutekelezeka kutoka kwa uhifadhi wa nje, hakikisha faili hizi zinasainiwa na kuthibitishwa kwa njia ya kriptografia kabla ya kupakiwa kwa muda. Hatua hii ni muhimu kwa kudumisha usalama wa programu yako.
Uhifadhi wa nje unaweza kufikiwa kwenye /storage/emulated/0
, /sdcard
, /mnt/sdcard
{% hint style="info" %} Kuanzia Android 4.4 (API 17), kadi ya SD ina muundo wa saraka ambao unazuia upatikanaji kutoka kwa programu kwenye saraka maalum kwa programu hiyo. Hii inazuia programu mbovu kupata upatikanaji wa kusoma au kuandika faili za programu nyingine. {% endhint %}
Data nyeti iliyohifadhiwa kwa maandishi wazi
- Mapendeleo ya Kushirikiana: Android inaruhusu kila programu kuokoa faili za xml kwa njia rahisi kwenye njia
/data/data/<jina la pakiti>/shared_prefs/
na mara nyingine inawezekana kupata habari nyeti kwa maandishi wazi kwenye saraka hiyo. - Maktaba za Data: Android inaruhusu kila programu kuokoa maktaba za sqlite kwa njia rahisi kwenye njia
/data/data/<jina la pakiti>/databases/
na mara nyingine inawezekana kupata habari nyeti kwa maandishi wazi kwenye saraka hiyo.
TLS Ilivunjika
Kubali Vyeti Vyote
Kwa sababu fulani mara nyingine watengenezaji wanakubali vyeti vyote hata kama kwa mfano jina la mwenyeji halilingani na mistari ya msimbo kama ifuatavyo:
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Ufumbuzi wa Kuvunja
Mchakato Duni wa Usimamizi wa Funguo
Baadhi ya watengenezaji hufadhaisha data nyeti kwenye uhifadhi wa ndani na kuiweka katika nambari ya siri/inayoweza kutabirika kwenye nambari. Hii haipaswi kufanywa kwani baadhi ya kugeuza inaweza kuruhusu wachomaji kutoa taarifa za siri.
Matumizi ya Alama za Usalama Zisizo Salama na/au Zilizopitwa na Wakati
Watengenezaji hawapaswi kutumia alama zilizopitwa na wakati kufanya uchunguzi wa idhini, kuhifadhi au kupeleka data. Baadhi ya alama hizi ni: RC4, MD4, MD5, SHA1... Ikiwa hashes hutumiwa kuhifadhi nywila kwa mfano, hashes zenye upinzani wa nguvu wa kugeuza zinapaswa kutumika pamoja na chumvi.
Uchunguzi Mwingine
- Inapendekezwa kuficha APK ili kufanya kazi ya kugeuza nyuma kuwa ngumu kwa wachomaji.
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kufanya uchunguzi wake mwenyewe kuona ikiwa simu ya mkononi imepata mizizi na kuchukua hatua kulingana na hilo.
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kuangalia ikiwa emulator inatumika.
- Ikiwa programu ni nyeti (kama programu za benki), inapaswa kuangalia uadilifu wake mwenyewe kabla ya kutekelezwa ili kuona ikiwa imebadilishwa.
- Tumia APKiD kuangalia ni kampili/pakiti/ufichaji gani uliotumiwa kujenga APK
Programu ya React Native
Soma ukurasa ufuatao kujifunza jinsi ya kupata kwa urahisi nambari ya javascript ya programu za React:
{% content-ref url="react-native-application.md" %} react-native-application.md {% endcontent-ref %}
Programu za Xamarin
Soma ukurasa ufuatao kujifunza jinsi ya kupata kwa urahisi nambari ya C# ya programu za xamarin:
{% content-ref url="../xamarin-apps.md" %} xamarin-apps.md {% endcontent-ref %}
Programu za Superpacked
Kulingana na hii machapisho ya blogi superpacked ni algorithm ya Meta ambayo inapunguza maudhui ya programu kuwa faili moja. Blogi inazungumzia uwezekano wa kuunda programu ambayo inafungua programu za aina hizi... na njia ya haraka ambayo inahusisha kutekeleza programu na kukusanya faili zilizopunguzwa kutoka kwa mfumo wa faili.
Uchambuzi wa Kanuni wa Statisia wa Kiotomatiki
Zana ya mariana-trench inaweza kupata udhaifu kwa kuchanganua kanuni ya programu. Zana hii ina safu ya vyanzo vilivyofahamika (ambavyo vinaonyesha zana mahali ambapo kuingia kunadhibitiwa na mtumiaji), mabwawa (ambayo inaonyesha zana mahali hatari ambapo kuingia cha mtumiaji mwenye nia mbaya kinaweza kusababisha uharibifu) na miongozo. Miongozo hii inaonyesha muungano wa vyanzo-mabwawa ambao unaonyesha udhaifu.
Kwa maarifa haya, mariana-trench itapitia kanuni na kupata udhaifu unaowezekana ndani yake.
Siri Zilizovuja
Programu inaweza kuwa na siri (funguo za API, nywila, viungo vilivyofichwa, subdomains...) ndani yake ambazo unaweza kugundua. Unaweza kutumia zana kama https://github.com/dwisiswant0/apkleaks
Kupita Uthibitishaji wa Kibaiometriki
{% content-ref url="bypass-biometric-authentication-android.md" %} bypass-biometric-authentication-android.md {% endcontent-ref %}
Kazi Nyingine za Kuvutia
- Utekelezaji wa Kanuni:
Runtime.exec(), ProcessBuilder(), kanuni ya asili:system()
- Tuma SMS:
tumaUjumbeWaMaandishi, tumaUjumbeWaMaandishiWaSehemu
- Kazi za asili zilizotangazwa kama
asili
:umma asili, System.loadLibrary, System.load
- Soma hii ili kujifunza jinsi ya kugeuza kazi za asili
Mbinu Nyingine
{% content-ref url="content-protocol.md" %} content-protocol.md {% endcontent-ref %}
Jiunge na HackenProof Discord server ili kuwasiliana na wachomaji wenye uzoefu na wawindaji wa tuzo za mdudu!
Machapisho ya Kuvamia
Shiriki na yaliyomo yanayochimba ndani ya msisimko na changamoto za kuvamia
Habari za Kuvamia za Wakati Halisi
Kaa sasa na ulimwengu wa kuvamia kwa kasi kupitia habari za wakati halisi na ufahamu
Matangazo ya Hivi Karibuni
Baki na habari za hivi karibuni za tuzo za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
Jiunge nasi kwenye Discord na anza kushirikiana na wachomaji bora leo!
Uchambuzi wa Kisasa
Kwanza kabisa, unahitaji mazingira ambapo unaweza kusakinisha programu na mazingira yote (cheti cha Burp CA, Drozer na Frida kwa kiasi kikubwa). Kwa hivyo, kifaa kilichopandishwa mizizi (kwa kutumia emulator au la) kinapendekezwa sana.
Uchambuzi wa Kisasa Mtandaoni
Unaweza kuunda akaunti ya bure katika: https://appetize.io/. Jukwaa hili linakuruhusu kupakia na kutekeleza APKs, hivyo ni muhimu kuona jinsi apk inavyotenda.
Unaweza hata kuona magogo ya programu yako kwenye wavuti na kuunganisha kupitia adb.
Kutokana na uhusiano wa ADB unaweza kutumia Drozer na Frida ndani ya wachomaji.
Uchambuzi wa Kisasa wa Ndani
Kutumia emulator
- Android Studio (Unaweza kuunda vifaa vya x86 na arm, na kulingana na hii x86 za hivi karibuni zinasaidia maktaba za ARM bila kuhitaji emulator ya polepole).
- Jifunze kuweka katika ukurasa huu:
{% content-ref url="avd-android-virtual-device.md" %} avd-android-virtual-device.md {% endcontent-ref %}
- Genymotion (Toleo la Bure: Toleo la Kibinafsi, unahitaji kuunda akaunti. Inapendekezwa kupakua toleo NA VirtualBox ili kuepuka makosa yanayowezekana.)
- Nox (Bure, lakini haisaidii Frida au Drozer).
{% hint style="info" %} Unapounda emulator mpya kwenye jukwaa lolote, kumbuka kwamba skrini ni kubwa, ndivyo emulator itakavyokuwa polepole. Chagua skrini ndogo ikiwezekana. {% endhint %}
Kuweka huduma za google (kama Duka la Programu) kwenye Genymotion unahitaji bonyeza kitufe kilichopigwa nyekundu kwenye picha ifuatayo:
Pia, kumbuka kuwa katika usakinishaji wa VM ya Android kwenye Genymotion unaweza kuchagua mode ya Mtandao wa Daraja (hii itakuwa muhimu ikiwa utakuwa unajiunga na VM ya Android kutoka kwa VM tofauti na zana).
Tumia kifaa halisi
Unahitaji kuamsha chaguo za kudebugi na itakuwa nzuri ikiwa unaweza kupandisha mizizi:
- Vipimo.
- (Kuanzia Android 8.0) Chagua Mfumo.
- Chagua Kuhusu simu.
- Bonyeza Nambari ya Kujenga mara 7.
- Rudi nyuma na utapata Chaguo za Watengenezaji.
Mara baada ya kusakinisha programu, jambo la kwanza unapaswa kufanya ni kujaribu na kuchunguza inafanya nini, inafanyaje kazi na kupata faraja nayo.
Nitapendekeza kufanya uchambuzi wa kwanza wa kisasa kwa kutumia uchambuzi wa kisasa wa MobSF + pidcat, hivyo tutaweza kujifunza jinsi programu inavyofanya kazi wakati MobSF inakamata data nyingi ya kuvutia unaweza kuchunguza baadaye.
Kutolewa kwa Data Isiyokusudiwa
Kuingiza Kumbukumbu
Wabunifu wanapaswa kuwa makini kuhusu kuweka wazi taarifa za kurekebisha hitilafu hadharani, kwani inaweza kusababisha uvujaji wa data nyeti. Zana pidcat na adb logcat
zinapendekezwa kwa kufuatilia kumbukumbu za programu ili kutambua na kulinda taarifa nyeti. Pidcat inapendelewa kwa urahisi wake wa matumizi na uwekaji wa habari.
{% hint style="warning" %}
Tambua kwamba kuanzia toleo jipya zaidi ya Android 4.0, programu zinaweza tu kupata kumbukumbu zao wenyewe. Hivyo, programu haziwezi kupata kumbukumbu za programu nyingine.
Hata hivyo, bado inapendekezwa kutoandika taarifa nyeti.
{% endhint %}
Kuhifadhi Kwenye Ubao wa Kunakili/Kubandika
Mfumo wa ubao wa kunakili wa Android unawezesha utendaji wa kunakili/kubandika kwenye programu, lakini unaweka hatari kwa kuwa programu nyingine zinaweza kupata ubao wa kunakili, hivyo kufichua data nyeti. Ni muhimu kulemaza utendaji wa kunakili/kubandika kwa sehemu nyeti za programu, kama vile maelezo ya kadi ya mkopo, ili kuzuia uvujaji wa data.
Kumbukumbu za Kusitisha
Ikiwa programu inasitisha na kuhifadhi kumbukumbu, kumbukumbu hizi zinaweza kusaidia wachomaji, hasa wakati programu haiwezi kugeuzwa kwa kurudishiwa nyuma. Ili kupunguza hatari hii, epuka kuandika kumbukumbu wakati wa kusitisha, na ikiwa kumbukumbu lazima itumwe kupitia mtandao, hakikisha zinatumwa kupitia kituo cha SSL kwa usalama.
Kama pentester, jaribu kutazama kumbukumbu hizi.
Data ya Takwimu Inayotumwa kwa Watu wa Tatu
Programu mara nyingi huingiza huduma kama Google Adsense, ambayo inaweza kwa bahati mbaya kufichua data nyeti kutokana na utekelezaji usio sahihi wa wabunifu. Ili kutambua uvujaji wa data wa uwezekano, ni vyema kukamata trafiki ya programu na kuangalia kama kuna taarifa nyeti inayotumwa kwa huduma za watu wa tatu.
SQLite DBs
Programu nyingi zitatumia databases za ndani za SQLite kuhifadhi taarifa. Wakati wa pentest, angalia databases zilizoundwa, majina ya meza na vitengo vyote vya data iliyohifadhiwa kwani unaweza kupata taarifa nyeti (ambayo itakuwa dosari).
Databases zinapaswa kuwa katika /data/data/jina.la.pakiti/databases
kama /data/data/com.mwr.example.sieve/databases
Ikiwa database inahifadhi taarifa za siri na ime fichwa lakini unaweza kupata nywila ndani ya programu bado ni dosari.
Panga meza kwa kutumia .tables
na panga vitengo vya meza kwa kufanya .schema <jina_la_meza>
Drozer (Shughuli za Kutumia, Watoa Huduma wa Yaliyomo na Huduma)
Kutoka kwa Drozer Docs: Drozer inakuruhusu kuchukua jukumu la programu ya Android na kuingiliana na programu nyingine. Inaweza kufanya chochote ambacho programu iliyosakinishwa inaweza kufanya, kama vile kutumia Mawasiliano ya Mchakato wa Android (IPC) na kuingiliana na mfumo wa uendeshaji wa msingi. .
Drozer ni zana muhimu kwa kutumia shughuli zilizotolewa, watoa huduma walio tolewa na Watoa Huduma wa Yaliyomo kama utakavyojifunza katika sehemu zifuatazo.
Kutumia Shughuli Zilizotolewa
Soma hii ikiwa unataka kufahamu upya ni nini Android Activity.
Pia kumbuka kuwa msimbo wa shughuli huanza katika njia ya onCreate
.
Kupuuza Uthibitisho
Wakati Shughuli inapotolewa unaweza kuita skrini yake kutoka kwa programu ya nje. Hivyo, ikiwa shughuli yenye taarifa nyeti ime tolewa unaweza kupuuza mifumo ya uthibitisho kwa kufikia hiyo.
Jifunze jinsi ya kutumia shughuli zilizotolewa na Drozer.
Unaweza pia kuanzisha shughuli iliyotolewa kutoka kwa adb:
- Jina la Pakiti ni com.example.demo
- Jina la Shughuli Iliyotolewa ni com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
TAARIFA: MobSF itagundua matumizi ya singleTask/singleInstance kama android:launchMode
katika activity kama hatari, lakini kutokana na hii, inaonekana hii ni hatari kwa toleo za zamani (toleo la API < 21).
{% hint style="info" %} Tafadhali kumbuka kwamba kukiuka idhini sio lazima iwe tishio, itategemea jinsi kukiuka hufanya kazi na ni habari gani inafichuliwa. {% endhint %}
Kuvuja kwa Taarifa Zenye Hisia
Activities pia zinaweza kurudisha matokeo. Ikiwa unafanikiwa kupata activity iliyotolewa na isiyolindwa ikitoa wito wa setResult
na kurudisha taarifa nyeti, hii ni kuvuja kwa taarifa zenye hisia.
Tapjacking
Ikiwa tapjacking haijazuiliwa, unaweza kutumia activity iliyotolewa kufanya mtumiaji afanye vitendo visivyotarajiwa. Kwa habari zaidi kuhusu ni nini Tapjacking fuata kiungo.
Kutumia Watoa Huduma - Kupata na kubadilisha taarifa zenye hisia
Soma hii ikiwa unataka kufahamu upya ni nini Mtoa Huduma.
Watoa huduma kimsingi hutumiwa kwa ajili ya kushiriki data. Ikiwa programu ina watoa huduma inayopatikana unaweza kutoa taarifa zenye hisia kutoka kwao. Pia ni muhimu kujaribu SQL injections na Path Traversals kwani wanaweza kuwa na mapungufu.
Jifunze jinsi ya kutumia Watoa Huduma na Drozer.
Kutumia Huduma
Soma hii ikiwa unataka kufahamu upya ni nini Huduma.
Kumbuka kuwa hatua za Huduma huanza katika njia onStartCommand
.
Huduma ni kitu ambacho kimsingi inaweza kupokea data, kuiprocess na kurudisha (au la) majibu. Kwa hivyo, ikiwa programu inatoa huduma fulani unapaswa kuangalia mimbo ili kuelewa inafanya nini na kuitest kwa njia ya kudhibiti ili kutoa taarifa za siri, kukiuka hatua za uthibitishaji... Jifunze jinsi ya kutumia Huduma na Drozer.
Kutumia Wapokeaji wa Matangazo
Soma hii ikiwa unataka kufahamu upya ni nini Mpokeaji wa Matangazo.
Kumbuka kuwa hatua za Mpokeaji wa Matangazo huanza katika njia onReceive
.
Mpokeaji wa matangazo atakuwa anasubiri aina fulani ya ujumbe. Kulingana na jinsi mpokeaji anavyoshughulikia ujumbe huo inaweza kuwa na mapungufu.
Jifunze jinsi ya kutumia Wapokeaji wa Matangazo na Drozer.
Kutumia Mipango / Viungo vya Kina
Unaweza kutafuta viungo vya kina kwa mkono, kutumia zana kama MobSF au hati kama hii.
Unaweza kufungua mpango uliotangazwa ukitumia adb au kivinjari:
{% code overflow="wrap" %}
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
{% endcode %}
Tafadhali kumbuka unaweza kuacha jina la pakiti na simu itaita moja kwa moja programu inayopaswa kufungua kiungo hicho.
{% code overflow="wrap" %}
<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
<!-- fallback in your url you could try the intent url -->
<a href="intent://hostname#Intent;scheme=scheme;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>
{% endcode %}
Msimbo ulioendeshwa
Ili kupata msimbo utakaotekelezwa kwenye Programu, nenda kwenye shughuli iliyoitwa na kiungo cha kina na tafuta kazi ya onNewIntent
.
Taarifa nyeti
Kila wakati unapopata kiungo kirefu hakikisha haipokei data nyeti (kama nywila) kupitia vigezo vya URL, kwa sababu programu nyingine yoyote inaweza kujifanya kuwa kiungo kirefu na kuiba data hiyo!
Vigezo katika njia
Laz uthibitishe pia ikiwa kiungo kirefu kinatumia kigezo ndani ya njia ya URL kama: https://api.example.com/v1/users/{username}
, katika kesi hiyo unaweza kulazimisha upitishaji wa njia kwa kupata kitu kama: example://app/users?username=../../unwanted-endpoint%3fparam=value
.
Tambua kwamba ukigundua vipengele sahihi ndani ya programu unaweza kusababisha Ukurasa wa Kuelekeza (ikiwa sehemu ya njia inatumika kama jina la kikoa), uchukuzi wa akaunti (ikiwa unaweza kurekebisha maelezo ya watumiaji bila ishara ya CSRF na kigezo cha udhaifu kilichotumika njia sahihi) na udhaifu mwingine wowote. Zaidi taarifa kuhusu hili hapa.
Mifano zaidi
Ripoti ya tuzo ya bugi yenye kuvutia kuhusu viungo (/.well-known/assetlinks.json).
Ukaguzi wa Tabaka la Usafirishaji na Kushindwa kwa Uhakiki wa Uthibitishaji
- Vyeti mara nyingi havikaguliwi ipasavyo na programu za Android. Ni kawaida kwa programu hizi kupuuza onyo na kukubali vyeti vilivyosainiwa na wenyewe au, kwa baadhi ya hali, kurudi kutumia mawasiliano ya HTTP.
- Majadiliano wakati wa mkono wa SSL/TLS mara nyingi ni dhaifu, kutumia seti za herufi zisizo salama. Udhaifu huu hufanya mawasiliano kuwa hatarini kwa mashambulizi ya mtu katikati (MITM), kuruhusu wachomaji kufichua data.
- Kuvuja kwa taarifa za kibinafsi ni hatari wakati programu zinafanya uthibitishaji kwa kutumia njia salama lakini kisha kufanya mawasiliano kupitia njia zisizo salama kwa shughuli nyingine. Hatua hii haikulindi data nyeti, kama vile vidakuzi vya kikao au maelezo ya mtumiaji, kutokana na kutekwa na miili ya uovu.
Uhakiki wa Cheti
Tutazingatia uhakiki wa cheti. Uadilifu wa cheti cha seva lazima uthibitishwe ili kuimarisha usalama. Hii ni muhimu kwa sababu mipangilio dhaifu ya TLS na usafirishaji wa data nyeti kupitia njia zisizo na kifaa zinaweza kuleta hatari kubwa. Kwa hatua za kina kuhusu kuthibitisha vyeti vya seva na kushughulikia udhaifu, rasilimali hii hutoa mwongozo kamili.
Kufunga SSL
Kufunga SSL ni hatua ya usalama ambapo programu inathibitisha cheti cha seva dhidi ya nakala inayojulikana iliyohifadhiwa ndani ya programu yenyewe. Mbinu hii ni muhimu kuzuia mashambulizi ya MITM. Kutekeleza Kufunga SSL kunapendekezwa sana kwa programu zinazoshughulikia taarifa nyeti.
Ukaguzi wa Trafiki
Ili kukagua trafiki ya HTTP, ni lazima kusakinisha cheti cha zana ya proksi (k.m., Burp). Bila kusakinisha cheti hiki, trafiki iliyosimbwa huenda isionekane kupitia proksi. Kwa mwongozo wa kusakinisha cheti cha CA cha desturi, bonyeza hapa.
Programu zinazolenga Kiwango cha API 24 na zaidi zinahitaji marekebisho kwenye Mipangilio ya Usalama wa Mtandao ili kukubali cheti cha CA cha proksi. Hatua hii ni muhimu kwa kukagua trafiki iliyosimbwa. Kwa maelekezo ya kurekebisha Mipangilio ya Usalama wa Mtandao, rejea kwa mafunzo haya.
Kupitisha Kufunga SSL
Wakati Kufunga SSL imefanywa, kupitisha ni muhimu ili kukagua trafiki ya HTTPS. Mbinu mbalimbali zinapatikana kwa kusudi hili:
- Kurekebisha apk kiotomatiki ili kipitishe Kufunga SSL na apk-mitm. Faida kuu ya chaguo hili ni kwamba hautahitaji mizizi kwa kupitisha Kufunga SSL, lakini utahitaji kufuta programu na kusakinisha mpya, na hii haitafanya kazi kila wakati.
- Unaweza kutumia Frida (kujadiliwa hapa chini) kupitisha ulinzi huu. Hapa una mwongozo wa kutumia Burp+Frida+Genymotion: https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/
- Unaweza pia kujaribu kupitisha Kufunga SSL kiotomatiki kwa kutumia objection:
objection --gadget com.package.app explore --startup-command "android sslpinning disable"
- Unaweza pia kujaribu kupitisha Kufunga SSL kiotomatiki kwa kutumia uchambuzi wa kina wa MobSF (jieleza hapa chini)
- Ikiwa bado unadhani kuna trafiki ambayo hauichukui unaweza kujaribu kupeleka trafiki kwa burp kwa kutumia iptables. Soma blogi hii: https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62
Kutafuta Udhaifu wa Kawaida wa Wavuti
Ni muhimu pia kutafuta udhaifu wa kawaida wa wavuti ndani ya programu. Maelezo ya kina kuhusu kutambua na kupunguza udhaifu huu yanazidi upeo wa muhtasari huu lakini yanashughulikiwa kwa kina mahali pengine.
Frida
Frida ni seti ya zana ya uwekaji wa kudumu kwa watengenezaji, wanaorudisha, na watafiti wa usalama.
Unaweza kupata programu inayoendeshwa na kufunga mbinu za wakati wa kukimbia kubadilisha tabia, kubadilisha thamani, kutoa thamani, kuendesha msimbo tofauti...
Ikiwa unataka kufanya ukaguzi wa kina wa programu za Android unahitaji kujua jinsi ya kutumia Frida.
- Jifunze jinsi ya kutumia Frida: Mafunzo ya Frida
- Baadhi ya "GUI" kwa vitendo na Frida: https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
- Ojection ni nzuri kwa kiotomatiki matumizi ya Frida: https://github.com/sensepost/objection , https://github.com/dpnishant/appmon
- Unaweza kupata baadhi ya skripti za kushangaza za Frida hapa: https://codeshare.frida.re/
- Jaribu kupitisha mbinu za kuzuia uchunguzi wa kosa / mbinu za kuzuia Frida kwa kupakia Frida kama ilivyoelezwa katika https://erfur.github.io/blog/dev/code-injection-without-ptrace (zana linjector)
Dump Memory - Fridump
Angalia ikiwa programu inahifadhi taarifa nyeti ndani ya kumbukumbu ambayo haipaswi kuhifadhi kama nywila au mnemoniki.
Kwa kutumia Fridump3 unaweza kudondosha kumbukumbu ya programu na:
# With PID
python3 fridump3.py -u <PID>
# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"
Hii itadondosha kumbukumbu katika folda ya ./dump, na hapo unaweza kutumia grep na kitu kama:
strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"
{% endcode %}
Data nyeti katika Keystore
Katika Android Keystore ni mahali bora pa kuhifadhi data nyeti, hata hivyo, kwa idhini za kutosha bado inawezekana kufikia. Kwa kuwa programu mara nyingi huhifadhi hapa data nyeti kwa maandishi wazi vipimo vya pentest vinapaswa kuangalia hili kwani mtumiaji wa mizizi au mtu mwenye ufikivu wa kimwili kwenye kifaa anaweza kuiba data hii.
Hata kama programu ilihifadhi tarehe kwenye keystore, data inapaswa kuwa imefichwa.
Kufikia data ndani ya keystore unaweza kutumia script hii ya Frida: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
Kupitisha Alama ya Kidole/Alama za Biometriki
Kwa kutumia script ya Frida ifuatayo inaweza kuwa kupitisha uthibitishaji wa alama ya kidole ambao programu za Android zinaweza kuwa zinafanya ili kulinda maeneo fulani yenye nyeti:
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
Picha za Mandharinyuma
Unapoweka programu katika mandharinyuma, Android huchukua picha ya programu ili wakati inarudishwa mbele ianze kupakia picha kabla ya programu ili ionekane kana kwamba programu imepakia haraka.
Hata hivyo, ikiwa picha hii ina taarifa nyeti, mtu mwenye ufikivu wa picha hiyo anaweza kuiba taarifa hizo (kumbuka unahitaji ruhusa ya msingi kuifikia).
Picha za mandharinyuma kawaida hufungwa karibu na: /data/system_ce/0/snapshots
Android hutoa njia ya kuzuia upigaji picha wa skrini kwa kuweka FLAG_SECURE kama parameta ya muundo. Kwa kutumia bendera hii, maudhui ya dirisha hutibiwa kama salama, kuzuia kuonekana kwenye picha za skrini au kutazamwa kwenye maonyesho yasiyo salama.
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Mchambuzi wa Maombi ya Android
Zana hii inaweza kukusaidia kusimamia zana tofauti wakati wa uchambuzi wa kudumu: https://github.com/NotSoSecure/android_application_analyzer
Kuingiza Kusudi
Wabunifu mara nyingi hujenga vipengele vya proksi kama shughuli, huduma, na wapokeaji wa matangazo ambao hushughulikia hizi Kusudi na kuzipitisha kwa njia kama startActivity(...)
au sendBroadcast(...)
, ambayo inaweza kuwa hatari.
Hatari iko katika kuruhusu wachomaji kuanzisha vipengele vya programu ambavyo havijaonyeshwa au kupata watoa huduma wa yaliyomo kwa kuelekeza vibaya hizi Kusudi. Mfano muhimu ni kipengele cha WebView
kubadilisha URL kuwa vitu vya Kusudi
kupitia Intent.parseUri(...)
na kisha kuzitekeleza, ikisababisha uwezekano wa kuingiza Kusudi zenye nia mbaya.
Mambo Muhimu
- Kuingiza Kusudi ni sawa na shida ya Uelekezaji wa Wazi kwenye wavuti.
- Mashambulizi yanahusisha kupitisha vitu vya
Kusudi
kama ziada, ambazo zinaweza kuelekezwa kutekeleza shughuli zisizo salama. - Inaweza kufunua vipengele visivyoonyeshwa na watoa huduma wa yaliyomo kwa wachomaji.
- Ubadilishaji wa URL wa
WebView
kuwa vitu vyaKusudi
unaweza kurahisisha hatua zisizokusudiwa.
Kuingiza Kwa Upande wa Mteja wa Android na vinginevyo
Labda unajua kuhusu aina hii ya udhaifu kutoka kwenye Wavuti. Lazima uwe makini hasa na udhaifu huu katika programu ya Android:
- Kuingiza SQL: Wakati unashughulika na maswali ya kudumu au Watoa-Huduma za Yaliyomo hakikisha unatumia maswali yaliyoparameta.
- Kuingiza JavaScript (XSS): Hakikisha kwamba JavaScript na msaada wa Plugin umefungwa kwa WebViews yoyote (imefungwa kwa chaguo-msingi). Maelezo zaidi hapa.
- Kuingiza Faili ya Ndani: WebViews inapaswa kuwa na ufikiaji wa mfumo wa faili uliozimwa (umewezeshwa kwa chaguo-msingi) -
(webview.getSettings().setAllowFileAccess(false);)
. Maelezo zaidi hapa. - Vidakuzi vya Milele: Katika visa kadhaa wakati programu ya Android inamaliza kipindi cha kikao, kuki haijafutwa au inaweza hata kuokolewa kwenye diski
- Bendera ya Usalama kwenye vidakuzi
Jiunge na HackenProof Discord ili kuwasiliana na wachomaji wenye uzoefu na wawindaji wa tuzo za mdudu!
Machapisho ya Kuchomwa
Shiriki na maudhui yanayochimba katika msisimko na changamoto za kuchoma
Habari za Kuchomwa kwa Wakati Halisi
Kaa sawa na ulimwengu wa kuchomwa kwa kasi kupitia habari za wakati halisi na ufahamu
Matangazo Mapya Zaidi
Baki na habari za hivi karibuni za tuzo za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
Jiunge nasi kwenye Discord na anza kushirikiana na wachomaji bora leo!
Uchambuzi wa Kiotomatiki
MobSF
Uchambuzi wa Starehe
Tathmini ya udhaifu wa programu kwa kutumia kiolesura cha wavuti kizuri. Unaweza pia kufanya uchambuzi wa kudumu (lakini unahitaji kuandaa mazingira).
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
Tambua kwamba MobSF inaweza kuchambua Android(apk), IOS(ipa) na Windows(apx) maombi (Maombi ya Windows yanapaswa kuchambuliwa kutoka kwa MobSF iliyosakinishwa kwenye mwenyeji wa Windows).
Pia, ikiwa unajenga faili ya ZIP na msimbo wa chanzo wa programu ya Android au IOS (enda kwenye folda kuu ya maombi, chagua kila kitu na uunda faili ya ZIP), MobSF itaweza kuchambua pia.
MobSF pia inakuruhusu kufanya diff/Compare uchambuzi na kuunganisha VirusTotal (utahitaji kuweka muhimu yako ya API katika MobSF/settings.py na kuwezesha: VT_ENABLED = TRUE
VT_API_KEY = <Muhimu wako wa API>
VT_UPLOAD = TRUE
). Unaweza pia kuweka VT_UPLOAD
kuwa False
, kisha hash ita pelekwa badala ya faili.
Uchambuzi wa Kisasa ulioongozwa na MobSF
MobSF inaweza pia kuwa na manufaa sana kwa uchambuzi wa kisasa katika Android, lakini katika kesi hiyo utahitaji kusakinisha MobSF na genymotion kwenye mwenyeji wako (VM au Docker haitafanya kazi). Maelezo: Unahitaji kuanza kwanza VM katika genymotion na kisha MobSF.
Mchambuzi wa kisasa wa MobSF unaweza:
- Dump data ya maombi (URLs, logs, clipboard, viwambo vilivyofanywa na wewe, viwambo vilivyofanywa na "Mteja wa Shughuli iliyosafirishwa", barua pepe, databases za SQLite, faili za XML, na faili zingine zilizoundwa). Hii yote hufanywa moja kwa moja isipokuwa viwambo, unahitaji kubonyeza unapotaka viwambo au unahitaji kubonyeza "Mteja wa Shughuli iliyosafirishwa" ili upate viwambo vya shughuli zote zilizosafirishwa.
- Kukamata trafiki ya HTTPS
- Kutumia Frida kupata muda wa kukimbia taarifa
Kuanzia toleo la Android > 5, ita anzisha Frida moja kwa moja na itaweka mipangilio ya proxy ya kimataifa kwa kukamata trafiki. Itakamata trafiki kutoka kwa maombi yaliyopimwa tu.
Frida
Kwa chaguo-msingi, pia itatumia Skripti za Frida kwa kupuuza SSL pinning, ugunduzi wa root na ugunduzi wa debugger na kufuatilia API za kuvutia.
MobSF pia inaweza kuamsha shughuli zilizosafirishwa, kunasa viwambo vyao na kuhifadhi kwa ripoti.
Kuanza ujaribio wa kisasa bonyeza kitufe cha kijani: "Anza Upelelezi". Bonyeza "Frida Live Logs" kuona logs zilizozalishwa na skripti za Frida na "Mfuatiliaji wa API Moja kwa Moja" kuona mwaliko wote kwa njia zilizounganishwa, hoja zilizopitishwa na thamani zilizorudishwa (hii itaonekana baada ya kubonyeza "Anza Upelelezi").
MobSF pia inakuruhusu kupakia skripti zako za Frida (kutuma matokeo ya skripti zako za Ijumaa kwa MobSF tumia kazi tuma()
). Pia ina skripti zilizopewa maandishi unaweza kupakia (unaweza kuongeza zaidi katika MobSF/DynamicAnalyzer/tools/frida_scripts/others/
), tu zichague, bonyeza "Pakia" na bonyeza "Anza Upelelezi" (utaweza kuona logs za skripti hizo ndani ya "Frida Live Logs").
Zaidi ya hayo, una baadhi ya utendaji wa ziada wa Frida:
- Piga Darasa Zilizopakiwa: Itachapisha darasa zote zilizopakiwa
- Kamata Maneno: Itachapisha maneno yote yaliyokamatwa wakati wa kutumia maombi (kelele kubwa sana)
- Kamata Linganishi la Maneno: Inaweza kuwa na manufaa sana. Ita onyesha maneno 2 yanayolinganishwa na ikiwa matokeo yalikuwa ya Kweli au ya Uongo.
- Piga Njia za Darasa: Weka jina la darasa (kama "java.io.File") na itachapisha njia zote za darasa.
- Tafuta Kielelezo cha Darasa: Tafuta darasa kwa kielelezo
- Fuatilia Njia za Darasa: Fuatilia darasa zima (ona matokeo na matokeo ya njia zote za darasa). Kumbuka kwamba kwa chaguo-msingi MobSF inafuatilia njia kadhaa za API za Android za kuvutia.
Maratibu unapochagua moduli ya ziada unayotaka kutumia unahitaji kubonyeza "Anza Upelelezi" na utaona matokeo yote katika "Frida Live Logs".
Kifaa cha Amri
Mobsf pia inakuletea kifaa cha amri na baadhi ya amri za adb, amri za MobSF, na amri za kawaida za shell chini ya ukurasa wa uchambuzi wa kisasa. Baadhi ya amri za kuvutia:
help
shell ls
activities
exported_activities
services
receivers
Vyombo vya HTTP
Unapochukua trafiki ya http unaweza kuona mtazamo mbaya wa trafiki iliyochukuliwa kwenye "HTTP(S) Traffic" chini au mtazamo mzuri zaidi kwenye kitufe cha kijani cha "Start HTTPTools". Kutoka chaguo la pili, unaweza kutuma maombi yaliyochukuliwa kwa proxies kama Burp au Owasp ZAP.
Ili kufanya hivyo, washa Burp --> zima Intercept --> kwenye MobSB HTTPTools chagua ombi --> bonyeza "Tuma kwa Fuzzer" --> chagua anwani ya proxy (http://127.0.0.1:8080\).
Baada ya kumaliza uchambuzi wa kudhamini na MobSF unaweza bonyeza "Anza Web API Fuzzer" kwa kufanya fuzz maombi ya http na kutafuta udhaifu.
{% hint style="info" %} Baada ya kufanya uchambuzi wa kudhamini na MobSF mipangilio ya proxy inaweza kuwa imeharibika na huenda usiweze kuzirekebisha kutoka kwenye GUI. Unaweza kuzirekebisha mipangilio ya proxy kwa kufanya:
adb shell settings put global http_proxy :0
{% endhint %}
Uchambuzi wa Kielelezo ulioongozwa na Inspeckage
Unaweza kupata zana kutoka kwa Inspeckage.
Zana hii itatumia Hooks kadhaa kukujulisha kinachotokea katika programu wakati unafanya uchambuzi wa kielelezo.
Yaazhini
Hii ni zana nzuri kufanya uchambuzi wa kistatiki na GUI
Qark
Zana hii imeundwa kutafuta mapungufu kadhaa ya usalama wa programu za Android, iwe katika msimbo wa chanzo au APK zilizopakwa. Zana hii pia inaweza kuunda APK inayoweza kutekelezwa kama "uthibitisho wa dhana" na amri za ADB, kwa kufaidika na baadhi ya mapungufu yaliyopatikana (shughuli zilizofichuliwa, nia, tapjacking...). Kama ilivyo na Drozer, hakuna haja ya kuroot kifaa cha majaribio.
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
qark --java path/to/parent/java/folder
qark --java path/to/specific/java/file.java
ReverseAPK
- Inaonyesha faili zote zilizochimbuliwa kwa urahisi
- Kudecompile moja kwa moja faili za APK hadi muundo wa Java na Smali
- Kuchambua AndroidManifest.xml kwa mapungufu na tabia za kawaida
- Uchambuzi wa msimbo wa chanzo wa tuli kwa mapungufu na tabia za kawaida
- Taarifa za kifaa
- na zaidi
reverse-apk relative/path/to/APP.apk
SUPER Android Analyzer
SUPER ni programu ya mstari wa amri inayoweza kutumika kwenye Windows, MacOS X na Linux, ambayo inachambua faili za .apk kutafuta mapungufu. Inafanya hivi kwa kufungua APKs na kutumia seti ya sheria za kugundua mapungufu hayo.
Sheria zote zinazingatia faili ya rules.json
, na kila kampuni au mtihani anaweza kuunda sheria zao za kuchambua wanachohitaji.
Pakua toleo jipya la binaries kutoka kwenye ukurasa wa kupakua
super-analyzer {apk_file}
StaCoAn
StaCoAn ni chombo cha msalaba-jukwaa kinachosaidia wabunifu, wawindaji wa tuzo za mdudu na wadukuzi wa maadili kufanya uchambuzi wa msimbo wa tuli kwenye programu za simu.
Wazo ni kwamba unaburuta na kuachia faili yako ya programu ya simu (faili ya .apk au .ipa) kwenye programu ya StaCoAn na itazalisha ripoti ya kuona na inayoweza kubebeka kwako. Unaweza kubadilisha mipangilio na orodha za maneno ili upate uzoefu ulioboreshwa.
Pakua toleo jipya zaidi:
./stacoan
AndroBugs
AndroBugs Framework ni mfumo wa uchambuzi wa udhaifu wa Android ambao husaidia waendelezaji au wadukuzi kupata udhaifu wa usalama katika programu za Android.
Vipindi vya Windows
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
Androwarn
Androwarn ni chombo ambacho lengo kuu ni kugundua na kumwonya mtumiaji kuhusu tabia za uovu zinazotengenezwa na programu ya Android.
Ugunduzi hufanywa na uchambuzi wa static wa bytecode ya Dalvik ya programu, iliyoonyeshwa kama Smali, na maktaba ya androguard
.
Chombo hiki hutafuta tabia za kawaida za programu "mbaya" kama: Ufichuaji wa vitambulisho vya simu, Udukuzi wa mizani ya sauti/video, Kubadilisha data ya PIM, Utekelezaji wa nambari isiyo na mpangilio...
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
Mfumo wa MARA
MARA ni Mfumo wa Analisi na Reverse engineering wa Aplikesheni za Simu. Ni chombo kinachojumuisha zana za kawaida za reverse engineering na uchambuzi wa aplikesheni za simu, kusaidia katika kupima aplikesheni za simu dhidi ya vitisho vya usalama vya simu vya OWASP. Lengo lake ni kufanya kazi hii iwe rahisi na rafiki kwa watengenezaji wa aplikesheni za simu na wataalamu wa usalama.
Inaweza:
- Kunasa nambari za Java na Smali kwa kutumia zana tofauti
- Kuchambua APKs kwa kutumia: smalisca, ClassyShark, androbugs, androwarn, APKiD
- Kunasa habari za kibinafsi kutoka kwa APK kwa kutumia regexps.
- Kuchambua Manifest.
- Kuchambua vikoa vilivyopatikana kwa kutumia: pyssltest, testssl na whatweb
- Kufuta Obfuscate APK kupitia apk-deguard.com
Koodous
Inatumika kugundua zisizo: https://koodous.com/
Obfuscating/Deobfuscating nambari
Tafadhali kumbuka kuwa inategemea huduma na usanidi unaoitumia kuficha nambari. Siri inaweza au isimalize kufichwa.
ProGuard
Kutoka Wikipedia: ProGuard ni zana ya amri ya mstari wa wazi inayopunguza, inaboresha na kuficha nambari ya Java. Inaweza kuboresha bytecode pamoja na kugundua na kuondoa maagizo yasiyotumiwa. ProGuard ni programu huru na inasambazwa chini ya Leseni ya Umma ya GNU, toleo la 2.
ProGuard inasambazwa kama sehemu ya Android SDK na inaendesha wakati wa kujenga aplikesheni katika hali ya kutolewa.
DexGuard
Pata mwongozo wa hatua kwa hatua wa kufuta obfuscate apk katika https://blog.lexfo.fr/dexguard.html
(Kutoka kwa mwongozo huo) Wakati wa mwisho tulipoangalia, mode ya Dexguard ya uendeshaji ilikuwa:
- pakia rasilimali kama InputStream;
- peleka matokeo kwa darasa linaloiga kutoka kwa FilterInputStream kufichua;
- fanya obfuscation isiyo na maana kufanya muda wa dakika chache kutoka kwa mrejeshaji;
- peleka matokeo yaliyofichuliwa kwa ZipInputStream kupata faili ya DEX;
- hatimaye pakia DEX inayopatikana kama Rasilimali kwa kutumia njia ya
loadDex
.
DeGuard
DeGuard inabadilisha mchakato wa obfuscation uliofanywa na zana za obfuscation za Android. Hii inawezesha uchambuzi wa usalama mwingi, ikiwa ni pamoja na ukaguzi wa nambari na kutabiri maktaba.
Unaweza kupakia APK iliyofichwa kwenye jukwaa lao.
Simplify
Ni deobfuscator wa kawaida wa Android. Simplify inakimbia programu kuelewa tabia yake na kisha jaribu kuboresha nambari ili iweze kutenda kwa njia ile ile lakini iwe rahisi kwa binadamu kuelewa. Kila aina ya uboreshaji ni rahisi na wa kawaida, kwa hivyo haifai ni aina gani maalum ya obfuscation inayotumiwa.
APKiD
APKiD inakupa habari kuhusu jinsi APK ilivyotengenezwa. Inatambua compilers nyingi, packers, obfuscators, na mambo mengine ya ajabu. Ni PEiD kwa Android.
Manual
Soma mafunzo haya kujifunza mbinu kadhaa za jinsi ya kufuta obfuscation ya kawaida
Maabara
Androl4b
AndroL4b ni mashine ya kivitual ya usalama wa Android inayotegemea ubuntu-mate inajumuisha mkusanyiko wa hivi karibuni wa fremu, mafunzo na maabara kutoka kwa wataalamu tofauti wa usalama na watafiti kwa ajili ya reverse engineering na uchambuzi wa zisizo.
Marejeo
- https://owasp.org/www-project-mobile-app-security/
- https://appsecwiki.com/#/ Ni orodha kubwa ya rasilimali
- https://maddiestone.github.io/AndroidAppRE/ Kozi fupi ya Android
- https://manifestsecurity.com/android-application-security/
- https://github.com/Ralireza/Android-Security-Teryaagh
- https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec
Bado kujaribu
Jiunge na HackenProof Discord server ili kuwasiliana na wadukuzi wenye uzoefu na wawindaji wa tuzo za mdudu!
Machapisho ya Kudukua
Shiriki na maudhui yanayochimba katika msisimko na changamoto za kudukua
Habari za Kudukua za Wakati Halisi
Kaa sawa na ulimwengu wa kudukua wenye kasi kupitia habari za wakati halisi na ufahamu
Matangazo ya Karibuni
Baki mwelekezi na tuzo mpya za mdudu zinazoanzishwa na sasisho muhimu za jukwaa
Jiunge nasi kwenye Discord na anza kushirikiana na wadukuzi bora leo!
Jifunze kudukua kwa kutumia AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata swagi rasmi ya PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.