Programu za Android Pentesting
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Misingi ya Programu za Android
Inapendekezwa sana kuanza kusoma ukurasa huu ili kujua kuhusu sehemu muhimu zaidi zinazohusiana na usalama wa Android na vipengele hatari zaidi katika programu ya Android:
ADB (Android Debug Bridge)
Hii ni zana kuu unayohitaji kuungana na kifaa cha Android (kilichoigizwa au halisi).
ADB inakuwezesha kudhibiti vifaa kupitia USB au Network kutoka kwa kompyuta. Utility hii inaruhusu kunakili faili kwa pande zote, kusakinisha na kuondoa apps, kutekeleza amri za shell, kufanya backup ya data, kusoma logs, miongoni mwa kazi nyingine.
Tazama orodha ifuatayo ya ADB Commands ili kujifunza jinsi ya kutumia adb.
Smali
Wakati mwingine inavutia kubadilisha msimbo wa programu ili kupata taarifa zilizofichwa (labda nywila zilizofichwa vizuri au flags). Kisha, inaweza kuwa muhimu ku-decompile apk, kubadilisha msimbo na kuirecompile tena.
In this tutorial you can learn how to decompile and APK, modify Smali code and recompile the APK with the new functionality. Hii inaweza kuwa muhimu kama alternative for several tests during the dynamic analysis ambazo zitatolewa. Kumbuka daima uwezekano huu.
Mbinu nyingine za kuvutia
- Spoofing your location in Play Store
- Play Integrity attestation spoofing (SafetyNet replacement)
- Android app-level virtualization / app cloning abuse & detection
- Shizuku Privileged API (ADB-based non-root privileged access)
- Exploiting Insecure In-App Update Mechanisms
- Abusing Accessibility Services (Android RAT)
- Android IME / InputMethodService Abuse (Malicious Keyboards)
- NFC/EMV Relay via HCE (Android Tap-to-Pay abuse)
- Download APKs: https://apps.evozi.com/apk-downloader/, https://apkpure.com/es/, https://www.apkmirror.com/, https://apkcombo.com/es-es/apk-downloader/, https://github.com/kiber-io/apkd
Upataji wa APK kutoka vyanzo vingi kwa njia ya automatiki (justapk)
pip install justapk (Python 3.11+). CLI hutoa JSON kwa stdout na maendeleo kwa stderr (inayofaa kwa pipe). Inajaribu mnyororo wa deterministic fallback kupitia APK20 → F-Droid → APKPure (mobile API) → APKMirror (HTML scrape) → Uptodown (mobile API) → APKCombo (HTML scrape). Vyanzo vilivyo chini ya ulinzi wa Cloudflare vinatumia curl_cffi kwa kuiga TLS fingerprint ili kuiga wateja halisi na kupunguza vizuizi vya utambuzi wa bot.
justapk download <package> # auto fallback
justapk download <package> -s apkpure # pin a source / version / output dir
justapk search telegram
justapk info org.telegram.messenger
justapk convert app.xapk -o output/ # merges splits, re-signs with debug key
convert huunganisha XAPK/split APKs na kuvisaini kwa debug key, hivyo saini/chanzo ya APK inayotokana itatofautiana na ile ya asili (tumia kwa majaribio/uchambuzi, sio kwa usakinishaji wa uzalishaji).
- Chukua APK kutoka kwenye 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
- Unganisha splits zote na base apks kwa kutumia APKEditor:
mkdir splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
java -jar ../APKEditor.jar m -i splits/ -o merged.apk
# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
Mbinu za malware za Android (loaders, fileless DEX, persistence)
Native staging + fileless DEX loaders
Baadhi ya Android droppers huingiza maktaba ya native (lib*.so) ambayo ina-decrypt na kuandika ELF ya pili (kwa mfano, l.so) kwenye path ya muda, kuiweka kupitia JNI, kisha inapakia logic halisi kama DEX katika kumbukumbu pekee kwa kutumia dalvik.system.InMemoryDexClassLoader. Hii inapunguza uonekano wa static wa payload na kuepuka kuandika classes*.dex kwenye disk.
Vidokezo vya triage vya vitendo:
- Tafuta maktaba za native ambazo
dlopenau zinaitaSystem.loadLibrarymapema sana, kisha zina-resolve Java methods kupitia stack strings zilizofichwa (mfano, zinazo-decode kwa XOR kwenye stack). - Tazama kwa ajili ya
InMemoryDexClassLoaderkatika logs/strings au hooks, ambayo inaonyesha utekelezaji wa fileless DEX.
Hook fupi ya Frida kutupa (dump) buffer ya DEX iliyomo kwenye kumbukumbu:
Java.perform(() => {
const IM = Java.use('dalvik.system.InMemoryDexClassLoader');
IM.$init.overload('java.nio.ByteBuffer','java.lang.ClassLoader').implementation = function(buf, parent){
const arr = Java.array('byte', buf.array());
const fos = Java.use('java.io.FileOutputStream').$new("/sdcard/memdex.dex");
fos.write(arr); fos.close();
return this.$init(buf, parent);
};
});
Anti-analysis kill-switch
Loaders zilizopakiwa mara nyingi hujizima wakati ukaguzi wa emulator au uchambuzi unashindwa (kwa mfano, uthibitishaji wa CPU_ABI) kwa kuita:
android.os.Process.killProcess(android.os.Process.myPid());
Persistence via foreground service + MediaPlayer loop
Pattern nyepesi ya persistence ni kuweka foreground service hai kwa kutumia pinned notification na kucheza mzunguko wa sauti karibu usiotamkwa kwa kutumia MediaPlayer. Hii inafanya process “active” na kupunguza kuuliwa na OS kwa ukosefu wa shughuli. Angalia matumizi ya ForegroundService + MediaPlayer yanayozungusha asset ndogo (mara nyingi sekunde chache).
Accessibility overlay + ACTION_SET_TEXT hijacking
Baada ya mtumiaji kutoa Accessibility, banking trojans zinaweza kufuatilia foreground app, kuonyesha overlay yenye muonekano wa kweli (mara nyingi WebView HTML iliyohifadhiwa kama Base64), na kubadilisha mashamba ya muamala kwa kutumia AccessibilityNodeInfo.ACTION_SET_TEXT. Hii inaruhusu kubadilisha kimya anwani ya mpokeaji huku mwathirika akiiona UI inayofaa.
Mfano mdogo wa kubadilisha maandishi:
Bundle args = new Bundle();
args.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
"ATTACKER_USDT_ADDRESS");
node.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, args);
Miundombinu halali ya push kama C2 gating
Badala ya custom sockets, baadhi ya malware hutumia Firebase Cloud Messaging (FCM) kama channel ya C2. Ujumbe za FCM zinaweza kusababisha telemetry checks (charging state, battery %, temperature, user inactivity) na gate actions kama mining au fraud kwa ajili ya stealth.
Encrypted native payload staging with filename‑derived keys
Native payloads zinaweza kutolewa kama blobs za ELF zilizofichwa na kufichuliwa kwa CipherInputStream(), zikitumia key iliyotokana na SHA‑1 ya filename iliyopakuliwa. Kila filename/version hutoa key tofauti, ikizuia matumizi tena ya static IOC reuse.
Jezail rooted Android pentesting toolkit (REST API + web UI)
- Itaendesha kwenye rooted device (Magisk/rootAVD) na inaanzisha HTTP server kwenye tcp/8080 yenye Flutter web UI na REST API.
- Sakinisha release APK kwa perms:
adb install -g -r jezail.apk, kisha anzisha app (server anaanzisha kwa auto). - Endpoints:
http://<device-ip>:8080/(UI),http://<device-ip>:8080/api/json(API listing),http://<device-ip>:8080/api/swagger(Swagger). - Fanya emulator port-forward ili kufikia UI/API kutoka host:
adb forward tcp:8080 tcp:8080kisha tembeleahttp://localhost:8080.
Android Enterprise & Work Profile Attacks
Android Enterprise Work Profile Bypass
Case Studies & Vulnerabilities
Air Keyboard Remote Input Injection
Android Rooting Frameworks Manager Auth Bypass Syscall Hook
Abusing Android Media Pipelines Image Parsers
Firmware Level Zygote Backdoor Libandroid Runtime
Static Analysis
Kwanza kabisa, kwa kuchambua APK unapaswa kuitaangalia Java code ukitumia decompiler.
Tafadhali, soma hapa ili kupata taarifa kuhusu decompilers mbalimbali zinazopatikana.
Kutafuta Habari Zinazovutia
Kwa kuangalia tu strings za APK unaweza kutafuta passwords, URLs (https://github.com/ndelphit/apkurlgrep), api keys, encryption, bluetooth uuids, tokens na chochote kinachovutia… tazama hata kwa code execution backdoors au authentication backdoors (hardcoded admin credentials kwenye app).
Firebase
Toa umakini maalum kwa firebase URLs na uhakiki kama imewekwa vibaya. Maelezo zaidi kuhusu nini ni Firebase na jinsi ya kuiexploit hapa.
Uelewa wa msingi wa application - Manifest.xml, strings.xml
Ukaguzi wa faili za programu Manifest.xml na strings.xml unaweza kufichua udhaifu wa usalama potensiali. Faili hizi zinaweza kupatikana kwa kutumia decompilers au kwa kubadilisha extension ya faili ya APK kuwa .zip kisha kuizifungua.
Vulnerabilities zilizobainishwa kutoka kwa Manifest.xml ni pamoja na:
- Debuggable Applications: Applications zilizowekwa kama debuggable (
debuggable="true") katika faili la Manifest.xml zinaweza kuwa hatari kwa kuwa zinaruhusu connections zinazoweza kusababisha exploitation. Kwa uelewa zaidi juu ya jinsi ya ku-exploit debuggable applications, rejea tutorial kuhusu jinsi ya kupata na ku-exploit debuggable applications kwenye kifaa. - Backup Settings: Attribute
android:allowBackup="false"inapaswa kuwekwa wazi kwa applications zinazoendesha taarifa nyeti ili kuzuia backups zisizoidhinishwa kupitia adb, hasa wakati usb debugging imewezeshwa. - Network Security: Custom network security configurations (
android:networkSecurityConfig="@xml/network_security_config") katika res/xml/ zinaweza kubainisha maelezo ya usalama kama certificate pins na mipangilio ya HTTP traffic. Mfano ni kuruhusu HTTP traffic kwa specific domains. - Exported Activities and Services: Kutambua exported activities na services katika manifest kunaweza kuonyesha components ambazo zinaweza kutumika vibaya. Uchambuzi zaidi wakati wa dynamic testing unaweza kufichua jinsi ya ku-exploit components hizi.
- Content Providers and FileProviders: Content providers zilizo wazi zinaweza kuruhusu upatikanaji au urekebishaji wa data usioidhinishwa. Utekelezaji wa FileProviders pia unapaswa kuchunguzwa kwa makini.
- Broadcast Receivers and URL Schemes: Components hizi zinaweza kutumika kwa exploitation, hasa kuangalia jinsi URL schemes zinavyosimamiwa kwa ajili ya input vulnerabilities.
- SDK Versions:
minSdkVersion,targetSDKVersion, namaxSdkVersionzinaonyesha toleo la Android linaloungwa mkono, zikibainisha umuhimu wa kutokuunga mkono matoleo ya zamani ya Android yenye vulnerabilities kwa sababu za usalama.
Kutoka kwenye faili ya strings.xml, taarifa nyeti kama API keys, custom schemas, na maelezo mengine ya developer yanaweza kugunduliwa, ikibainisha haja ya kupitia kwa makini rasilimali hizi.
Tapjacking
Tapjacking ni shambulio ambapo programu hatarishi inaanzishwa na kujipanga juu ya application ya mwathirika. Mara inapoifunika app ya mwathirika, interface yake ya mtumiaji imeundwa kwa namna ya kumdanganya mtumiaji kuingiliana nayo, wakati kwa kweli inapitisha hiyo interaction kwa app ya mwathirika.
Kwa vitendo, inamfumba mtumiaji ili asijue kwamba kwa kweli anaendelea kufanya vitendo kwenye app ya mwathirika.
Find more information in:
Task Hijacking
An activity yenye launchMode imewekwa kuwa singleTask bila taskAffinity imefunikwa kuwa hatarishi kwa Task Hijacking. Hii ina maana kwamba, application inaweza kusanikishwa na ikiwa itaendeshwa kabla ya application halisi inaweza hijack task ya application halisi (hivyo mtumiaji atakuwa akiingiliana na malicious application akidhani anatumia ile halisi).
More info in:
Insecure data storage
Internal Storage
Katika Android, faili zilizohifadhiwa kwenye internal storage zimeundwa ili zipatikane pekee na app iliyozitengeneza. Ulinzi huu wa usalama unatekelezwa na mfumo wa uendeshaji wa Android na kwa ujumla unatosha kwa mahitaji ya usalama ya applications nyingi. Hata hivyo, developers wakati mwingine hutumia modes kama MODE_WORLD_READABLE na MODE_WORLD_WRITABLE kuruhusu files kusharikiwa kati ya applications tofauti. Mode hizi hazizizuizi upatikanaji wa faili hizi na applications nyingine, ikiwa ni pamoja na zile ambazo zinaweza kuwa malicious.
- Static Analysis:
- Hakikisha kwamba matumizi ya
MODE_WORLD_READABLEnaMODE_WORLD_WRITABLEyanachunguzwa kwa makini. Mode hizi zinaweza kuonyesha files kwa upatikanaji usiotarajiwa au usioidhinishwa.
- Dynamic Analysis:
- Thibitisha permissions zilizowekwa kwenye files zilizotengenezwa na app. Haswa, angalia kama faili yoyote imewekwa iwe readable au writable worldwide. Hii inaweza kuwa hatari kubwa ya usalama, kwani itaruhusu application yoyote iliyosanikishwa kwenye kifaa, bila kujali asili au nia yake, kusoma au kubadilisha faili hizi.
External Storage
Wakati ukishughulika na faili kwenye external storage, kama SD Cards, tahadhari fulani zinapaswa kuchukuliwa:
- Accessibility:
- Faili kwenye external storage ni globally readable and writable. Hii inamaanisha application au mtumiaji yeyote anaweza kufikia faili hizi.
- Security Concerns:
- Kwa kuzingatia urahisi wa ufikivu, inapendekezwa kutoiweka taarifa nyeti kwenye external storage.
- External storage inaweza kuondolewa au kufikiwa na application yoyote, na kuifanya isiwe salama.
- Handling Data from External Storage:
- Daima fanya input validation kwa data inayopatikana kutoka external storage. Hii ni muhimu kwa sababu data ni kutoka chanzo kisichoaminika.
- Kuhifadhi executables au class files kwenye external storage kwa ajili ya dynamic loading haipendekezwi kabisa.
- Ikiwa application yako inahitaji kupata executable files kutoka external storage, hakikisha faili hizi ni signed na imekaguliwa cryptographically kabla ya ku-load kwa dynamic. Hatua hii ni muhimu kwa kudumisha uadilifu wa usalama wa application yako.
External storage inaweza kufikiwa katika /storage/emulated/0 , /sdcard , /mnt/sdcard
Tip
Kuanzia Android 4.4 (API 17), SD card ina muundo wa directory ambao unakengeusha upatikanaji kutoka kwa app hadi directory maalum kwa app hiyo. Hii inazuia malicious application kupata read au write access kwa faili za app nyingine.
Sensitive data stored in clear-text
- Shared preferences: Android inaruhusu kila application kuhifadhi kwa urahisi xml files katika path
/data/data/<packagename>/shared_prefs/na wakati mwingine inawezekana kupata taarifa nyeti kwa clear-text katika folda hiyo. - Databases: Android inaruhusu kila application kuhifadhi kwa urahisi sqlite databases katika path
/data/data/<packagename>/databases/na wakati mwingine inawezekana kupata taarifa nyeti kwa clear-text katika folda hiyo.
Broken TLS
Accept All Certificates
Kwa sababu fulani wakati mwingine developers wanakubali certificates zote hata kama kwa mfano hostname haifai, kwa mistari ya code kama ifuatayo:
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Njia nzuri ya kujaribu hili ni kujaribu kunasa trafiki kwa kutumia proxy kama Burp bila kuidhinisha Burp CA ndani ya kifaa. Pia, unaweza kuunda kwa Burp cheti kwa hostname tofauti na kukitumia.
Broken Cryptography
Poor Key Management Processes
Baadhi ya developers huhifadhi data nyeti katika local storage na kui-encrypt kwa key iliyowekwa katika code/have predictable. Hii haipaswi kufanywa kwa sababu reversing inaweza kumruhusu attacker kutoa taarifa za siri.
Use of Insecure and/or Deprecated Algorithms
Developers hawapaswi kutumia deprecated algorithms kufanya authorization checks, store au send data. Baadhi ya algorithms hizi ni: RC4, MD4, MD5, SHA1… Ikiwa hashes zimetumika kuhifadhi passwords kwa mfano, inapaswa kutumika hashes zenye upinzani dhidi ya brute-force pamoja na salt.
Other checks
- Inashauriwa ku obfuscate the APK ili kupelekea kazi ya reverse engineer kuwa ngumu kwa attackers.
- Ikiwa app ni sensitive (kama bank apps), inapaswa kufanya own checks to see if the mobile is rooted na kuchukua hatua zinazofaa.
- Ikiwa app ni sensitive (kama bank apps), inapaswa kukagua kama emulator inatumiwa.
- Ikiwa app ni sensitive (kama bank apps), inapaswa check it’s own integrity before executing ili kuona kama imebadilishwa.
- Tumia APKiD ili kuangalia compiler/packer/obfuscator iliyotumika kujenga APK
React Native Application
Read the following page to learn how to easily access javascript code of React applications:
Xamarin Applications
Read the following page to learn how to easily access C# code of a xamarin applications:
Superpacked Applications
According to this blog post superpacked ni Meta algorithm inayoscompress content ya application ndani ya single file. Blog inazungumzia uwezekano wa kuunda app inayoweza decompress aina hizi za apps… na njia ya haraka ambayo inahusisha execute the application and gather the decompressed files from the filesystem.
Automated Static Code Analysis
Tool mariana-trench ina uwezo wa kupata vulnerabilities kwa scanning code ya application. Tool hii ina series ya known sources (inayoonyesha kwa tool places ambapo input iko controlled by the user), sinks (inayoonyesha kwa tool dangerous places ambapo malicious user input inaweza kusababisha uharibifu) na rules. Rules hizi zinaonyesha combination ya sources-sinks inayotambulisha vulnerability.
Kwa maarifa haya, mariana-trench itapitia code na kupata vulnerabilities zinazowezekana ndani yake.
Secrets leaked
Application inaweza kuwa na secrets (API keys, passwords, hidden urls, subdomains…) ndani yake ambazo unaweza kuwagundua. Unaweza kutumia tool kama https://github.com/dwisiswant0/apkleaks
Bypass Biometric Authentication
Bypass Biometric Authentication (Android)
Other interesting functions
- Code execution:
Runtime.exec(), ProcessBuilder(), native code:system() - Send SMSs:
sendTextMessage, sendMultipartTestMessage - Native functions declared as
native:public native, System.loadLibrary, System.load - Read this to learn how to reverse native functions
- In-memory native code execution via JNI (downloaded shellcode → mmap/mprotect → call):
In Memory Jni Shellcode Execution
Other tricks
Dynamic Analysis
First of all, you need an environment where you can install the application and all the environment (Burp CA cert, Drozer and Frida mainly). Therefore, a rooted device (emulated or not) is extremely recommended.
Online Dynamic analysis
Unaweza kuunda free account katika: https://appetize.io/. Platform hii inakuwezesha upload na execute APKs, kwa hivyo ni muhimu kuona jinsi apk inavyo behavior.
Unaweza hata see the logs of your application kwenye web na ku-connect kupitia adb.
.png)
Thanks to the ADB connection unaweza kutumia Drozer na Frida ndani ya emulators.
Local Dynamic Analysis
Using an emulator
- Android Studio (Unaweza kuunda x86 na arm devices, na kwa mujibu wa this latest x86 versions support ARM libraries bila ya kuhitaji slow arm emulator).
- Jifunze jinsi ya kui-setup kwenye ukurasa huu:
- Genymotion (Free version: Personal Edition, unahitaji kuunda account. It’s recommend to download the version WITH VirtualBox ili kuepuka potential errors.)
- Nox (Free, lakini haitoi support kwa Frida au Drozer).
Tip
Unapotengeneza emulator mpya kwenye platform yoyote kumbuka kwamba skrini kubwa inasababisha emulator kukimbia polepole. Kwa hivyo chagua skrini ndogo iwezekanavyo.
Ili install google services (kama AppStore) katika Genymotion unahitaji kubofya kitufe kilichoangaziwa kwa rangi nyekundu kwenye picha ifuatayo:
.png)
Pia, kumbuka kwamba katika configuration of the Android VM in Genymotion unaweza kuchagua Bridge Network mode (hii itakuwa muhimu ikiwa utakuwa unakuja ku-connect na Android VM kutoka kwa VM tofauti yenye tools).
Use a physical device
Unahitaji ku-activate debugging options na itakuwa vizuri ikiwa unaweza kui root:
- Settings.
- (FromAndroid 8.0) Select System.
- Select About phone.
- Press Build number 7 times.
- Go back and you will find the Developer options.
Mara tu unapoweka application, jambo la kwanza unapaswa kufanya ni kuitumia na kuchunguza inafanya nini, inafanya kazi vipi na kuzoea nayo.
Ninapendekeza perform this initial dynamic analysis using MobSF dynamic analysis + pidcat, ili tuweze learn how the application works huku MobSF captures data nyingi za interesting ambazo unaweza kupitia baadaye.
Magisk/Zygisk quick notes (recommended on Pixel devices)
- Patch boot.img with the Magisk app and flash via fastboot to get systemless root
- Enable Zygisk + DenyList for root hiding; consider LSPosed/Shamiko when stronger hiding is required
- Keep original boot.img to recover from OTA updates; re-patch after each OTA
- For screen mirroring, use scrcpy on the host
Unintended Data Leakage
Logging
Developers wanapaswa kuwa makini kwenye kuonyesha debugging information kwa umma, kwani inaweza kusababisha data nyeti ku-leak. Tools pidcat na adb logcat zinapendekezwa kwa monitoring ya application logs ili kubaini na kulinda taarifa nyeti. Pidcat inapendekezwa kwa urahisi wake wa matumizi na readability.
Warning
Kumbuka kwamba tangu later newer than Android 4.0, applications are only able to access their own logs. Kwa hivyo applications haziwezi kupata logs za apps nyingine.
Hata hivyo, bado inashauriwa not log sensitive information.
Copy/Paste Buffer Caching
Android’s clipboard-based framework inaruhusu functionality ya copy-paste katika apps, ila inaleta hatari kwani other applications zinaweza access clipboard, na hivyo ku-expose taarifa nyeti. Ni muhimu disable copy/paste kwa sehemu nyeti za application, kama maelezo ya kadi ya mkopo, ili kuzuia data ku-leak.
Crash Logs
Ikiwa application inakurupuka (crash) na inahifadhi logs, logs hizi zinaweza kumsaidia attacker, hasa wakati application haiwezi kufanyiwa reverse-engineer. Ili kupunguza hatari hii, epuka logging wakati wa crashes, na ikiwa logs lazima zitumwe mtandaoni, hakikisha zinatumwa kwa chanel ya SSL kwa usalama.
Kama pentester, jaribu kuangalia logs hizi.
Analytics Data Sent To 3rd Parties
Apps mara nyingi hujumuisha services kama Google Adsense, ambayo inaweza kwa bahati mbaya ku-leak data nyeti kutokana na implementation isiyo sahihi na developers. Ili kutambua potential data leaks, ni vyema intercept the application’s traffic na kuangalia kama kuna taarifa nyeti zinatumwa kwa third-party services.
SQLite DBs
Most ya applications zitakuwa zikitumia internal SQLite databases kuhifadhi taarifa. Wakati wa pentest tazama databases zilizoundwa, majina ya tables na columns na data zote zilizohifadhiwa kwani unaweza kupata sensitive information (ambayo itakuwa vulnerability).
Databases zinapaswa kuwa kwenye /data/data/the.package.name/databases kama /data/data/com.mwr.example.sieve/databases
Ikiwa database inahifadhi taarifa za siri na ime encrypted but unaweza find password ndani ya application bado ni vulnerability.
Orodhesha tables kwa kutumia .tables na orodhesha columns za table kwa kutumia .schema <table_name>
Drozer (Exploit Activities, Content Providers and Services)
From Drozer Docs: Drozer inakuwezesha assume the role of an Android app na kuingiliana na apps nyingine. Inaweza kufanya anything that an installed application can do, kama kutumia Android’s Inter-Process Communication (IPC) mechanism na kuingiliana na operating system ya chini. .
Drozer ni tool muhimu kwa exploit exported activities, exported services and Content Providers kama utakavyojifunza katika sehemu zifuatazo.
Exploiting exported Activities
Read this if you want to refresh what is an Android Activity.
Pia kumbuka kwamba code ya activity inaanza katika onCreate method.
Authorisation bypass
Wakati Activity ime-exported unaweza kuitisha screen yake kutoka kwa external app. Kwa hivyo, ikiwa activity yenye sensitive information ime exported unaweza bypass mechanisms za authentication ili kuipata.
Learn how to exploit exported activities with Drozer.
Unaweza pia kuanza exported activity kutoka adb:
- PackageName is com.example.demo
- Exported ActivityName is com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
TAARIFA: MobSF itatambua kama hatari matumizi ya singleTask/singleInstance kama android:launchMode katika activity, lakini kutokana na this, inaonekana kuwa hatari tu kwenye matoleo ya zamani (API versions < 21).
Tip
Kumbuka kwamba an authorisation bypass sio kila wakati vulnerability; itategemea jinsi bypass inavyofanya kazi na ni taarifa gani zinazoonekana.
Sensitive information leakage
Activities can also return results. Ikiwa utaweza kupata activity iliyotolewa na isiyolindwa inayoitisha method ya setResult na returning sensitive information, basi kuna sensitive information leakage.
Tapjacking
Kama tapjacking haitazuia, unaweza kutumia activity iliyotolewa kumfanya mtumiaji afanye vitendo visivyotarajiwa. For more info about what is Tapjacking follow the link.
Exploiting Content Providers - Accessing and manipulating sensitive information
Read this if you want to refresh what is a Content Provider.
Content providers kwa kawaida hutumika kushiriki data. Ikiwa app ina content providers zinazoruhusiwa unaweza kuwa na uwezo wa kutoa data nyeti kutoka kwazo. Pia inafaa kujaribu uwezekano wa SQL injections na Path Traversals kwani zinaweza kuwa vulnerable.
Learn how to exploit Content Providers with Drozer.
Exploiting Services
Read this if you want to refresh what is a Service.
Kumbuka kwamba vitendo vya Service huanza katika method onStartCommand.
Service kwa msingi ni kitu kinachoweza kupokea data, kuichakata na kurejesha (au la) majibu. Kwa hivyo, ikiwa app inatoa services, unapaswa check the code ili kuelewa inafanya nini na kuitest dynamically kwa ajili ya kupata taarifa za siri, bypassing authentication measures…
Learn how to exploit Services with Drozer.
Exploiting Broadcast Receivers
Read this if you want to refresh what is a Broadcast Receiver.
Kumbuka kwamba vitendo vya Broadcast Receiver huanza katika method onReceive.
Broadcast receiver itasubiri aina fulani ya ujumbe. Kulingana na jinsi receiver inavyoshughulikia ujumbe, inaweza kuwa vulnerable.
Learn how to exploit Broadcast Receivers with Drozer.
Exploiting Schemes / Deep links
Unaweza kutafuta deep links kwa mikono, ukitumia zana kama MobSF au scripts kama this one.
Unaweza open declared scheme ukitumia adb au a browser:
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
Kumbuka kwamba unaweza kuacha jina la kifurushi na simu ya mkononi itaita moja kwa moja app ambayo inapaswa kufungua kiungo hicho.
<!-- 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>
Msimbo unaotekelezwa
Ili kupata msimbo utakaotekelezwa ndani ya App, nenda kwenye activity inayoitwa na deeplink na tafuta function onNewIntent.
 (1) (1) (1).png)
