mcpField
I
intercepting-mobile-traffic-with-burpsuite

intercepting-mobile-traffic-with-burpsuite

github.com/mukul975セキュリティ35.2k102 回インストール8 週間前に更新
リポジトリ

intercepting-mobile-traffic-with-burpsuite について

モバイルアプリのペネトレーションテスト担当者向けに、Burp Suite で通信を傍受するスキルです。Android と iOS のプロキシ設定、アプリとバックエンド間の HTTP 通信分析、証明書の信頼設定とピンニング、API の手動テストを扱い、許可されたテストを対象とします。

主な機能

  1. 01Burp Suite プロキシリスナーの設定
  2. 02Android と iOS のプロキシ設定
  3. 03Burp CA 証明書のインストール
  4. 04リクエスト、レスポンス、機密データの分析
  5. 05Repeater による API の手動テスト
  6. 06証明書ピンニングへの対応

活用シーン

  1. 01モバイル API の認証と認可の確認
  2. 02通信中の機密データ漏えいの発見
  3. 03証明書ピンニング実装の評価
  4. 04API のインジェクションとアクセス制御のテスト

インストール

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

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill intercepting-mobile-traffic-with-burpsuite

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

同梱ファイル

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

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

詳細

Burp Suite でモバイルトラフィックを傍受する

使用する場面

次の場合にこのスキルを使用します。

  • 認証、認可、インジェクションの脆弱性について、モバイルアプリケーションの API エンドポイントをテストする場合
  • ペネトレーションテスト中に、モバイルアプリとバックエンドサーバー間で送信されるデータを分析する場合
  • 証明書ピンニングの実装と、その回避難易度を評価する場合
  • モバイルネットワークトラフィックにおける機密データの漏えいを特定する場合

テストの許可を得ていないアプリケーションからのトラフィックを傍受するために、このスキルを使用しないでください。許可のないトラフィック傍受は、コンピューター詐欺に関する法律に違反します。

前提条件

  • テスト用ワークステーションに Burp Suite Professional または Community Edition がインストールされていること
  • Burp Suite ホストと同じネットワーク上にある Android デバイス/エミュレーター、または iOS デバイス
  • 対象デバイスに Burp Suite CA 証明書がインストールされていること
  • Android 7 以降の場合:ネットワークセキュリティ設定の変更、またはシステム CA を信頼させる Magisk モジュール
  • SSL ピンニングを回避する場合:Frida + Objection、またはカスタム Frida スクリプト
  • プロキシ設定が可能な Wi-Fi ネットワーク

ワークフロー

手順 1:Burp Suite のプロキシリスナーを設定する
Burp Suite > Proxy > Options > Proxy Listeners:
- Bind to address: All interfaces (or specific IP)
- Bind to port: 8080
- Enable "Support invisible proxying"

リスナーがアクティブであることを確認し、共有ネットワーク上でのワークステーションの IP アドレスを控えておきます。

手順 2:モバイルデバイスのプロキシを設定する

Android:

Settings > Wi-Fi > [Network] > Advanced > Manual Proxy
- Host: <burp_workstation_ip>
- Port: 8080

iOS:

Settings > Wi-Fi > [Network] > Configure Proxy > Manual
- Server: <burp_workstation_ip>
- Port: 8080
手順 3:Burp Suite CA 証明書をインストールする

Android(API 24 未満):

# Export Burp CA from Proxy > Options > Import/Export CA Certificate
# Transfer to device and install via Settings > Security > Install from storage

Android(API 24 以降/Android 7 以降): API 24 以降を対象とするアプリは、デフォルトではユーザーがインストールした CA を信頼しません。次の方法があります。

# Option A: Modify app's network_security_config.xml (requires APK rebuild)
# Add to res/xml/network_security_config.xml:
# <network-security-config>
#   <debug-overrides>
#     <trust-anchors>
#       <certificates src="user" />
#     </trust-anchors>
#   </debug-overrides>
# </network-security-config>

# Option B: Install as system CA (rooted device)
openssl x509 -inform DER -in burp-ca.der -out burp-ca.pem
HASH=$(openssl x509 -inform PEM -subject_hash_old -in burp-ca.pem | head -1)
cp burp-ca.pem "$HASH.0"
adb push "$HASH.0" /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/$HASH.0

