mcpField
A
android-pentest

android-pentest

github.com/hardw00tセキュリティ10693 回インストール27 週間前に更新
リポジトリ

android-pentest について

android-pentestは、MASTGに沿ってAndroidアプリを評価するセキュリティ担当者向けのワークフロースキルです。静的・動的解析を必要に応じて案内し、検査手順、Fridaスクリプト、構造化レポートの要件を備えています。

主な機能

  1. 01評価手順と参考資料のオンデマンド読み込み
  2. 02静的解析とFridaによる動的テスト
  3. 03ストレージ、通信、アプリコンポーネントの検査
  4. 04MASTGチェックリストとマッピング
  5. 05構造化形式での検出事項の整理

活用シーン

  1. 01AndroidアプリのMASVS評価
  2. 02SSLピンニング、Root検知、認証のテスト
  3. 03ローカルデータの抽出と機密情報の確認
  4. 04エクスポートコンポーネント、ディープリンク、Intentのテスト

MCP 対応

Android Dynamic MCPとMobile MCPを使ったデバイス操作、Fridaテスト、UI操作を案内します。デバイス、ネットワーク、データ抽出、コンポーネントテスト用のMCPツールを記載しています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hardw00t/ai-security-arsenal --skill android-pentest

インストール後、Claude Code で/android-pentestを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

checklists/
owasp_mastg_full.md
pre_engagement.md
quick_wins.md
report_items.md
examples/
auth_bypass.md
data_storage_investigation.md
new_assessment.md
methodology/
auth_testing.md
client_side_injection.md
crypto_testing.md
data_storage.md
dynamic_analysis.md
network_testing.md
recon.md
static_analysis.md
payloads/
intent_injection.txt
path_traversal.txt
sql_injection.txt
xss_payloads.txt
xxe_payloads.txt
references/
android_security_checklist.md
bounty_patterns_2024_2026.md
frida_snippets.md
owasp_mobile_top10.md
troubleshooting.md
reporting/
evidence_collector.py
finding_schema.json
remediation_db.json
report_generator.py
severity_calculator.py

詳細

Android モバイルアプリケーションのペネトレーションテスト

ADB + Frida + Mobile MCP を用いた、MASTG に準拠する Android アセスメントのための薄いルーターです。ワークフロー/方法論/リファレンスファイルは必要に応じて読み込み、スキル全体を事前に暗記しようとしないでください。

使用する場面

  • Android アプリのセキュリティアセスメントを新たに開始する
  • SSL ピンニング、ルート検出、改ざん防止、または生体認証チェックをバイパスする
  • ローカルストレージ(SharedPreferences、DB、ファイル、ログ)を抽出/トリアージする
  • エクスポートされたアクティビティ、サービス、プロバイダー、レシーバー、ディープリンクをテストする
  • 実行時に暗号、認証、セッション、キーストアをフックする
  • コンプライアンスの証跡として、ビルドを OWASP MASVS / MASTG に対応付ける
  • 構造化された検出事項と修正ガイダンスを作成する

トリガーフレーズ

「この Android アプリをペンテストして」 • 「APK のセキュリティテストをして」 • 「 の SSL ピンニングをバイパスして」 • 「 からデータを抽出して」 • 「Android の認証をテストして」 • 「Android のインテントをファジングして」 • 「 の MASTG テストをして」 • 「モバイルアプリのセキュリティアセスメント」

このスキルを使用しない場面

  • iOS アプリ → ios-pentest(利用可能な場合)または汎用モバイルスキルを使用する
  • モバイルバックエンドのサーバー側 API ファジング → api-security / web-pentest を使用する
  • IR のための Android マルウェアの逆コンパイル → このペンテストに特化したスキルではなく、malware-analysis を使用する
  • サードパーティ SDK のサプライチェーン/SCA → sca / dependency-audit を使用する
  • モバイルアプリのクラウドバックエンド → cloud-pentest を使用する

判断ツリー

Do you have the APK or only package name?
├─ package only → get_app_info + pull_apk (parallel), then branch on protections
└─ APK on disk  → static analysis first (jadx, apktool), then dynamic
                 └─ App runs? → frida_spawn → bypass_ssl → bypass_root → proxy
                 └─ App crashes on root? → see references/troubleshooting.md (Root detection)
                 └─ TLS still not decrypted? → workflows/ssl_pinning_bypass.md Methods 2→3

What's the objective?
├─ Full assessment          → workflows/complete_assessment.md
├─ SSL pinning only         → workflows/ssl_pinning_bypass.md
├─ Auth / session           → workflows/auth_testing.md
├─ Deep links / IPC / fuzz  → workflows/deeplink_intent_testing.md
├─ Crypto audit             → workflows/crypto_analysis.md
└─ Data storage / exfil     → workflows/data_exfiltration.md

並列実行のヒント

