mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
79 lines
6.7 KiB
Markdown
79 lines
6.7 KiB
Markdown
# Android APK Checklist
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
|
||
### [Learn Android fundamentals](android-app-pentesting/index.html#2-android-application-fundamentals)
|
||
|
||
- [ ] [Basics](android-app-pentesting/index.html#fundamentals-review)
|
||
- [ ] [Dalvik & Smali](android-app-pentesting/index.html#dalvik--smali)
|
||
- [ ] [Entry points](android-app-pentesting/index.html#application-entry-points)
|
||
- [ ] [Activities](android-app-pentesting/index.html#launcher-activity)
|
||
- [ ] [URL Schemes](android-app-pentesting/index.html#url-schemes)
|
||
- [ ] [Content Providers](android-app-pentesting/index.html#services)
|
||
- [ ] [Services](android-app-pentesting/index.html#services-1)
|
||
- [ ] [Broadcast Receivers](android-app-pentesting/index.html#broadcast-receivers)
|
||
- [ ] [Intents](android-app-pentesting/index.html#intents)
|
||
- [ ] [Intent Filter](android-app-pentesting/index.html#intent-filter)
|
||
- [ ] [Other components](android-app-pentesting/index.html#other-app-components)
|
||
- [ ] [How to use ADB](android-app-pentesting/index.html#adb-android-debug-bridge)
|
||
- [ ] [How to modify Smali](android-app-pentesting/index.html#smali)
|
||
|
||
### [Static Analysis](android-app-pentesting/index.html#static-analysis)
|
||
|
||
- [ ] Controlla l'uso di [obfuscation](android-checklist.md#some-obfuscation-deobfuscation-information), verifica se il mobile è stato rootato, se viene utilizzato un emulatore e controlli anti-manomissione. [Leggi qui per maggiori informazioni](android-app-pentesting/index.html#other-checks).
|
||
- [ ] Le applicazioni sensibili (come le app bancarie) dovrebbero controllare se il mobile è rootato e agire di conseguenza.
|
||
- [ ] Cerca [interesting strings](android-app-pentesting/index.html#looking-for-interesting-info) (password, URL, API, crittografia, backdoor, token, Bluetooth uuids...).
|
||
- [ ] Attenzione speciale alle [firebase ](android-app-pentesting/index.html#firebase)API.
|
||
- [ ] [Leggi il manifest:](android-app-pentesting/index.html#basic-understanding-of-the-application-manifest-xml)
|
||
- [ ] Controlla se l'applicazione è in modalità debug e prova a "sfruttarla"
|
||
- [ ] Controlla se l'APK consente backup
|
||
- [ ] Attività esportate
|
||
- [ ] Fornitori di contenuti
|
||
- [ ] Servizi esposti
|
||
- [ ] Ricevitori broadcast
|
||
- [ ] Schemi URL
|
||
- [ ] L'applicazione sta [salvando dati in modo insicuro internamente o esternamente](android-app-pentesting/index.html#insecure-data-storage)?
|
||
- [ ] C'è qualche [password hard coded o salvata su disco](android-app-pentesting/index.html#poorkeymanagementprocesses)? L'app sta [utilizzando algoritmi crittografici insicuri](android-app-pentesting/index.html#useofinsecureandordeprecatedalgorithms)?
|
||
- [ ] Tutte le librerie compilate utilizzando il flag PIE?
|
||
- [ ] Non dimenticare che ci sono un sacco di [static Android Analyzers](android-app-pentesting/index.html#automatic-analysis) che possono aiutarti molto durante questa fase.
|
||
- [ ] `android:exported` **obbligatorio su Android 12+** – componenti esportati mal configurati possono portare a invocazioni di intent esterni.
|
||
- [ ] Rivedi **Network Security Config** (`networkSecurityConfig` XML) per `cleartextTrafficPermitted="true"` o sovrascritture specifiche del dominio.
|
||
- [ ] Cerca chiamate a **Play Integrity / SafetyNet / DeviceCheck** – determina se l'attestazione personalizzata può essere agganciata/evitata.
|
||
- [ ] Ispeziona **App Links / Deep Links** (`android:autoVerify`) per problemi di reindirizzamento di intent o open-redirect.
|
||
- [ ] Identifica l'uso di **WebView.addJavascriptInterface** o `loadData*()` che possono portare a RCE / XSS all'interno dell'app.
|
||
- [ ] Analizza bundle cross-platform (Flutter `libapp.so`, React-Native JS bundles, risorse Capacitor/Ionic). Strumenti dedicati:
|
||
- `flutter-packer`, `fluttersign`, `rn-differ`
|
||
- [ ] Scansiona librerie native di terze parti per CVE noti (ad es., **libwebp CVE-2023-4863**, **libpng**, ecc.).
|
||
- [ ] Valuta i **SEMgrep Mobile rules**, **Pithus** e i risultati della scansione assistita da AI più recenti di **MobSF ≥ 3.9** per ulteriori scoperte.
|
||
|
||
### [Dynamic Analysis](android-app-pentesting/index.html#dynamic-analysis)
|
||
|
||
- [ ] Prepara l'ambiente ([online](android-app-pentesting/index.html#online-dynamic-analysis), [VM locale o fisica](android-app-pentesting/index.html#local-dynamic-analysis))
|
||
- [ ] C'è qualche [unintended data leakage](android-app-pentesting/index.html#unintended-data-leakage) (logging, copia/incolla, log di crash)?
|
||
- [ ] [Informazioni riservate salvate in db SQLite](android-app-pentesting/index.html#sqlite-dbs)?
|
||
- [ ] [Attività esportate sfruttabili](android-app-pentesting/index.html#exploiting-exported-activities-authorisation-bypass)?
|
||
- [ ] [Fornitori di contenuti sfruttabili](android-app-pentesting/index.html#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||
- [ ] [Servizi esposti sfruttabili](android-app-pentesting/index.html#exploiting-services)?
|
||
- [ ] [Ricevitori broadcast sfruttabili](android-app-pentesting/index.html#exploiting-broadcast-receivers)?
|
||
- [ ] L'applicazione sta [trasmettendo informazioni in chiaro/utilizzando algoritmi deboli](android-app-pentesting/index.html#insufficient-transport-layer-protection)? è possibile un MitM?
|
||
- [ ] [Ispeziona il traffico HTTP/HTTPS](android-app-pentesting/index.html#inspecting-http-traffic)
|
||
- [ ] Questo è davvero importante, perché se riesci a catturare il traffico HTTP puoi cercare vulnerabilità Web comuni (Hacktricks ha molte informazioni sulle vulnerabilità Web).
|
||
- [ ] Controlla possibili [Android Client Side Injections](android-app-pentesting/index.html#android-client-side-injections-and-others) (probabilmente un'analisi statica del codice aiuterà qui)
|
||
- [ ] [Frida](android-app-pentesting/index.html#frida): Solo Frida, usala per ottenere dati dinamici interessanti dall'applicazione (forse alcune password...)
|
||
- [ ] Testa per **Tapjacking / Animation-driven attacks (TapTrap 2025)** anche su Android 15+ (nessun permesso di overlay richiesto).
|
||
- [ ] Prova **overlay / SYSTEM_ALERT_WINDOW clickjacking** e **Accessibility Service abuse** per l'escalation dei privilegi.
|
||
- [ ] Controlla se `adb backup` / `bmgr backupnow` può ancora dumpare i dati dell'app (app che hanno dimenticato di disabilitare `allowBackup`).
|
||
- [ ] Prova per **Binder-level LPEs** (ad es., **CVE-2023-20963, CVE-2023-20928**); usa fuzzers del kernel o PoC se consentito.
|
||
- [ ] Se Play Integrity / SafetyNet è applicato, prova runtime hooks (`Frida Gadget`, `MagiskIntegrityFix`, `Integrity-faker`) o replay a livello di rete.
|
||
- [ ] Strumenta con strumenti moderni:
|
||
- **Objection > 2.0**, **Frida 17+**, **NowSecure-Tracer (2024)**
|
||
- Tracciamento dinamico a livello di sistema con `perfetto` / `simpleperf`.
|
||
|
||
### Some obfuscation/Deobfuscation information
|
||
|
||
- [ ] [Read here](android-app-pentesting/index.html#obfuscating-deobfuscating-code)
|
||
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|