mcpField
I
ios-pentest

ios-pentest

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

ios-pentest について

ios-pentestは、専用の手順書と方法論ガイドを使ってiOSアプリのセキュリティ評価を進めるスキルです。アプリのバイナリやインストール済みアプリを調査するテスター向けで、偵察から報告までOWASP MASTGの活動を扱います。

主な機能

  1. 01iOS評価の各段階に対応する手順書
  2. 02SSLピンニングと脱獄検知のテスト
  3. 03キーチェーンとアプリ内ストレージの分析
  4. 04ネットワーク、認証、暗号のテスト
  5. 05iOS固有の証拠を含む構造化された調査結果

活用シーン

  1. 01IPAとインストール済みiOSアプリの評価
  2. 02キーチェーンやアプリファイル内の認証情報の調査
  3. 03HTTPS、gRPC、WebSocket通信のテスト
  4. 04OWASP MASTGとMASVS要件の確認

MCP 対応

iOSシミュレーターやデバイスのUI自動化とスクリーンショット取得にMobile MCPを使用すると記載されています。Mobile MCPサーバーの設定例も含みます。

インストール

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

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

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

同梱ファイル

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

checklists/
owasp_mastg_ios.md
examples/
initial_setup.md
keychain_dump.md
ssl_bypass_run.md
methodology/
auth_testing.md
crypto_testing.md
data_storage.md
dynamic_analysis.md
network_testing.md
recon.md
static_analysis.md
payloads/
jailbreak_detection_paths.txt
url_scheme_tests.txt
references/
bounty_patterns_2024_2026.md
frida_ios_snippets.md
ios_vulns.md
troubleshooting.md
schemas/
finding.json
scripts/
biometric_bypass.js
crypto_hooks.js
jailbreak_bypass.js
keychain_hooks.js
method_tracer.js
ssl_pinning_bypass.js
templates/
finding_report.md
workflows/
auth_testing.md
complete_assessment.md
ipa_decryption.md
jailbreak_detection_bypass.md
keychain_extraction.md

詳細

iOS モバイルアプリケーションの侵入テスト

iOS アプリのセキュリティ評価を行うためのシンプルなルーターです。OWASP MASTG の全範囲(偵察 → 静的解析 → 動的解析 → ネットワーク → ストレージ → 暗号 → 認証 → レポート作成)をカバーします。詳細な手順書は workflows/ と methodology/ にあります。必要な場合にのみ読み込んでください。

使用する場面

  • 新規の iOS アプリケーションセキュリティ評価(IPA + インストール済みアプリ)。
  • SSL ピンニング、脱獄検出、生体認証、デバッグ対策のバイパス。
  • キーチェーン/NSUserDefaults/ファイル/SQLite の抽出とトリアージ。
  • HTTPS/gRPC/WebSocket トラフィックの傍受と改ざん。
  • OWASP MASTG/MASVS のコンプライアンステスト。
  • 復号済みまたは暗号化された Mach-O バイナリの解析。

トリガーフレーズ

「pentest iOS app」、「test this IPA」、「bypass SSL pinning iPhone」、「extract keychain」、「MASTG iOS」、「iOS jailbreak bypass」、「analyze .ipa」、「test iPhone app」。

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

  • Android APK の解析 → android-pentest を使用してください。
  • バックエンドの一般的な Web API テスト → web-pentest/api-pentest を使用してください。
  • iOS のソースコードレビュー(リポジトリがある場合) → iOS 言語パックと secure-code-review を使用してください。
  • macOS デスクトップアプリの解析 → macos-pentest を使用してください。

決定木

target acquired?
├── no binary yet → workflows/ipa_decryption.md
└── yes
    ├── need HTTPS visibility? → workflows/ssl_pinning_bypass.md
    ├── app exits on jailbroken device? → workflows/jailbreak_detection_bypass.md
    ├── hunting credentials/tokens? → workflows/keychain_extraction.md
    ├── testing login / biometric? → workflows/auth_testing.md
    └── full engagement → workflows/complete_assessment.md

並列実行のヒント