Sensitive info
Kila mara unapokuta deep link hakikisha ihaina kupokea data nyeti (kama nywila) kupitia vigezo vya URL, kwa sababu programu nyingine yoyote inaweza kuiga deep link na kuiba data hiyo!
Parameters in path
Unapaswa pia kuangalia kama deep link yoyote inatumia parameter ndani ya path ya URL kama: https://api.example.com/v1/users/{username} , katika hilo unaweza kulazimisha path traversal kwa kufikia kitu kama: example://app/users?username=../../unwanted-endpoint%3fparam=value .
Kumbuka kwamba ukipata endpoints sahihi ndani ya application unaweza kusababisha Open Redirect (kama sehemu ya path inatumika kama domain name), account takeover (kama unaweza kubadilisha user details bila CSRF token na vuln endpoint ilitumia method sahihi) na ranjaka nyinginezo. Tazama zaidi info about this here.
More examples
Ripoti ya bug bounty ya kuvutia: interesting bug bounty report kuhusu links (/.well-known/assetlinks.json).
Uhakiki wa Transport Layer na Kushindwa kwa Uthibitishaji
- Certificates are not always inspected properly kwenye Android applications. Ni kawaida kwa applications hizi kupuuza onyo na kukubali self-signed certificates au, katika baadhi ya matukio, kurudi kutumia HTTP connections.
- Negotiations during the SSL/TLS handshake are sometimes weak, zikitumia insecure cipher suites. Udhaifu huu unafanya connection iwe rahisi kwa man-in-the-middle (MITM) attacks, ukiruhusu attackers ku-decrypt data.
- Leakage of private information ni hatari wakati applications zinathibitisha kwa kutumia secure channels halafu zikaanza kuwasiliana kwa non-secure channels kwa miamala mingine. Njia hii haitulinde sensitive data, kama session cookies au user details, dhidi ya interception na wahalifu.
Certificate Verification
Tutazingatia certificate verification. Uadilifu wa certificate ya server lazima uthibitishwe ili kuongeza usalama. Hii ni muhimu kwa sababu misanidiwa isiyo salama ya TLS na uhamishaji wa sensitive data kupitia channels zisizo-encoded unaweza kusababisha hatari kubwa. Kwa hatua za kina za kuthibitisha server certificates na kushughulikia udhaifu, this resource inatoa mwongozo kamili.
SSL Pinning
SSL Pinning ni hatua ya usalama ambapo application inathibitisha certificate ya server dhidi ya nakala inayojulikana iliyohifadhiwa ndani ya application yenyewe. Njia hii ni muhimu kuzuia MITM attacks. Kustawisha SSL Pinning kunapendekezwa sana kwa applications zinazosimamia taarifa nyeti.
Traffic Inspection
Ili kuchunguza HTTP traffic, ni muhimu kufunga certificate ya proxy tool (mfano, Burp). Bila kufunga certificate hii, encrypted traffic huenda isionekane kupitia proxy. Kwa mwongozo wa jinsi ya kufunga custom CA certificate, click here.
Applications zinazolenga API Level 24 and above zinahitaji mabadiliko kwenye Network Security Config ili kukubali proxy’s CA certificate. Hatua hii ni muhimu kwa kuchunguza encrypted traffic. Kwa maelekezo kuhusu kubadilisha Network Security Config, refer to this tutorial.
Kama Flutter inatumika unahitaji kufuata maelekezo kwenye this page. Hii ni kwa sababu, kuongeza tu certificate kwenye store haitafanya kazi kwani Flutter ina orodha yake ya CA sahihi.
Static detection of SSL/TLS pinning
Kabla ya kujaribu runtime bypasses, chora haraka maeneo ambapo pinning inatekelezwa ndani ya APK. Ugunduzi wa static unakusaidia kupanga hooks/patches na kuzingatia code paths sahihi.
Tool: SSLPinDetect
- Open-source static-analysis utility ambayo ina-decompile APK hadi Smali (kupitia apktool) na inascan kwa curated regex patterns za utekelezaji wa SSL/TLS pinning.
- Inaripoti exact file path, line number, na code snippet kwa kila match.
- Inashughulikia frameworks za kawaida na custom code paths: OkHttp CertificatePinner, custom javax.net.ssl.X509TrustManager.checkServerTrusted, SSLContext.init with custom TrustManagers/KeyManagers, na Network Security Config XML pins.
Install
- Prereqs: Python >= 3.8, Java on PATH, apktool
git clone https://github.com/aancw/SSLPinDetect
cd SSLPinDetect
pip install -r requirements.txt
Matumizi
# Basic
python sslpindetect.py -f app.apk -a apktool.jar
# Verbose (timings + per-match path:line + snippet)
python sslpindetect.py -a apktool_2.11.0.jar -f sample/app-release.apk -v
Mfano wa sheria za pattern (JSON) Tumia au panua signatures kutambua mitindo ya pinning ya proprietary/custom. Unaweza kupakia JSON yako na scan kwa kiwango kikubwa.
{
"OkHttp Certificate Pinning": [
"Lcom/squareup/okhttp/CertificatePinner;",
"Lokhttp3/CertificatePinner;",
"setCertificatePinner"
],
"TrustManager Override": [
"Ljavax/net/ssl/X509TrustManager;",
"checkServerTrusted"
]
}
Notes and tips
- Uchunguzi wa haraka kwenye apps kubwa kwa kutumia multi-threading na memory-mapped I/O; pre-compiled regex hupunguza mzigo/matokeo chanya za uwongo.
- Pattern collection: https://github.com/aancw/smali-sslpin-patterns
- Lengo la kawaida la ugunduzi la kuchunguza kisha:
- OkHttp: matumizi ya CertificatePinner, setCertificatePinner, marejeo ya package okhttp3/okhttp
- Custom TrustManagers: javax.net.ssl.X509TrustManager, overrides za checkServerTrusted
- Custom SSL contexts: SSLContext.getInstance + SSLContext.init na custom managers
- Declarative pins katika res/xml network security config na marejeo ya manifest
- Tumia maeneo yaliyoambatana kupanga Frida hooks, static patches, au mapitio ya config kabla ya majaribio ya dynamic.
Kuepuka SSL Pinning
Wakati SSL Pinning imewezeshwa, kuepuka kwake kunakuwa muhimu ili kuchunguza trafiki ya HTTPS. Mbinu mbalimbali zinapatikana kwa madhumuni haya:
- Kwa njia ya moja kwa moja badilisha apk ili kuepuka SSLPinning kwa kutumia apk-mitm. Faida kuu ya chaguo hili ni kwamba hautahitaji root ili kuepuka SSL Pinning, lakini utahitaji kufuta application na kuiweka upya, na hii haitafanya kazi kila wakati.
- Unaweza kutumia Frida (itajadiliwa hapa chini) kuepuka 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/
- Unaweza pia kujaribu kuepuka SSL Pinning moja kwa moja kwa kutumia objection:
objection --gadget com.package.app explore --startup-command "android sslpinning disable" - Unaweza pia kujaribu kuepuka SSL Pinning moja kwa moja kwa kutumia MobSF dynamic analysis (imeelezewa hapa chini)
- Ikiwa bado unadhani kuna trafiki ambayo hukamata unaweza kujaribu kupeleka trafiki kwa burp kwa kutumia iptables. Soma blogu hii: https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62
Kutafuta Udhaifu wa Wavuti wa Kawaida
Ni muhimu pia kutafuta udhaifu wa kawaida wa wavuti ndani ya programu. Taarifa za kina kuhusu kutambua na kupunguza udhaifu hizi ziko nje ya muhtasari huu lakini zimeelezewa kwa kina mahali pengine.
Frida
Frida ni toolkit ya dynamic instrumentation kwa watengenezaji, reverse-engineers, na watafiti wa usalama.
Unaweza kufikia application inayoendesha na kupiga hook methods wakati wa utekelezaji kubadilisha tabia, kubadilisha thamani, kutoa thamani, kuendesha code tofauti…
Ikiwa unataka pentest Android applications unahitaji kujua jinsi ya kutumia Frida.
- Jifunze jinsi ya kutumia Frida: Frida tutorial
- Baadhi ya “GUI” kwa vitendo na Frida: https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
- Ojection ni nzuri kuendesha matumizi ya Frida kwa automatiki: https://github.com/sensepost/objection , https://github.com/dpnishant/appmon
- Unaweza kupata baadhi ya Awesome Frida scripts hapa: https://codeshare.frida.re/
- Jaribu kuepuka anti-debugging / anti-frida mechanisms kwa kupakia Frida kama ilivyoonyeshwa katika https://erfur.github.io/blog/dev/code-injection-without-ptrace (chombo linjector)
Anti-instrumentation & SSL pinning bypass workflow
Android Anti Instrumentation And Ssl Pinning Bypass
Dump kumbukumbu - Fridump
Angalia kama application inahifadhi taarifa nyeti ndani ya memory ambazo haipaswi kuhifadhi kama nywila au mnemonics.
Kwa kutumia Fridump3 unaweza dump kumbukumbu ya app kwa:
# With PID
python3 fridump3.py -u <PID>
# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"
Hii itadump memory kwenye folda ./dump, na ndani yake unaweza grep kwa 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]+$"
Taarifa nyeti katika Keystore
Katika Android Keystore ni mahali pazuri zaidi pa kuhifadhi data nyeti, lakini, kwa ruhusa za kutosha bado inawezekana kuifikia. Kwa kuwa apps huenda kuhifadhi hapa data nyeti kwa maandishi wazi, pentests zinapaswa kuangalia hili kama root user au mtu mwenye ufikiaji wa kimwili wa kifaa anaweza kuiba data hii.
Hata kama app ilihifadhi data kwenye keystore, data hiyo inapaswa kuwa imekódwa (encrypted).
Ili kufikia data ndani ya keystore unaweza kutumia Frida script hii: 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
Fingerprint/Biometrics Bypass
Kwa kutumia script ifuatayo ya Frida inaweza kuwa inawezekana bypass fingerprint authentication ambayo Android applications zinaweza kufanya ili kulinda maeneo fulani nyeti:
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
Picha za Mandharinyuma
Unapoweka programu kwa mandharinyuma, Android inahifadhi snapshot ya programu ili inaporejeshwa mbele (foreground) inaanza kupakia picha kabla ya programu, hivyo kuonekana kama ilipakia haraka.
Hata hivyo, ikiwa snapshot hii inabeba taarifa nyeti, mtu mwenye ufikiaji wa snapshot anaweza kuiba taarifa hizo (kumbuka kwamba unahitaji root ili kuifikia).
Snapshots mara nyingi huhifadhiwa katika: /data/system_ce/0/snapshots
Android inatoa njia ya kuzuia kunaswa kwa screenshot kwa kuweka parameter ya layout FLAG_SECURE. Kwa kutumia flag hii, yaliyomo kwenye dirisha yanachukuliwa kuwa salama, na kuzuia yaonekane katika screenshots au kutazamwa kwenye maonyesho yasiyo salama.
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Android Application Analyzer
Zana hii inaweza kukusaidia kusimamia zana tofauti wakati wa dynamic analysis: https://github.com/NotSoSecure/android_application_analyzer
Intent Injection
Waendelezaji mara nyingi huunda proxy components kama activities, services, na broadcast receivers zinazoshughulikia Intent hizi na kuzipitisha kwa methods kama startActivity(...) au sendBroadcast(...), jambo ambalo linaweza kuwa hatari.
Hatari iko katika kuwawezesha wadukuzi kusababisha non-exported app components au kupata content providers zenye taarifa nyeti kwa kupangusa Intent hizi kwa njia isiyo sahihi. Mfano muhimu ni component ya WebView inayobadilisha URL kuwa vitu vya Intent kupitia Intent.parseUri(...) kisha kuvitumia, jambo linaloweza kusababisha malicious Intent injections.
Muhtasari Muhimu
- Intent Injection ni sawa na web’s Open Redirect issue.
- Exploits zinahusisha kupitisha vitu vya
Intentkama extras, ambavyo vinaweza kuelekezwa kuendesha operesheni zisizo salama. - Inaweza kufunua non-exported components na content providers kwa wadukuzi.
- Ubadilishaji wa URL kuwa
IntentkatikaWebViewunaweza kuwezesha vitendo visivyokusudiwa.
Android Client Side Injections na mengine
Pengine unajua aina hii ya udhaifu kutoka kwenye wavuti. Lazima uwe maalum kuwa mwangalifu na udhaifu huu katika application ya Android:
- SQL Injection: Unaposhughulikia dynamic queries au Content-Providers, hakikisha unatumia parameterized queries.
- JavaScript Injection (XSS): Thibitisha kuwa msaada wa JavaScript na Plugin umezimwa kwa WebViews zote (imezimwa kwa chaguo-msingi). More info here.
- Local File Inclusion: WebViews zinapaswa kuwa na ufikaji wa file system umezimwa (umewezeshwa kwa chaguo-msingi) -
(webview.getSettings().setAllowFileAccess(false);). More info here. - Eternal cookies: Katika kesi kadhaa pale application ya Android inapomaliza session, cookie haiondolewi au inaweza hata kuhifadhiwa kwenye diski
- Secure Flag in cookies
Uchanganuzi wa Otomatiki
MobSF
Uchanganuzi wa static
.png)
Tathmini ya udhaifu ya application ikitumia frontend nzuri ya web. Unaweza pia kufanya dynamic analysis (lakini unahitaji kuandaa mazingira).
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
Notice that MobSF can analyse Android(apk), IOS(ipa) and Windows(apx) applications (Windows applications must be analyzed from a MobSF installed in a Windows host).
Pia, ikiwa utaunda faili ya ZIP yenye source code ya app ya Android au IOS (nenda kwenye root folder ya application, chagua kila kitu na unda ZIPfile), itakuwa inayo uwezo wa kuichambua pia.
MobSF pia inakuwezesha kufanya diff/Compare ya analysis na kuunganisha VirusTotal (utahitajika kuweka API key yako katika MobSF/settings.py na kuiwezesha: VT_ENABLED = TRUE VT_API_KEY = <Your API key> VT_UPLOAD = TRUE). Pia unaweza kuweka VT_UPLOAD kuwa False, basi hash itakuwa upload badala ya faili.
Assisted Dynamic analysis with MobSF
MobSF inaweza pia kuwa msaada sana kwa ajili ya dynamic analysis kwenye Android, lakini katika kesi hiyo utahitaji kufunga MobSF na genymotion kwenye host yako (VM au Docker haitafanyi kazi). Note: You need to start first a VM in genymotion and then MobSF.
The MobSF dynamic analyser inaweza:
- Dump application data (URLs, logs, clipboard, screenshots ulizofanya, screenshots zilizofanywa na “Exported Activity Tester”, emails, SQLite databases, XML files, na faili nyingine zilizoundwa). Hili lote hufanywa kwa njia ya moja kwa moja isipokuwa screenshots; lazima ubofye wakati unataka screenshot au lazima ubofye “Exported Activity Tester” ili kupata screenshots za exported activities zote.
- Capture HTTPS traffic
- Use Frida to obtain runtime information
Kutoka kwenye versions za android > 5, itaanzisha Frida moja kwa moja na itaweka global proxy settings ili capture traffic. Itak captura trafiki tu kutoka kwa application inayojaribiwa.
Frida
Kwa default, pia itatumia baadhi ya Frida Scripts ili bypass SSL pinning, root detection na debugger detection na pia ili monitor interesting APIs.
MobSF inaweza pia invoke exported activities, grab screenshots zao na save kwa ajili ya report.
Ili kuanza testing ya dynamic bofyia kitufe cha kijani: “Start Instrumentation”. Bofya “Frida Live Logs” kuona logs zinazozalishwa na Frida scripts na “Live API Monitor” kuona invocation zote za hooked methods, arguments zilizopitishwa na returned values (hii itaonekana baada ya kubonyeza “Start Instrumentation”).
MobSF pia inakuwezesha kupakia Frida scripts zako mwenyewe (kutoa results za Friday scripts zako kwa MobSF tumia function send()). Ina pia several pre-written scripts unaweza kupakia (unaweza kuongeza zaidi katika MobSF/DynamicAnalyzer/tools/frida_scripts/others/), chagua tu, bofyia “Load” na bofyia “Start Instrumentation” (utaoona logs za script hizo ndani ya “Frida Live Logs”).
.png)
Zaidi ya hayo, una baadhi ya Auxiliary Frida functionalities:
- Enumerate Loaded Classes: Itapiga print ya classes zote zilizo loaded
- Capture Strings: Itachapisha strings zote zinazokamatwa wakati wa kutumia application (super noisy)
- Capture String Comparisons: Inaweza kuwa ya msaada sana. Itaonyesha strings 2 zinazolinganishwa na kama result ilikuwa True au False.
- Enumerate Class Methods: Weka class name (kama “java.io.File”) na itachapisha methods zote za class hiyo.
- Search Class Pattern: Tafuta classes kwa pattern
- Trace Class Methods: Trace whole class (iona inputs na outputs za methods zote za class). Kumbuka kwamba kwa default MobSF inafanya trace ya baadhi ya Android Api methods zinazovutia.
Mara utakapochagua module ya ziada unayotaka kutumia lazima ubofye “Start Intrumentation” na utaona outputs zote katika “Frida Live Logs”.
Shell
Mobsf pia inakuleta shell yenye baadhi ya amri za adb, MobSF commands, na shell commands za kawaida chini ya ukurasa wa dynamic analysis. Baadhi ya amri zenye kuvutia:
help
shell ls
activities
exported_activities
services
receivers
Vyombo vya HTTP
Wakati trafiki ya http inakamatwa unaweza kuona muonekano mbaya wa trafiki iliyokamatwa kwenye kitufe cha chini “HTTP(S) Traffic” au muonekano mzuri kwenye kitufe cha kijani “Start HTTPTools”. Kwa chaguo la pili, unaweza kutuma maombi yaliyokamatwa kwa proxies kama Burp au Owasp ZAP.
Ili kufanya hivyo, power on Burp –> turn off Intercept –> in MobSB HTTPTools select the request –> press “Send to Fuzzer” –> select the proxy address (http://127.0.0.1:8080\).
Mara utakapo 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 hutaweza kuirekebisha kupitia GUI. Unaweza kurekebisha mipangilio ya proxy kwa kufanya:
adb shell settings put global http_proxy :0
Uchambuzi wa Dynamic wa Msaada na Inspeckage
Unaweza kupata zana kutoka Inspeckage.
Zana hii itatumia baadhi ya Hooks kukufahamisha kinachotokea kwenye application wakati unafanya uchambuzi wa dynamic.
Yaazhini
Hii ni zana nzuri ya kufanya uchambuzi wa static kwa GUI
.png)
Qark
Zana hii imeundwa kutafuta aina mbalimbali za security related Android application vulnerabilities, iwe katika source code au packaged APKs. Zana pia ina uwezo wa kuunda a “Proof-of-Concept” deployable APK na ADB commands, ili kutekeleza baadhi ya udhaifu zilizopatikana (Exposed activities, intents, tapjacking…). Kama ilivyo kwa Drozer, hakuna haja ya ku-root 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 marejeo rahisi
- Inadecompile kwa otomatiki faili za APK hadi muundo wa Java na Smali
- Inachambua AndroidManifest.xml kwa udhaifu wa kawaida na tabia
- Uchambuzi wa static wa msimbo wa chanzo kwa udhaifu wa kawaida na tabia
- Taarifa za kifaa
- na mengi zaidi
reverse-apk relative/path/to/APP.apk
SUPER Android Analyzer
SUPER ni programu ya command-line inayoweza kutumiwa kwenye Windows, MacOS X na Linux, ambayo inachambua faili za .apk ikitafuta vulnerabilities. Hufanya hivyo kwa kufinyanga APKs na kutumia mfululizo wa kanuni kugundua vulnerabilities hizo.
Kanuni zote ziko katika faili ya rules.json, na kila kampuni au tester anaweza kuunda kanuni zake za kuchambua wanazohitaji.
Pakua binaries za hivi karibuni kutoka kwenye download page
super-analyzer {apk_file}
StaCoAn
.png)
StaCoAn ni zana crossplatform inayowasaidia waendelezaji, bugbounty hunters na ethical hackers wanaofanya static code analysis kwenye programu za mkononi.
Dhana ni kwamba unavuta na kuacha faili ya programu yako ya mkononi (faili ya .apk au .ipa) kwenye programu ya StaCoAn na itatengeneza ripoti ya kuona na inayobebeka kwako. Unaweza kubadilisha mipangilio na wordlists ili kupata uzoefu uliobinafsishwa.
Pakua latest release:
./stacoan
AndroBugs
AndroBugs Framework ni mfumo wa uchambuzi wa udhaifu wa Android unaosaidia waendelezaji au hackers kubaini udhaifu za usalama katika Android applications.
Windows releases
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
Androwarn
Androwarn ni zana ambayo lengo lake kuu ni kugundua na kuwaonya mtumiaji kuhusu tabia zinazoweza kuwa hatari zinazotengenezwa na programu ya Android.
Uchunguzi hufanywa kwa kutumia static analysis ya Dalvik bytecode ya programu, iliyoonyeshwa kama Smali, kwa kutumia maktaba ya androguard.
Zana hii inatafuta tabia za kawaida za programu “mbaya” kama vile: Telephony identifiers exfiltration, Audio/video flow interception, PIM data modification, Arbitrary code execution…
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
MARA Framework
.png)
MARA is a Mobile Application Reverse engineering and Analysis Framework. Ni zana inayokusanya zana zinazotumika kawaida kwa mobile application reverse engineering na analysis ili kusaidia katika kujaribu mobile applications dhidi ya vitisho vya usalama vya OWASP mobile. Lengo lake ni kufanya kazi hiyo iwe rahisi na rafiki kwa watengenezaji wa mobile applications na wataalamu wa usalama.
Ina uwezo wa:
- Kutoa Java na Smali code kwa kutumia zana mbalimbali
- Kuchambua APKs kwa kutumia: smalisca, ClassyShark, androbugs, androwarn, APKiD
- Kutoa taarifa za kibinafsi kutoka ndani ya APK kwa kutumia regexps.
- Kuchambua Manifest.
- Kuchambua domains zilizopatikana kwa kutumia: pyssltest, testssl na whatweb
- Deobfuscate APK kupitia apk-deguard.com
Koodous
Inayofaa kugundua malware: https://koodous.com/
Obfuscating/Deobfuscating code
Kumbuka kwamba kulingana na huduma na usanidi unayotumia kuobfuscate code, Secrets zinaweza kuwa zimeobfuscate au la.
ProGuard
From Wikipedia: ProGuard ni zana ya open source ya command-line inayopunguza, kuboresha na kuobfuscate Java code. Ina uwezo wa kuboresha bytecode pamoja na kugundua na kuondoa maelekezo ambayo hayatumiki. ProGuard ni free software na imesambazwa chini ya GNU General Public License, version 2.
ProGuard inasambazwa kama sehemu ya Android SDK na inafanya kazi wakati wa kujenga application katika release mode.
DexGuard
Pata mwongozo wa hatua kwa hatua wa deobfuscate apk katika https://blog.lexfo.fr/dexguard.html
(From that guide) Mara ya mwisho tuliyokagua, mode ya uendeshaji ya Dexguard ilikuwa:
- load a resource as an InputStream;
- feed the result to a class inheriting from FilterInputStream to decrypt it;
- do some useless obfuscation to waste a few minutes of time from a reverser;
- feed the decrypted result to a ZipInputStream to get a DEX file;
- finally load the resulting DEX as a Resource using the
loadDexmethod.
DeGuard
DeGuard reverses the process of obfuscation performed by Android obfuscation tools. This enables numerous security analyses, including code inspection and predicting libraries.
Unaweza kupakia obfuscated APK kwenye platform yao.
[Deobfuscate android App]https://github.com/In3tinct/deobfuscate-android-app
Hii ni LLM tool ya kutafuta potential security vulnerabilities katika android apps na deobfuscate android app code. Inatumia Google’s Gemini public API.
Simplify
Ni generic android deobfuscator. Simplify virtually executes an app kuelewa tabia yake kisha inajaribu optimize the code ili itende sawa lakini iwe rahisi kwa binadamu kuelewa. Kila aina ya optimization ni rahisi na generic, hivyo haijalishi ni type gani maalum ya obfuscation imetumika.
APKiD
APKiD inakupa taarifa kuhusu jinsi APK ilivyotengenezwa. Inatambua compilers, packers, obfuscators, na mambo mengine ya ajabu. Ni PEiD kwa Android.
Manual
Read this tutorial to learn some tricks on how to reverse custom obfuscation
Labs
Androl4b
AndroL4b ni Android security virtual machine inayotegemea ubuntu-mate ambayo inajumuisha mkusanyiko wa latest framework, tutorials na labs kutoka kwa wapenzi wa usalama na watafiti kwa reverse engineering na malware analysis.
References
- Play Integrity API: How It Works & How to Bypass It
- https://owasp.org/www-project-mobile-app-security/
- https://appsecwiki.com/#/ Ni orodha nzuri ya rasilimali
- https://maddiestone.github.io/AndroidAppRE/ Kozi ya haraka 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
- SSLPinDetect: Advanced SSL Pinning Detection for Android Security Analysis
- SSLPinDetect GitHub
- smali-sslpin-patterns
- Build a Repeatable Android Bug Bounty Lab: Emulator vs Magisk, Burp, Frida, and Medusa
- CoRPhone — Android in-memory JNI execution and packaging pipeline
- justapk — multi-source APK downloader with Cloudflare bypass
- Jezail rooted Android pentesting toolkit (REST API + Flutter UI)
- BeatBanker: A dual‑mode Android Trojan
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.


