Lista kontrolna APK dla Androida

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Learn Android fundamentals

Static Analysis

  • Sprawdź użycie obfuscation, sprawdź wykrywanie root/emu i mechanizmy anti-tampering. Read this for more info.
  • Aplikacje wrażliwe (np. aplikacje bankowe) powinny sprawdzać, czy urządzenie jest rooted i działać odpowiednio.
  • Wyszukaj interesting strings (hasła, URLs, API, szyfrowanie, backdoors, tokeny, Bluetooth UUID…).
  • Szczególna uwaga na firebase APIs.
  • Read the manifest:
  • Sprawdź, czy aplikacja jest w trybie debug i spróbuj ją “exploit”.
  • Sprawdź, czy APK pozwala na backups
  • Exported Activities
  • Unity Runtime: exported UnityPlayerActivity/UnityPlayerGameActivity with a unity CLI extras bridge. Przetestuj -xrsdk-pre-init-library <abs-path> for pre-init dlopen() RCE. See Intent Injection → Unity Runtime.
  • Content Providers
  • Exposed services
  • Broadcast Receivers
  • URL Schemes
  • Is the application saving data insecurely internally or externally?
  • Is there any password hard coded or saved in disk? Is the app using insecurely crypto algorithms?
  • Czy wszystkie biblioteki są skompilowane z użyciem flagi PIE?
  • Nie zapomnij, że istnieje wiele static Android Analyzers które mogą bardzo pomóc w tej fazie.
  • android:exported mandatory on Android 12+ – źle skonfigurowane eksportowane komponenty mogą prowadzić do zewnętrznego wywołania intent.
  • Przejrzyj Network Security Config (networkSecurityConfig XML) pod kątem cleartextTrafficPermitted="true" lub nadpisywania dla konkretnych domen.
  • Szukaj wywołań Play Integrity / SafetyNet / DeviceCheck – ustal, czy custom attestation można zahaczyć lub obejść.
  • Sprawdź App Links / Deep Links (android:autoVerify) pod kątem intent-redirection lub problemów z open-redirect.
  • Zidentyfikuj użycie WebView.addJavascriptInterface lub loadData*() które mogą prowadzić do RCE / XSS w aplikacji.
  • Analizuj pakiety cross-platform (Flutter libapp.so, React-Native JS bundles, Capacitor/Ionic assets). Dedicated tooling:
  • flutter-packer, fluttersign, rn-differ
  • Przeskanuj zewnętrzne biblioteki natywne pod kątem znanych CVE (np. libwebp CVE-2023-4863, libpng, itd.).
  • Oceniaj reguły SEMgrep Mobile rules, Pithus oraz najnowsze wyniki skanów wspomagane AI z MobSF ≥ 3.9 pod kątem dodatkowych ustaleń.
  • Sprawdź dodatki OEM ROM (OxygenOS/ColorOS/MIUI/OneUI) pod kątem dodatkowych exported ContentProviders omijających uprawnienia; spróbuj content query --uri content://com.android.providers.telephony/ServiceNumberProvider bez READ_SMS (np. OnePlus CVE-2025-10184).

Dynamic Analysis

  • Przygotuj środowisko (online, local VM or physical)
  • Czy istnieje jakiekolwiek unintended data leakage (logowanie, copy/paste, crash logs)?
  • Confidential information being saved in SQLite dbs?
  • Exploitable exposed Activities?
  • Exploitable Content Providers?
  • Exploitable exposed Services?
  • Exploitable Broadcast Receivers?
  • Czy aplikacja transmitting information in clear text/using weak algorithms? Czy MitM jest możliwy?
  • Inspect HTTP/HTTPS traffic
  • To jest naprawdę ważne — jeśli możesz przechwycić ruch HTTP, możesz szukać typowych podatności webowych (Hacktricks zawiera dużo informacji o Web vulns).
  • Sprawdź możliwe Android Client Side Injections (prawdopodobnie pomoże tu statyczna analiza kodu)
  • Frida: Po prostu Frida — użyj jej, aby uzyskać interesujące dane dynamiczne z aplikacji (może jakieś hasła…)
  • Testuj pod kątem Tapjacking / Animation-driven attacks (TapTrap 2025) nawet na Android 15+ (nie jest wymagane uprawnienie overlay).
  • Spróbuj overlay / SYSTEM_ALERT_WINDOW clickjacking oraz Accessibility Service abuse w celu eskalacji uprawnień.
  • Sprawdź, czy adb backup / bmgr backupnow nadal mogą zrzucić dane aplikacji (aplikacje, które zapomniały wyłączyć allowBackup).
  • Badaj pod kątem Binder-level LPEs (np. CVE-2023-20963, CVE-2023-20928); używaj kernel fuzzers lub PoC, jeśli jest to dozwolone.
  • Jeśli Play Integrity / SafetyNet jest wymuszany, spróbuj runtime hooks (Frida Gadget, MagiskIntegrityFix, Integrity-faker) lub odtworzenia na poziomie sieci. Najnowsze forki Play Integrity Fix (≥17.x) osadzają playcurl—skup się na kombinacjach ZygiskNext + PIF + ZygiskAssistant/TrickyStore, aby odzyskać verdicty DEVICE/STRONG.
  • Instrumentuj za pomocą nowoczesnych narzędzi:
  • Objection > 2.0, Frida 17+ (Android 16 support, ART offset fixes), NowSecure-Tracer (2024)
  • Dynamiczne śledzenie systemowe z perfetto / simpleperf.
  • Dla błędów OEM telephony/provider (np. OxygenOS CVE-2025-10184) spróbuj permission-less SMS read/send przez CLI content lub in-app ContentResolver; przetestuj blind SQLi w update() aby eksfiltrować wiersze.

Informacje o obfuscation/Deobfuscation

Referencje

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks