web-dev-qa-db-ja.com

Android SSLピン留めが使用されているアプリケーションのSSLトラフィックを傍受するにはどうすればよいですか?

Android SSLピン留めを使用していると思われるアプリケーションのSSLトラフィックをキャプチャしたい。

VPNトンネリングとルート証明書を使用してSSLトラフィックをキャプチャし、Chromeおよびその他のいくつかの基本的なアプリからのトラフィックをキャプチャすることができます。トラフィックをキャプチャするアプリを実行しましたが、アプリは正常に動作しますが、キャプチャアプリはCan Not Captureと表示します。

ステップバイステップガイドまたは簡単な解決策はありますか?

3
user182814

SSLピニングは、クライアント側で実装される追加のセキュリティ層であり、モバイルアプリケーションが、HTTPS接続の確立時に特定のSSL証明書のみを信頼し、デバイスのトラストストアにインストールされている証明書は信頼できません。実装はクライアント側の実装であるため、次の手法を使用して簡単にバイパスできます。

自動化されたアプローチ

  1. SSLUnpinning 2. などのXposedモジュール。
  2. FRIDA(動的インスツルメンテーションツール)- niversal SSL Pinning Bypass Script
  3. Inspeckage -Android Package Inspector

手動アプローチ

これは、SSLピニングをバイパスするための最後の少し複雑で最も信頼できるソリューションだと思います。以下は、同じことを実行する手順です。

  1. SSLピニングの実装について理解します。あなたはこれを参照することができます 中程度のブログ これは、OkHttp、Volley、Retrofitなどのさまざまなネットワークライブラリを使用したSSLピン留めの実装について説明しています。
  2. 責任のあるメソッドを分析し、SMALIコードを使用してマッピングします。

責任のあるメソッドが分析および特定されたら、次のアプローチを使用してSSLピニングをバイパスできます。

改ざんアプリケーション

  1. SMALIコードを改ざんして、SSLピン接続をバイパスします。

  2. APKToolを使用してアプリケーションを再ビルドします。

  3. アプリケーションを再署名してインストールし、トラフィックをキャプチャします。

リファレンス: https://samsclass.info/Android/codemod.html

Runtime Hooking責任のあるメソッドが特定されたら、FRIDA、JDBなどのランタイムフッカーを使用してメソッドをフックし、実装を変更します。

6
Shiv Sahni