# Lista kontrolna APK Androida {{#include ../banners/hacktricks-training.md}} ### [Poznaj podstawy Androida](android-app-pentesting/index.html#2-android-application-fundamentals) - [ ] [Podstawy](android-app-pentesting/index.html#fundamentals-review) - [ ] [Dalvik i Smali](android-app-pentesting/index.html#dalvik--smali) - [ ] [Punkty wejścia](android-app-pentesting/index.html#application-entry-points) - [ ] [Aktywności](android-app-pentesting/index.html#launcher-activity) - [ ] [Schematy URL](android-app-pentesting/index.html#url-schemes) - [ ] [Dostawcy treści](android-app-pentesting/index.html#services) - [ ] [Usługi](android-app-pentesting/index.html#services-1) - [ ] [Odbiorniki rozgłoszeniowe](android-app-pentesting/index.html#broadcast-receivers) - [ ] [Intencje](android-app-pentesting/index.html#intents) - [ ] [Filtr intencji](android-app-pentesting/index.html#intent-filter) - [ ] [Inne komponenty](android-app-pentesting/index.html#other-app-components) - [ ] [Jak używać ADB](android-app-pentesting/index.html#adb-android-debug-bridge) - [ ] [Jak modyfikować Smali](android-app-pentesting/index.html#smali) ### [Analiza statyczna](android-app-pentesting/index.html#static-analysis) - [ ] Sprawdź użycie [obfuskacji](android-checklist.md#some-obfuscation-deobfuscation-information), sprawdź, czy urządzenie mobilne było zrootowane, czy używany jest emulator oraz sprawdzenia antytamperowe. [Przeczytaj to, aby uzyskać więcej informacji](android-app-pentesting/index.html#other-checks). - [ ] Wrażliwe aplikacje (jak aplikacje bankowe) powinny sprawdzić, czy urządzenie mobilne jest zrootowane i działać w konsekwencji. - [ ] Szukaj [interesujących ciągów](android-app-pentesting/index.html#looking-for-interesting-info) (hasła, URL, API, szyfrowanie, backdoory, tokeny, UUID Bluetooth...). - [ ] Szczególna uwaga na [firebase](android-app-pentesting/index.html#firebase)API. - [ ] [Przeczytaj manifest:](android-app-pentesting/index.html#basic-understanding-of-the-application-manifest-xml) - [ ] Sprawdź, czy aplikacja jest w trybie debugowania i spróbuj ją "wykorzystać". - [ ] Sprawdź, czy APK pozwala na tworzenie kopii zapasowych. - [ ] Eksportowane Aktywności. - [ ] Dostawcy treści. - [ ] Ekspozycja usług. - [ ] Odbiorniki rozgłoszeniowe. - [ ] Schematy URL. - [ ] Czy aplikacja [zapisuje dane w sposób niebezpieczny wewnętrznie lub zewnętrznie](android-app-pentesting/index.html#insecure-data-storage)? - [ ] Czy jakiekolwiek [hasło jest zakodowane na stałe lub zapisane na dysku](android-app-pentesting/index.html#poorkeymanagementprocesses)? Czy aplikacja [używa niebezpiecznych algorytmów kryptograficznych](android-app-pentesting/index.html#useofinsecureandordeprecatedalgorithms)? - [ ] Wszystkie biblioteki skompilowane z użyciem flagi PIE? - [ ] Nie zapomnij, że istnieje wiele [statycznych analizatorów Androida](android-app-pentesting/index.html#automatic-analysis), które mogą bardzo pomóc w tym etapie. - [ ] `android:exported` **obowiązkowe w Androidzie 12+** – źle skonfigurowane komponenty eksportowane mogą prowadzić do wywołania intencji zewnętrznych. - [ ] Przejrzyj **Konfigurację zabezpieczeń sieci** (`networkSecurityConfig` XML) pod kątem `cleartextTrafficPermitted="true"` lub specyficznych dla domeny nadpisów. - [ ] Szukaj wywołań do **Play Integrity / SafetyNet / DeviceCheck** – określ, czy niestandardowa atestacja może być podłączona/obejście. - [ ] Sprawdź **Linki aplikacji / Linki głębokie** (`android:autoVerify`) pod kątem problemów z przekierowaniem intencji lub otwartymi przekierowaniami. - [ ] Zidentyfikuj użycie **WebView.addJavascriptInterface** lub `loadData*()`, które mogą prowadzić do RCE / XSS wewnątrz aplikacji. - [ ] Analizuj pakiety wieloplatformowe (Flutter `libapp.so`, pakiety JS React-Native, zasoby Capacitor/Ionic). Dedykowane narzędzia: - `flutter-packer`, `fluttersign`, `rn-differ` - [ ] Skanuj zewnętrzne biblioteki natywne pod kątem znanych CVE (np. **libwebp CVE-2023-4863**, **libpng**, itp.). - [ ] Oceń **reguły SEMgrep Mobile**, **Pithus** oraz najnowsze wyniki skanowania wspomaganego AI **MobSF ≥ 3.9** w poszukiwaniu dodatkowych ustaleń. ### [Analiza dynamiczna](android-app-pentesting/index.html#dynamic-analysis) - [ ] Przygotuj środowisko ([online](android-app-pentesting/index.html#online-dynamic-analysis), [lokalna VM lub fizyczna](android-app-pentesting/index.html#local-dynamic-analysis)) - [ ] Czy występuje jakiekolwiek [niezamierzone wyciekanie danych](android-app-pentesting/index.html#unintended-data-leakage) (logowanie, kopiowanie/wklejanie, logi awarii)? - [ ] [Poufne informacje zapisywane w bazach danych SQLite](android-app-pentesting/index.html#sqlite-dbs)? - [ ] [Wykorzystywalne eksportowane Aktywności](android-app-pentesting/index.html#exploiting-exported-activities-authorisation-bypass)? - [ ] [Wykorzystywalne Dostawcy treści](android-app-pentesting/index.html#exploiting-content-providers-accessing-and-manipulating-sensitive-information)? - [ ] [Wykorzystywalne eksponowane Usługi](android-app-pentesting/index.html#exploiting-services)? - [ ] [Wykorzystywalne Odbiorniki rozgłoszeniowe](android-app-pentesting/index.html#exploiting-broadcast-receivers)? - [ ] Czy aplikacja [przesyła informacje w czystym tekście/używa słabych algorytmów](android-app-pentesting/index.html#insufficient-transport-layer-protection)? Czy możliwe jest MitM? - [ ] [Inspekcja ruchu HTTP/HTTPS](android-app-pentesting/index.html#inspecting-http-traffic) - [ ] To jest naprawdę ważne, ponieważ jeśli możesz przechwycić ruch HTTP, możesz szukać powszechnych luk w zabezpieczeniach w sieci (Hacktricks ma wiele informacji na temat luk w zabezpieczeniach w sieci). - [ ] Sprawdź możliwe [wstrzyknięcia po stronie klienta Androida](android-app-pentesting/index.html#android-client-side-injections-and-others) (prawdopodobnie analiza statyczna pomoże tutaj). - [ ] [Frida](android-app-pentesting/index.html#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 / Ataków opartych na animacji (TapTrap 2025)** nawet na Androidzie 15+ (nie wymaga uprawnień do nakładania). - [ ] Spróbuj **nakładania / SYSTEM_ALERT_WINDOW clickjacking** oraz **nadużycia usługi dostępności** w celu eskalacji uprawnień. - [ ] Sprawdź, czy `adb backup` / `bmgr backupnow` nadal może zrzucać dane aplikacji (aplikacje, które zapomniały wyłączyć `allowBackup`). - [ ] Sprawdź **LPE na poziomie Binders** (np. **CVE-2023-20963, CVE-2023-20928**); użyj fuzzersów jądra lub PoC, jeśli to dozwolone. - [ ] Jeśli Play Integrity / SafetyNet jest egzekwowane, spróbuj haków w czasie rzeczywistym (`Frida Gadget`, `MagiskIntegrityFix`, `Integrity-faker`) lub powtórzenia na poziomie sieci. - [ ] Instrumentuj nowoczesnymi narzędziami: - **Objection > 2.0**, **Frida 17+**, **NowSecure-Tracer (2024)** - Dynamiczne śledzenie systemowe z `perfetto` / `simpleperf`. ### Informacje o obfuskacji/deobfuskacji - [ ] [Przeczytaj tutaj](android-app-pentesting/index.html#obfuscating-deobfuscating-code) {{#include ../banners/hacktricks-training.md}}