同時に実行します(独立した I/O で、状態を共有しません)。

  • class-dump -H App.app/App -o headers/
  • otool -L App.app/App と otool -hv App.app/App
  • strings -a App.app/App | grep ...
  • plutil -p App.app/Info.plist
  • Objection の列挙を別の spawn で実行。

順番に実行する必要があります(Frida セッション/spawn 状態を共有します)。

  • Frida の --no-pause spawn → バイパススクリプトが読み込まれるまで待機 → アプリを操作 → その後、追加のスクリプトをアタッチ。
  • Objection の ios sslpinning disable → その後、トラフィックに依存するコマンドを実行。
  • ideviceimagemounter → その後、frida-ps -U を実行。
  • キーチェーンのダンプには、インストール後にアプリを少なくとも一度起動しておく必要があります。

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

対象範囲を明確に切り分けられる場合は、サブエージェントを起動してください。

  • 静的バイナリ解析サブエージェント — 復号済みの App.app/ を渡します。class-dump、otool、strings、フレームワークの一覧取得を並列で実行し、注目すべきクラス、ハードコードされたシークレット、安全でない API の使用状況を構造化した概要として返します。
  • キーチェーン抽出サブエージェント — <bundle_id> を渡します。objection ... keychain dump --json を実行し、各エントリーをアクセシビリティ/ACL によって分類して、schemas/finding.json に従った検出事項を出力します。
  • 任意:メインエージェントが UI を操作している間、Burp をプロキシ API 経由で操作するネットワークキャプチャサブエージェント。

Frida の spawn と計測をサブエージェントに分担させてはいけません。Frida セッションはステートフルで、単一のプロセスに結び付いています。

推論に使う予算

次の場合は、拡張思考を使用してください。

  • 逆コンパイルした Objective-C/Swift(Hopper/Ghidra/IDA の出力)を解釈する場合。
  • 汎用バイパスが失敗した際に、カスタム Frida フックを設計する場合。
  • 暗号処理の流れ(鍵の由来 → 暗号 → ストレージ)を推論する場合。
  • 複数の微妙な問題が重なる場合に、MASVS の重大度をトリアージする場合。

次の場合は、拡張思考を省略してください。

  • scripts/ にある既成の Frida/Objection スクリプトを実行する場合。
  • ios keychain dump --json の出力を解析する場合(パターンマッチ)。
  • otool/class-dump の呼び出しと出力の収集。
  • ファイルのダウンロード、デバイスの列挙、SSH による取得。

マルチモーダルフック

Mobile MCP(@anthropic/mobile-mcp --ios)は、iOS シミュレーター/デバイスの UI 自動化を提供します。

  • 脱獄検出モーダル — バイパス前の警告と、バイパス後に警告が表示されなくなった状態をスクリーンショットに撮り、evidence.screenshot として保存します。
  • 生体認証プロンプト — Face ID/Touch ID のシートをキャプチャしてゲートの存在を証明し、その後、保護された画面にアクセスできたことを確認します。
  • アプリスイッチャーのスナップショット漏えい — バックグラウンド移行時に機密データが表示されているスナップショットキャッシュのエントリーをスクリーンショットに撮ります。
  • WebView 認証フロー — SSO に関する検出事項のため、ログインのリダイレクトチェーンを視覚的にキャプチャします。

~/.claude/mcp.json:

{"mcpServers": {"mobile-mcp": {"command": "npx", "args": ["-y", "@anthropic/mobile-mcp", "--ios"]}}}

構造化出力

すべての検出事項を、schemas/finding.json に準拠する JSON として出力してください。iOS 固有のフィールド:affected.bundle_id、affected.ios_version、affected.device_udid、affected.jailbroken、mastg_id、evidence.frida_pid、evidence.keychain_dump、evidence.screenshot。

ワークフロー一覧

ワークフローファイル
完全評価の手順書workflows/complete_assessment.md
SSL ピンニングのバイパスworkflows/ssl_pinning_bypass.md
ジェイルブレイク検出のバイパスworkflows/jailbreak_detection_bypass.md
キーチェーンの抽出とトリアージworkflows/keychain_extraction.md
IPA の復号/取得workflows/ipa_decryption.md
認証と生体認証のテストworkflows/auth_testing.md

