# Android APK Checklist {{#include ../banners/hacktricks-training.md}} ### [Learn Android fundamentals](android-app-pentesting/index.html#2-android-application-fundamentals) - [ ] [Основи](android-app-pentesting/index.html#fundamentals-review) - [ ] [Dalvik & Smali](android-app-pentesting/index.html#dalvik--smali) - [ ] [Точки входу](android-app-pentesting/index.html#application-entry-points) - [ ] [Активності](android-app-pentesting/index.html#launcher-activity) - [ ] [URL-схеми](android-app-pentesting/index.html#url-schemes) - [ ] [Постачальники контенту](android-app-pentesting/index.html#services) - [ ] [Сервіси](android-app-pentesting/index.html#services-1) - [ ] [Приймачі трансляцій](android-app-pentesting/index.html#broadcast-receivers) - [ ] [Інтенти](android-app-pentesting/index.html#intents) - [ ] [Фільтр інтента](android-app-pentesting/index.html#intent-filter) - [ ] [Інші компоненти](android-app-pentesting/index.html#other-app-components) - [ ] [Як використовувати ADB](android-app-pentesting/index.html#adb-android-debug-bridge) - [ ] [Як модифікувати Smali](android-app-pentesting/index.html#smali) ### [Static Analysis](android-app-pentesting/index.html#static-analysis) - [ ] Перевірте використання [обфускації](android-checklist.md#some-obfuscation-deobfuscation-information), перевірки на те, чи був мобільний пристрій рутований, чи використовується емулятор та перевірки на антивандалізм. [Читати тут для отримання додаткової інформації](android-app-pentesting/index.html#other-checks). - [ ] Чутливі програми (наприклад, банківські додатки) повинні перевіряти, чи рутований мобільний пристрій, і діяти відповідно. - [ ] Шукайте [цікаві рядки](android-app-pentesting/index.html#looking-for-interesting-info) (паролі, URL, API, шифрування, бекдори, токени, Bluetooth uuids...). - [ ] Особлива увага до [firebase ](android-app-pentesting/index.html#firebase)API. - [ ] [Прочитайте маніфест:](android-app-pentesting/index.html#basic-understanding-of-the-application-manifest-xml) - [ ] Перевірте, чи програма знаходиться в режимі налагодження, і спробуйте "експлуатувати" її - [ ] Перевірте, чи дозволяє APK резервні копії - [ ] Експортовані активності - [ ] Постачальники контенту - [ ] Відкриті сервіси - [ ] Приймачі трансляцій - [ ] URL-схеми - [ ] Чи зберігає програма дані ненадійно всередині або зовні](android-app-pentesting/index.html#insecure-data-storage)? - [ ] Чи є [пароль, закодований або збережений на диску](android-app-pentesting/index.html#poorkeymanagementprocesses)? Чи використовує програма [ненадійні криптоалгоритми](android-app-pentesting/index.html#useofinsecureandordeprecatedalgorithms)? - [ ] Усі бібліотеки скомпільовані з використанням прапора PIE? - [ ] Не забувайте, що є безліч [статичних Android-аналітиків](android-app-pentesting/index.html#automatic-analysis), які можуть дуже допомогти вам на цьому етапі. - [ ] `android:exported` **обов'язковий на Android 12+** – неправильно налаштовані експортовані компоненти можуть призвести до виклику зовнішніх інтенцій. - [ ] Перегляньте **Конфігурацію безпеки мережі** (`networkSecurityConfig` XML) на `cleartextTrafficPermitted="true"` або специфічні для домену переопределення. - [ ] Шукайте виклики до **Play Integrity / SafetyNet / DeviceCheck** – визначте, чи можна обійти/зловити кастомну атестацію. - [ ] Перевірте **App Links / Deep Links** (`android:autoVerify`) на проблеми з перенаправленням інтенцій або відкритими перенаправленнями. - [ ] Визначте використання **WebView.addJavascriptInterface** або `loadData*()`, які можуть призвести до RCE / XSS всередині програми. - [ ] Аналізуйте крос-платформенні пакети (Flutter `libapp.so`, React-Native JS пакети, активи Capacitor/Ionic). Спеціалізовані інструменти: - `flutter-packer`, `fluttersign`, `rn-differ` - [ ] Скануйте сторонні рідні бібліотеки на наявність відомих CVE (наприклад, **libwebp CVE-2023-4863**, **libpng**, тощо). - [ ] Оцініть **правила SEMgrep Mobile**, **Pithus** та останні результати сканування **MobSF ≥ 3.9** з підтримкою AI для додаткових знахідок. ### [Dynamic Analysis](android-app-pentesting/index.html#dynamic-analysis) - [ ] Підготуйте середовище ([онлайн](android-app-pentesting/index.html#online-dynamic-analysis), [локальна VM або фізична](android-app-pentesting/index.html#local-dynamic-analysis)) - [ ] Чи є [небажане витікання даних](android-app-pentesting/index.html#unintended-data-leakage) (логування, копіювання/вставка, журнали аварій)? - [ ] [Конфіденційна інформація, що зберігається в SQLite dbs](android-app-pentesting/index.html#sqlite-dbs)? - [ ] [Експлуатовані експортовані активності](android-app-pentesting/index.html#exploiting-exported-activities-authorisation-bypass)? - [ ] [Експлуатовані постачальники контенту](android-app-pentesting/index.html#exploiting-content-providers-accessing-and-manipulating-sensitive-information)? - [ ] [Експлуатовані відкриті сервіси](android-app-pentesting/index.html#exploiting-services)? - [ ] [Експлуатовані приймачі трансляцій](android-app-pentesting/index.html#exploiting-broadcast-receivers)? - [ ] Чи передає програма [інформацію у відкритому тексті/використовує слабкі алгоритми](android-app-pentesting/index.html#insufficient-transport-layer-protection)? Чи можливий MitM? - [ ] [Перевірте HTTP/HTTPS трафік](android-app-pentesting/index.html#inspecting-http-traffic) - [ ] Це дійсно важливо, тому що якщо ви зможете захопити HTTP-трафік, ви зможете шукати загальні веб-уразливості (Hacktricks має багато інформації про веб-уразливості). - [ ] Перевірте можливі [ін'єкції на стороні клієнта Android](android-app-pentesting/index.html#android-client-side-injections-and-others) (можливо, деякий статичний аналіз коду допоможе тут) - [ ] [Frida](android-app-pentesting/index.html#frida): Просто Frida, використовуйте її для отримання цікавих динамічних даних з програми (можливо, деякі паролі...) - [ ] Тестуйте на **Tapjacking / атаки, що керуються анімацією (TapTrap 2025)** навіть на Android 15+ (дозвіл на накладення не потрібен). - [ ] Спробуйте **накладення / SYSTEM_ALERT_WINDOW clickjacking** та **зловживання службою доступності** для підвищення привілеїв. - [ ] Перевірте, чи `adb backup` / `bmgr backupnow` все ще можуть скинути дані програми (програми, які забули вимкнути `allowBackup`). - [ ] Досліджуйте **LPE на рівні Binder** (наприклад, **CVE-2023-20963, CVE-2023-20928**); використовуйте фуззери ядра або PoC, якщо це дозволено. - [ ] Якщо Play Integrity / SafetyNet застосовується, спробуйте хуки часу виконання (`Frida Gadget`, `MagiskIntegrityFix`, `Integrity-faker`) або повторну передачу на рівні мережі. - [ ] Інструментуйте сучасними інструментами: - **Objection > 2.0**, **Frida 17+**, **NowSecure-Tracer (2024)** - Динамічне трасування на системному рівні з `perfetto` / `simpleperf`. ### Some obfuscation/Deobfuscation information - [ ] [Читати тут](android-app-pentesting/index.html#obfuscating-deobfuscating-code) {{#include ../banners/hacktricks-training.md}}