Android APK チェックリスト
Reading time: 8 minutes
tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:
HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Learn Android fundamentals
- Basics
- Dalvik & Smali
- Entry points
- Activities
- URL Schemes
- Content Providers
- Services
- Broadcast Receivers
- Intents
- Intent Filter
- Other components
- How to use ADB
- How to modify Smali
Static Analysis
- モバイルがroot化されているか、エミュレータが使われているか、アンチタンパリングチェックがあるか等を含め、obfuscation の使用を確認する。Read this for more info.
- 銀行アプリ等のSensitive applications は、端末がroot化されているかを確認し、それに応じた対処を行うべき。
- interesting strings を検索する(passwords, URLs, API, encryption, backdoors, tokens, Bluetooth uuids...)。
- [firebase ]APIs に特別注意。
- Read the manifest:
- アプリがデバッグモードになっているかを確認し、可能ならそれを "exploit" する。
- APK がバックアップを許可しているか確認する
- Exported Activities
-
Unity Runtime: exported UnityPlayerActivity/UnityPlayerGameActivity が
unityCLI extras ブリッジを持つ。pre-init のdlopen()RCE をテストするために-xrsdk-pre-init-library <abs-path>を試す。詳細は Intent Injection → Unity Runtime を参照。 - Content Providers
- Exposed services
- Broadcast Receivers
- URL Schemes
- アプリが内部または外部にデータを不安全に保存していないかを確認する(saving data insecurely internally or externally)。
- password hard coded or saved in disk はないか?アプリが using insecurely crypto algorithms を使用していないか?
- すべてのライブラリが PIE フラグでコンパイルされているか?
- 忘れずに多数の static Android Analyzers を利用する — このフェーズで非常に役立つ。
-
android:exportedmandatory on Android 12+ – エクスポートされたコンポーネントの誤設定は外部からの intent 呼び出しにつながる可能性がある。 -
Network Security Config(
networkSecurityConfigXML)を確認し、cleartextTrafficPermitted="true"やドメイン固有のオーバーライドがないか確認する。 - Play Integrity / SafetyNet / DeviceCheck の呼び出しを探し、カスタム attestation がフック/バイパス可能かを判断する。
-
App Links / Deep Links(
android:autoVerify)を調査し、intent リダイレクトやオープンリダイレクトの問題がないか確認する。 -
アプリ内で RCE / XSS を引き起こす可能性がある WebView.addJavascriptInterface または
loadData*()の使用を特定する。 -
クロスプラットフォームのバンドル(Flutter
libapp.so, React-Native JS bundles, Capacitor/Ionic assets)を解析する。専用ツール: flutter-packer,fluttersign,rn-differ- サードパーティのネイティブライブラリを既知の CVE(例: libwebp CVE-2023-4863, libpng など)についてスキャンする。
- 追加の発見のために SEMgrep Mobile rules, Pithus および最新の MobSF ≥ 3.9 の AI 支援スキャン結果を評価する。
Dynamic Analysis
- 環境を準備する(online, local VM or physical)
- 不意の unintended data leakage(logging, copy/paste, crash logs)があるか?
- Confidential information being saved in SQLite dbs?
- Exploitable exposed Activities?
- Exploitable Content Providers?
- Exploitable exposed Services?
- Exploitable Broadcast Receivers?
- アプリが transmitting information in clear text/using weak algorithms しているか?MitM は可能か?
- Inspect HTTP/HTTPS traffic
- これは非常に重要:HTTP トラフィックを捕捉できれば、一般的な Web 脆弱性を検索できる(Hacktricks は Web 脆弱性に関する多くの情報を持っている)。
- 可能な Android Client Side Injections をチェックする(静的解析も助けになることが多い)。
- Frida: 単に Frida を使い、アプリから興味深い動的データ(場合によってはパスワードなど)を取得する。
- Tapjacking / Animation-driven attacks (TapTrap 2025) を Android 15+ でもテストする(オーバーレイ許可不要)。
- overlay / SYSTEM_ALERT_WINDOW を使った clickjacking と Accessibility Service の悪用を試み、権限昇格を検証する。
-
adb backup/bmgr backupnowでまだアプリデータをダンプできるか確認する(allowBackupを無効化し忘れたアプリ)。 - Binder レベルの LPE を探る(例: 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
参考
tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:
HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
HackTricks