方法論一覧

領域ファイル
偵察methodology/recon.md
静的解析methodology/static_analysis.md
動的解析methodology/dynamic_analysis.md
ネットワークテストmethodology/network_testing.md
データストレージmethodology/data_storage.md
暗号テストmethodology/crypto_testing.md
認証テストmethodology/auth_testing.md

ペイロード一覧

ファイル用途
payloads/jailbreak_detection_paths.txtiOS アプリがジェイルブレイクの検出時に調べる一般的なファイル/スキーム
payloads/url_scheme_tests.txtURL スキーム/ディープリンクのテストベクトル

Frida スクリプト一覧(scripts/)

スクリプト用途
ssl_pinning_bypass.js汎用 SSL/TLS ピンニングのバイパス
jailbreak_bypass.jsジェイルブレイク検出のバイパス
biometric_bypass.jsTouch ID/Face ID のバイパス
keychain_hooks.jsキーチェーン操作の監視
crypto_hooks.js暗号操作のトレース
method_tracer.js汎用 Objective-C メソッドトレーサー

参考資料一覧

ファイル用途
references/ios_vulns.mdiOS の脆弱性クラス、深刻度表、MASVS マップ
references/troubleshooting.mdFrida/ピンニング/プロキシの問題のトリアージ
references/frida_ios_snippets.md再利用可能な Frida コードスニペット
references/bounty_patterns_2024_2026.md2023年以降のバグバウンティ TTP(URL スキーム/Universal Link の乗っ取り、WebView のディープリンク XSS、キーチェーンの IAM トークンの安全性不備)
checklists/owasp_mastg_ios.mdMASTG iOS チェックリスト全体
templates/finding_report.mdMarkdown の発見事項テンプレート

例

ファイル用途
examples/initial_setup.md初回接続時の手順書
examples/ssl_bypass_run.mdピンニングバイパスの手順書
examples/keychain_dump.mdキーチェーンのダンプとトリアージの手順書

ツール

ツール用途インストール
Frida / frida-tools動的インストルメンテーションpip install frida-tools (≥ 16.6)
Objectionモバイル探索用 REPLpip install objection (≥ 1.11)
libimobiledeviceデバイス通信brew install libimobiledevice
ios-deployアプリのデプロイbrew install ios-deploy
ideviceinstallerアプリのインストール/一覧表示brew install ideviceinstaller
class-dumpObjC ヘッダーの抽出brew install class-dump
frida-ios-dumpFairPlay の復号github.com/AloneMonkey/frida-ios-dump
Burp SuiteHTTPS の傍受PortSwigger
Hopper / IDA / Ghidraバイナリのリバースエンジニアリングベンダー/GitHub
Mobile MCPUI 自動化と画面キャプチャnpx @anthropic/mobile-mcp --ios

前提条件のクイックチェック

各作業の前に実行し、ラボ環境が壊れている場合はすぐに中止します。

idevice_id -l               # at least one UDID listed
ideviceinfo | grep ProductVersion
frida-ps -U                 # frida-server reachable
objection -g <bundle_id> explore --startup-command 'ios info binary; exit'

ジェイルブレイク済みのセットアップ:OpenSSH + Frida(Sileo リポジトリ build.frida.re)+ AppSync Unified + Filza。ジェイルブレイクしていない場合の代替手段:objection patchipa で IPA にパッチを適用して Frida Gadget を注入するか、ideviceimagemounter で開発者ディスクイメージをマウントします。

最終検証

2026-04。Frida ≥ 16.6、Objection ≥ 1.11、iOS 15~17 のターゲットで検証済み。iOS 18 以降では、ジェイルブレイクの選択肢はユーザースペースのみ(Dopamine/palera1n rootless)に移行します。SSH のパスは /var/jb/usr/bin/ssh、Frida サーバーの場所は /var/jb/usr/sbin/frida-server です。

コメント