並行して実行(独立した処理、同一デバイス):

  • get_app_info + pull_apk + list_exported_components
  • dump_databases + dump_shared_prefs + dump_internal_storage + dump_external_storage + get_logcat
  • 同じ PID を対象とする複数の frida_run_script 呼び出し(crypto_hooks.js ∥ credential_hooks.js ∥ intent_monitor.js)
  • 静的 APK 分析(逆コンパイル、シークレットスキャン) ∥ 動的ランタイムフック

順次実行が必要:

  • frida_spawn → frida_bypass_ssl → frida_bypass_root(スクリプトには PID が必要で、アプリの保護初期化が完了する前にアタッチする必要があります)
  • トラフィックキャプチャまたはネットワークワークフローを開始する前に setup_proxy
  • 新しいデバイスでは setup_proxy の前に install_ca_cert
  • capture_traffic_start → アプリを操作 → capture_traffic_stop

サブエージェントへの委任

  • メインエージェントが動的な Frida フックを実行している間に、取得済み APK を対象とする静的分析サブエージェントを起動します(jadx で逆コンパイル → シークレットを grep → マニフェストを確認 → ネイティブライブラリを一覧表示)。報告前に結果を統合します。
  • エクスポートされたコンポーネントを多数ファジングする場合は、コンポーネントごとのサブエージェントを起動します。アクティビティ/プロバイダー/サービスの各バッチにエージェントを割り当て、それぞれが専用の Frida PID と logcat フィルターを管理します。これによりフック状態の混在を防げます。
  • メインのテストが完了したら、検出事項を schemas/finding.json に正規化し、テンプレートをレンダリングするレポート作成サブエージェントを起動します。

推論予算

  • 拡張思考(高):証跡に基づく検出事項のトリアージ、深刻度の分類、CWE/MASTG マッピングの作成、難読化されたクラス向けのカスタム Frida フックの設計、ネイティブな SSL ピンニング経路のリバースエンジニアリング。
  • 拡張思考は低/不要:反復的な Frida フックの実行、標準的なダンプ、定型ペイロードのファジング、汎用 SSL バイパスの適用、既知の MCP ツールシーケンスの呼び出し。
  • 最初に試す汎用バイパスについてトークンを浪費して考えないでください。まず frida_bypass_ssl(pid) を実行し、失敗したら次の段階に進みます。

マルチモーダルフック

  • UI 操作が必要な認証フロー(生体認証プロンプト、OAuth リダイレクト、MFA 手順)では、Mobile MCP の get_screen_state とスクリーンショットを使用します。検出事項の evidence.screenshot としてスクリーンショットを添付します。
  • バイパスが成功した時点(例:生体認証の偽装後に表示される認証済みホーム画面)でスクリーンショットを撮影します。視覚的証跡により、深刻度の根拠が強化されます。
  • ディープリンクの再現では、意図しない状態に到達できることを証明するため、遷移先のアクティビティをスクリーンショットに収めます。

構造化出力

すべての検出結果は、schemas/finding.json に対する検証に合格する必要があります。Android 固有の必須フィールド/共通フィールド: package_name、app_version、target_sdk、device_id、frida_pid、mastg_id、masvs_control、component.{type,class_name,exported}、evidence.{logcat,frida_output,screenshot,pcap}。

ワークフローの索引

ワークフロー場面
workflows/complete_assessment.mdMASTG のエンドツーエンド評価
workflows/ssl_pinning_bypass.mdTLS インターセプトの有効化
workflows/auth_testing.mdログイン、セッション、生体認証、JWT
workflows/deeplink_intent_testing.mdIPC ファジング、ディープリンク、プロバイダー
workflows/crypto_analysis.md脆弱なアルゴリズム、ハードコードされた鍵、キーストア
workflows/data_exfiltration.mdローカルストレージと logcat の漏えい

手法の索引

ドキュメント対象範囲
methodology/recon.md情報収集、攻撃対象領域マップ
methodology/static_analysis.mdAPK/smali/シークレットのレビュー
methodology/dynamic_analysis.mdランタイムフック、計測
methodology/network_testing.mdトラフィック、API、TLS 検証
methodology/data_storage.mdローカルストレージ、DB、ファイル権限
methodology/crypto_testing.md暗号化と鍵管理
methodology/auth_testing.md認証、セッション、生体認証
methodology/client_side_injection.mdWebView、ディープリンク、プロバイダー

ペイロードの索引

ファイル用途
payloads/intent_injection.txtIntent/IPC ファジング用入力
payloads/path_traversal.txtファイル/プロバイダーのパストラバーサル
payloads/sql_injection.txtContent Provider の SQLi
payloads/xss_payloads.txtWebView の XSS
payloads/xxe_payloads.txtアプリ内の XML パーサー

サンプルの索引