# Option C: Magisk module (MagiskTrustUserCerts)

iOS:

1. Navigate to http://<burp_ip>:8080 in Safari
2. Download Burp CA certificate
3. Settings > General > VPN & Device Management > Install profile
4. Settings > General > About > Certificate Trust Settings > Enable full trust
手順 4:トラフィックを傍受して分析する

プロキシを設定したら、対象アプリを開き、その機能を操作します。

Burp Suite > Proxy > HTTP History:キャプチャしたすべてのリクエストとレスポンスを確認します。

分析する主な項目:

  • 認証トークン:JWT の構造、トークンの有効期限、更新の仕組み
  • API エンドポイント:RESTful パス、GraphQL クエリ、パラメータのパターン
  • 転送中の機密データ:PII、認証情報、財務データ
  • レスポンスヘッダー:セキュリティヘッダー(HSTS、CSP、X-Frame-Options)
  • エラーレスポンス:スタックトレース、デバッグ情報、内部パス
手順 5:Burp Repeater を使って API の脆弱性をテストする

傍受したリクエストを Repeater に転送し、手動でテストします。

Right-click request > Send to Repeater

Test categories:
- Authentication bypass: Remove/modify auth tokens
- IDOR: Modify user IDs, object references
- Injection: SQL injection, NoSQL injection in parameters
- Rate limiting: Rapid request replay for brute force assessment
- Business logic: Modify prices, quantities, permissions in requests
手順 6:Burp Scanner でテストを自動化する
Right-click request > Do active scan (Professional only)

Scanner checks:
- SQL injection (error-based, blind, time-based)
- XSS (reflected, stored)
- Command injection
- Path traversal
- XML/JSON injection
- Authentication flaws
手順 7:証明書ピンニングに対処する

証明書ピンニングが原因でトラフィックを確認できない場合:

# Frida-based bypass (generic)
frida -U -f com.target.app -l ssl-pinning-bypass.js

# Objection bypass
objection --gadget com.target.app explore
ios sslpinning disable  # or
android sslpinning disable

主な概念

用語定義
MITM プロキシ暗号化されたトラフィックを検査するために TLS 接続を終端し、再確立する中間者プロキシ
証明書ピンニングOS の信頼ストアに加え、受け入れるサーバー証明書を制限するクライアント側の検証
ネットワークセキュリティ設定アプリの信頼アンカー、平文トラフィックポリシー、証明書ピンニングを制御する Android XML 設定
透過プロキシCONNECT リクエストを送信しない、プロキシを認識しないクライアントを処理する Burp の機能
IDOR安全でない直接オブジェクト参照。認可チェックを経ずに識別子を操作してリソースにアクセスすること

ツールとシステム

  • Burp Suite Professional:アクティブスキャナーを備えた、フル機能の Web アプリケーションセキュリティテスト用プロキシ
  • Burp Suite Community:手動傍受と基本ツールを備えた無料版
  • Frida:実行時の SSL ピンニング回避に使用する動的計装ツール
  • mitmproxy:プログラムによるトラフィック分析に対応する、Burp Suite のオープンソース代替ツール
  • Charles Proxy:モバイル向けの証明書インストールに対応する代替 HTTP プロキシ

よくある落とし穴

  • Android 7+ の CA 信頼:ユーザーがインストールした証明書は、API 24+ を対象とするアプリでは信頼されません。システム CA としてインストールするか、アプリを変更する必要があります。
  • 証明書の透明性:一部のアプリは、中間者攻撃を検出するために証明書の透明性ログを使用します。アプリで CT が強制されているか確認してください。
  • HTTP 以外のプロトコル:Burp Suite が処理できるのは HTTP/HTTPS のみです。WebSocket、MQTT、gRPC、または独自のバイナリプロトコルには Wireshark を使用してください。
  • VPN ベースのアプリ:VPN トンネルを使用するアプリは、デバイスのプロキシ設定を迂回します。トラフィックをリダイレクトするには、root 化されたデバイスで iptables ルールが必要になる場合があります。

コメント