hacktricks/src/mobile-pentesting/android-checklist.md

79 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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}}