サンプルシナリオ
examples/new_assessment.md新しいターゲット向けの開始設計図
examples/data_storage_investigation.mdローカルの機密データの列挙
examples/auth_bypass.md生体認証/セッション/JWT のバイパス

参考資料の索引

ドキュメント対象範囲
references/owasp_mobile_top10.mdOWASP Mobile Top 10 との対応付け
references/android_security_checklist.mdテスト用チェックリスト
references/frida_snippets.md再利用可能な Frida のワンライナー
references/troubleshooting.mdFrida/SSL/root/ADB/SQLCipher の修正方法
references/bounty_patterns_2024_2026.md2023 年以降のバウンティ TTP(ディープリンクの乗っ取り/App-Links のバイパス、WebView のディープリンク XSS、保護されていないブロードキャストレシーバーからの情報漏えい)

チェックリスト

ファイル目的
checklists/owasp_mastg_full.mdMASTG 準拠の完全な確認
checklists/quick_wins.md脆弱性の迅速な一斉チェック
checklists/pre_engagement.mdセットアップの確認
checklists/report_items.mdレポートの完全性

テンプレート

テンプレート目的
templates/finding_template.md個別の指摘事項のドキュメント
templates/executive_summary.md経営層向けサマリー
templates/technical_report.md技術レポート全文
templates/remediation_guide.md開発者向けの修正

MCP ツールリファレンス

デバイス操作
ツール目的
get_screen_state()現在の画面/UI ツリー
tap_element(x,y) / long_press(x,y)タップ/長押し
input_text(text)フォーカス中のフィールドに入力
press_key(keycode)BACK=4 HOME=3 ENTER=66
swipe(x1,y1,x2,y2)スクロール、パターンロック解除
Frida 計装
ツール目的
frida_spawn(pkg) / frida_attach(pkg)起動またはアタッチ
frida_run_script(pid, script)JS フックを読み込み
frida_bypass_ssl(pid) / frida_bypass_root(pid)汎用バイパス
frida_hook_method(pid, class, method)単一メソッドをトレース
frida_trace_crypto(pid) / frida_dump_credentials(pid)定型トレース
frida_enumerate_classes(pid, pattern)難読化されたクラスを特定
frida_memory_search(pid, pattern)プロセスメモリ内のシークレット/キーを検索
ネットワーク
ツール目的
setup_proxy(device, host, port) / clear_proxy(device)プロキシの設定
install_ca_cert(device, path)Burp CA を信頼(システムストア)
capture_traffic_start(pkg) / capture_traffic_stop()PCAP
データ抽出
ツール目的
dump_databases(pkg) / dump_shared_prefs(pkg)SQLite と設定
dump_internal_storage(pkg) / dump_external_storage(pkg)ファイル
get_logcat(pkg)パッケージでフィルタリングしたログ
コンポーネント
ツール目的
list_exported_components(pkg)攻撃対象領域
launch_activity(pkg, activity, extras, data_uri)ディープリンク/インテント
send_broadcast(action, extras)ブロードキャストインジェクション
start_service(pkg, service, extras)サービスの悪用
query_content_provider(uri)プロバイダーの SQLi/情報漏えい
fuzz_intent_extra(pkg, comp, key, payloads)自動ファジング
アプリ管理
ツール目的
install_apk(path) / uninstall_app(pkg)デプロイ/削除
clear_app_data(pkg)初期状態にする
get_app_info(pkg)メタデータ、権限、SDK
list_installed_apps() / pull_apk(pkg)検出/抽出

Frida スクリプトライブラリ(scripts/)

ssl_pinning_bypass.js、root_bypass.js、crypto_hooks.js、credential_hooks.js、network_hooks.js、biometric_bypass.js、anti_tampering_bypass.js、intent_monitor.js、webview_hooks.js、dynamic_dex_hooks.js、keystore_hooks.js、method_tracer.js。

ツール

ツール目的インストール
ADBデバイス通信apt install adb(Android SDK platform-tools)
Frida / frida-tools動的計装pip install frida-tools(≥16.4)
Objectionモバイル探索pip install objection
apktoolAPK の逆コンパイルapt install apktool(≥2.9)
jadxJava の逆コンパイルgithub.com/skylot/jadx releases(≥1.5)
Burp Suite通信の傍受portswigger.net
Android Studioエミュレーター、SDKdeveloper.android.com

セットアップスクリプト:setup/setup_pentest_env.sh、setup/setup_physical_device.sh、setup/setup_emulator.py、setup/frida_server_manager.py、setup/burp_cert_installer.sh、setup/check_environment.py。

想定される MCP サーバー:android-pentest(Android Dynamic MCP)、mobile-mcp(UI 用の mobile-next)。~/.claude/mcp.json で設定してください。

関連リソース

Last Validated

2026-04 — minimum versions: Frida ≥16.4, apktool ≥2.9, jadx ≥1.5, Android platform-tools ≥35.

コメント