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

79 lines
6.8 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.

# Android APK Checklist
{{#include ../banners/hacktricks-training.md}}
### [Learn Android fundamentals](android-app-pentesting/index.html#2-android-application-fundamentals)
- [ ] [Osnovi](android-app-pentesting/index.html#fundamentals-review)
- [ ] [Dalvik & Smali](android-app-pentesting/index.html#dalvik--smali)
- [ ] [Ulazne tačke](android-app-pentesting/index.html#application-entry-points)
- [ ] [Aktivnosti](android-app-pentesting/index.html#launcher-activity)
- [ ] [URL sheme](android-app-pentesting/index.html#url-schemes)
- [ ] [Provajderi sadržaja](android-app-pentesting/index.html#services)
- [ ] [Servisi](android-app-pentesting/index.html#services-1)
- [ ] [Broadcast prijemnici](android-app-pentesting/index.html#broadcast-receivers)
- [ ] [Intenti](android-app-pentesting/index.html#intents)
- [ ] [Filter inteta](android-app-pentesting/index.html#intent-filter)
- [ ] [Ostale komponente](android-app-pentesting/index.html#other-app-components)
- [ ] [Kako koristiti ADB](android-app-pentesting/index.html#adb-android-debug-bridge)
- [ ] [Kako modifikovati Smali](android-app-pentesting/index.html#smali)
### [Static Analysis](android-app-pentesting/index.html#static-analysis)
- [ ] Proverite upotrebu [obfuskacije](android-checklist.md#some-obfuscation-deobfuscation-information), proverite da li je mobilni uređaj root-ovan, da li se koristi emulator i provere protiv manipulacije. [Pročitajte ovo za više informacija](android-app-pentesting/index.html#other-checks).
- [ ] Osetljive aplikacije (kao što su bankarske aplikacije) treba da provere da li je mobilni uređaj root-ovan i da reaguju u skladu s tim.
- [ ] Pretražujte [interesantne stringove](android-app-pentesting/index.html#looking-for-interesting-info) (lozinke, URL-ove, API, enkripciju, backdoor-e, tokene, Bluetooth uuids...).
- [ ] Posebna pažnja na [firebase](android-app-pentesting/index.html#firebase) API-je.
- [ ] [Pročitajte manifest:](android-app-pentesting/index.html#basic-understanding-of-the-application-manifest-xml)
- [ ] Proverite da li je aplikacija u režimu debagovanja i pokušajte da je "iskoristite"
- [ ] Proverite da li APK dozvoljava pravljenje rezervnih kopija
- [ ] Izvezene aktivnosti
- [ ] Provajderi sadržaja
- [ ] Izloženi servisi
- [ ] Broadcast prijemnici
- [ ] URL sheme
- [ ] Da li aplikacija [čuva podatke nesigurno interno ili eksterno](android-app-pentesting/index.html#insecure-data-storage)?
- [ ] Da li postoji neka [lozinka hardkodirana ili sačuvana na disku](android-app-pentesting/index.html#poorkeymanagementprocesses)? Da li aplikacija [koristi nesigurne kripto algoritme](android-app-pentesting/index.html#useofinsecureandordeprecatedalgorithms)?
- [ ] Da li su sve biblioteke kompajlirane koristeći PIE flag?
- [ ] Ne zaboravite da postoji mnogo [statickih Android analitičara](android-app-pentesting/index.html#automatic-analysis) koji vam mogu mnogo pomoći tokom ove faze.
- [ ] `android:exported` **obavezno na Android 12+** pogrešno konfigurisani izvezene komponente mogu dovesti do spoljne invokacije inteta.
- [ ] Pregledajte **Network Security Config** (`networkSecurityConfig` XML) za `cleartextTrafficPermitted="true"` ili specifične domenske preklapanja.
- [ ] Potražite pozive ka **Play Integrity / SafetyNet / DeviceCheck** utvrdite da li se može zaobići prilagođena attestacija.
- [ ] Istražite **App Links / Deep Links** (`android:autoVerify`) zbog problema sa preusmeravanjem inteta ili otvorenim preusmeravanjima.
- [ ] Identifikujte upotrebu **WebView.addJavascriptInterface** ili `loadData*()` koje mogu dovesti do RCE / XSS unutar aplikacije.
- [ ] Analizirajte cross-platform pakete (Flutter `libapp.so`, React-Native JS paketi, Capacitor/Ionic resursi). Posvećeni alati:
- `flutter-packer`, `fluttersign`, `rn-differ`
- [ ] Skenerite treće strane native biblioteke za poznate CVE (npr., **libwebp CVE-2023-4863**, **libpng**, itd.).
- [ ] Procijenite **SEMgrep Mobile pravila**, **Pithus** i najnovije **MobSF ≥ 3.9** AI-pomoćene rezultate skeniranja za dodatne nalaze.
### [Dynamic Analysis](android-app-pentesting/index.html#dynamic-analysis)
- [ ] Pripremite okruženje ([online](android-app-pentesting/index.html#online-dynamic-analysis), [lokalna VM ili fizička](android-app-pentesting/index.html#local-dynamic-analysis))
- [ ] Da li postoji neka [neprikazana curenje podataka](android-app-pentesting/index.html#unintended-data-leakage) (logovanje, kopiranje/lepiti, logovi grešaka)?
- [ ] [Poverljive informacije se čuvaju u SQLite bazama podataka](android-app-pentesting/index.html#sqlite-dbs)?
- [ ] [Iskorišćene izložene aktivnosti](android-app-pentesting/index.html#exploiting-exported-activities-authorisation-bypass)?
- [ ] [Iskorišćeni provajderi sadržaja](android-app-pentesting/index.html#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
- [ ] [Iskorišćeni izloženi servisi](android-app-pentesting/index.html#exploiting-services)?
- [ ] [Iskorišćeni Broadcast prijemnici](android-app-pentesting/index.html#exploiting-broadcast-receivers)?
- [ ] Da li aplikacija [prenosi informacije u čistom tekstu/koristi slabe algoritme](android-app-pentesting/index.html#insufficient-transport-layer-protection)? Da li je MitM moguć?
- [ ] [Istražite HTTP/HTTPS saobraćaj](android-app-pentesting/index.html#inspecting-http-traffic)
- [ ] Ovo je zaista važno, jer ako možete uhvatiti HTTP saobraćaj možete tražiti uobičajene Web ranjivosti (Hacktricks ima mnogo informacija o Web ranjivostima).
- [ ] Proverite moguće [Android klijentske strane injekcije](android-app-pentesting/index.html#android-client-side-injections-and-others) (verovatno će neka statička analiza koda pomoći ovde)
- [ ] [Frida](android-app-pentesting/index.html#frida): Samo Frida, koristite je za dobijanje interesantnih dinamičkih podataka iz aplikacije (možda neke lozinke...)
- [ ] Testirajte za **Tapjacking / napade vođene animacijom (TapTrap 2025)** čak i na Android 15+ (nije potrebna dozvola za preklapanje).
- [ ] Pokušajte **overlay / SYSTEM_ALERT_WINDOW clickjacking** i **zloupotrebu usluge pristupa** za eskalaciju privilegija.
- [ ] Proverite da li `adb backup` / `bmgr backupnow` još uvek može da izvuče podatke aplikacije (aplikacije koje su zaboravile da onemoguće `allowBackup`).
- [ ] Istražite **Binder-level LPEs** (npr., **CVE-2023-20963, CVE-2023-20928**); koristite kernel fuzzere ili PoC-ove ako je dozvoljeno.
- [ ] Ako je Play Integrity / SafetyNet primenjen, pokušajte runtime hook-ove (`Frida Gadget`, `MagiskIntegrityFix`, `Integrity-faker`) ili ponavljanje na mrežnom nivou.
- [ ] Instrumentujte sa modernim alatima:
- **Objection > 2.0**, **Frida 17+**, **NowSecure-Tracer (2024)**
- Dinamičko praćenje sistema sa `perfetto` / `simpleperf`.
### Some obfuscation/Deobfuscation information
- [ ] [Pročitajte ovde](android-app-pentesting/index.html#obfuscating-deobfuscating-code)
{{#include ../banners/hacktricks-training.md}}