乳母レベルのチュートリアル シリーズ「Blast Liver Tidying」 - Charles Packet Grabber アーティファクト チュートリアルで遊ぶ (6) - Charles Android Phone パケット キャプチャの秘密

1 はじめに

Fiddler と同様に、Charles はさまざまなブラウザーから送信された HTTP リクエストをインターセプトできるだけでなく、さまざまなスマートフォンから送信された HTTP/HTTPS リクエストもインターセプトできます。

Charles は、Android や Windows Phone などのデバイスからの HTTP/HTTPS リクエストをインターセプトすることもできます。

今日、ホン兄弟は、チャールズが Android モバイル端末から送信された HTTP/HTTPS リクエストをどのように傍受するかを説明し、共有します。

2. 環境の準備

Charles が携帯電話のパケット キャプチャを実装したい場合は、まず次の 3 つの条件を満たす必要があります。

(1) Charles パケット キャプチャ ツールがコンピュータにインストールされている。

(2) Charles がインストールされたコンピュータは携帯電話と同じネットワーク内にあり、携帯電話ネットワーク プロキシが Charles に設定されている必要があり、携帯電話がデータを送信する場合は、Charles サービス層を経由する必要があります。

(3) Charles で HTTPS のキャプチャを設定します。

1.Honggeの環境はWindows 10バージョン64ビットシステムです。以下に示すように:

 インターフェイス自動テストを学習したい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体でナンバー 1 のインターフェイス自動テスト チュートリアルであると言えます。同時に、オンラインの数はユーザーが 1,000 人に達し、メモを収集して使用することができます。各種マスターの技術交流: 798478386    

【更新】B局が教えるPythonインターフェースの自動テストの最も詳しい実践チュートリアル集(実戦最新版)_哔哩哔哩_bilibili 【更新】Pythonの自動テストの最も詳細な実践チュートリアル集B局が教えるインターフェース(実戦編) 最新版)には以下の動画が合計200本あります: 1. 【インターフェース自動化】ソフトウェアテストの市場状況とテスターの能力基準。, 2. [インターフェイスの自動化] Requests ライブラリとその基礎となるメソッド呼び出しロジックに精通した、3. [インターフェイスの自動化] インターフェイスの自動化戦闘と正規表現と JsonPath エクストラクターの適用など。さらにエキサイティングなビデオについては、注目してください。 UPアカウント。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a 

2. Yeshen シミュレーターの Android バージョンは 5.1.1 です。以下に示すように:

3. 一般的なアイデアの手順

1. チャールズ証明書をコンピュータにローカルにインストールします

2. コンピュータcharlesのIPとポート番号を確認します。

3. 携帯電話はチャールズに接続し、単純な http を取得します。

4.チャールズはSSLプロキシ設定を設定します

5. 携帯電話にチャールズ証明書をインストールする

4. Charles の CA 証明書をインストールする必要があるのはなぜですか?

1) まず、いくつかの概念的なことを明確にします。

a) https は、簡単に言うと http の安全版であり、ハイパーテキスト転送プロトコルである http は平文でデータを送信しますが、https は安全な ssl 暗号化通信プロトコルであり、https=http+ssl と考えることができます。

b) https を使用するサーバーは、サーバーの使用の種類を証明するために CA に証明書を申請する必要があります。証明書は、対応するサーバーにのみ使用される固有のものです。クライアントがサーバーが安全でアクセスやトランザクションなどの操作を実行できるかどうかを認識したい場合は、サーバーを検証する必要があります。

次の図は、クライアントからサーバーへの検証プロセスを示しています。

c) ssl 証明書は ssl プロトコルに従い、クライアントとサーバーの間に ssl 安全なチャネルを確立します。通常、ssl 証明書はサーバーの身元を確認した後にクライアントに発行されます。

d) ssl テクノロジーはすべての主要なブラウザーと web サーバー プログラムで確立されているため、サーバー証明書をインストールすることによってのみ ssl プロトコルをアクティブにすることができるため、証明書を信頼することは、クライアントがホスト (サーバー) を信頼することと同じになります。

次の図は、クライアントとサーバー間の暗号化通信のプロセスを示しています。

2) 上記の単純な合理化の後、Charles を使用してパケットをキャプチャするときに証明書をインストールする必要があるのはこのためです。SSL デジタル証明書の秘密キーを使用して、暗号化された情報を復号化できます。これは Charles に表示されますが、Charlesつまり、クライアントが実際に Charles の CA 証明書をインストールし、次に Charles がサーバーの CA 証明書をインストールするという特別な場所があります。実際、プロセスは同じです。

5. Android携帯電話のパケットキャプチャ設定

5.1 Charles PC の http 設定

http はデフォルトで設定されています。デフォルトのインストール後に設定されていない場合は、自分で設定します。デフォルトのポート番号は「8888」です。

Charles 構成: これはプロキシ機能を有効にするためのもので、具体的な手順は次のとおりです。

1. Charles を起動し、「プロキシ --> プロキシ設定」をクリックし、プロキシ設定にポート (8888) を入力し、「透過的 HTTP プロキシを有効にする」にチェックを入れて、最後に「OK」をクリックします。以下に示すように:

2. Charles を実行しているコンピュータの IP アドレスを表示するには、次の図に示すように、コマンド ラインで ipconfig を実行するか、ネットワーク構成を直接表示します。

 

 

3. 現在インストールされている Charles の IP アドレスが一致しているかどうかを確認できます。Charles 上の Charles の IP とポートを直接確認し、[ヘルプ]-->[SSL プロキシ] をクリックして、[Charles ルート証明書をインストールする] をクリックします。以下に示すように、「モバイル デバイスまたはリモート ブラウザ」:

5.2Charles PC側SSL(https)設定

コンピューターまたはモバイル端末が Https パッケージを取得するかどうかに関係なく、使用する前に対応する証明書をインストールする必要があります。具体的な操作手順は以下の通りです。

1. 以下の図に示すように、charles を開き、「ヘルプ」-->「SSL プロキシ」-->「Charles ルート証明書のインストール」をクリックして証明書をインストールします。

2. 次の図に示すように、[Charles root Certificate のインストール] をクリックした後、[証明書のインストール] をクリックします。

3. 次の図に示すように、[証明書のインストール] をクリックした後、保存場所として [ローカル コンピューター] を選択し、[次へ] をクリックします。

4. 証明書の保存場所として、「すべての証明書を次のストレージに置く」を選択し、証明書ストレージの後に「参照」をクリックし、証明書ストレージとして「信頼されたルート証明機関」を選択して、「OK」をクリックします。下の図:

5. 次の図に示すように、[次へ] をクリックします。

6. 「完了」をクリックすると、インポートが成功したことを示すメッセージが表示されます。以下に示すように:

7. [プロキシ] > [SSL プロキシ設定] をクリックします。以下に示すように:

8. 次のようにインターフェイスを開き、私と同じようにします。*;443 がない場合は、追加を押してホスト: *、ポート: 443 を手動で追加します。以下に示すように:

このようにして、PC 側で http および https タイプのパッケージを取得できます。次に、Android スマートフォン側でプロキシを構成します。

5.3 Android スマートフォンの設定

このセクションはすべての Android デバイスに適用されます。Yeshenシミュレータを例に説明しますが、他のブランドのシミュレータや実​​際の携帯電話の操作方法も同様です。具体的な操作手順は以下の通りです。

1. 携帯電話と Charles が同じローカル エリア ネットワーク内にあることを確認した後、Android 携帯電話の設定オプションに移動し、Yeshen シミュレータ携帯電話に現在接続されている WLAN を見つけます (一部の Android 携帯電話では、以下に示すように、右側の矢印をクリックします。一部の Android 携帯電話では長押しするとダイアログ ボックスが表示されます)。

2. Wi-Fi 信号が表示されたら、信号を押し続けると、ネットワークを変更するためのポップアップ ウィンドウが表示されます。以下に示すように:

3. 「ネットワークの変更」をクリックし、詳細オプションを選択し、詳細オプションを開き、プロキシを手動に設定し、プロキシ サーバーのホスト名としてコンピュータの IP を入力し、プロキシ サーバーのリスニング ポートとしてポート番号を入力します。ホストパケットキャプチャツール。以下に示すように:

4. [保存] をクリックしてプロキシ設定を正常に完了します。以下に示すように:

 

5. 次の図に示すように、コンピュータにプロキシを許可するプロンプトが表示され、「許可」をクリックします。

 

これで、Android スマートフォンのネットワーク プロキシ設定は終わりです。Android エミュレータの他のモデルと実際のスマートフォンの設定は似ています。よくわからない場合は、Baidu を参照してください。ここに行くということは、すでに http の携帯電話パッケージを入手できることを意味します。

5.4 Charles をテストして、携帯電話から送信された HTTP をキャプチャする

1. 携帯電話でブラウザを開き、ブラウザにリンク http://open.vipexam.org を入力します。Zhongke VIPExam Exam Learning Resource Database Web サイトでは、HTTPS プロトコルではなく HTTP プロトコルが使用されています。Fiddler が HTTP パケットをキャプチャしたかどうかを確認してください。以下に示すように:

 

2. 携帯電話で APP を開き、APP でいくつかの操作を実行し、Fiddler が HTTP パケットをキャプチャできるかどうかを確認します。以下に示すように:

 

HTTP パッケージをキャッチできない場合は、Windows ファイアウォールに問題がある可能性があります。コントロール パネルでファイアウォールを閉じてから、もう一度試してください。

5.5 携帯電話から送信された HTTPS をキャプチャするための Fiddler をテストする

1. 携帯電話でブラウザを開き、ブラウザに HTTPS プロトコルを入力し、Charles が HTTPS データ パケットをキャプチャしたかどうかを確認します。証明書のセキュリティ警告エラーが報告されており、キャプチャできません。そのため、証明書をインストールする必要があります。その理由は、PC 側の Web ページ パッケージをキャプチャするときにホン兄弟がすでに述べているため、ここでは詳しく説明しません。以下に示すように:

 2. 携帯電話で APP を開き、APP でいくつかの操作を実行し、Fiddler が HTTPS パケットをキャプチャできるかどうかを確認します。次の図に示すように、Unknown が再び表示されました。

この時点で、携帯電話上の HTTPS データを取得したい場合は、構成証明書を返す必要があることがわかりました。証明書について尋ねる必要はありません。証明書は Charles によって発行されたものです。

5.6 Android 携帯電話構成証明書

ホン兄弟の前回のテストを通じて、Android 携帯電話のデータ パケットをキャプチャするときは、Web 端末と同じであり、証明書を構成する必要があることがわかりました。そうしないと、パケット キャプチャを正常に実行できません。Charles のプロキシ サービスは以前に Android 携帯電話に設定されていたため、IP+ポート経由で Charles にアクセスして、対応する証明書をダウンロードできるようになりました。具体的な操作手順は以下の通りです。

1. Android スマートフォンで (内蔵) ブラウザを開き、「http://chls.pro/ssl」 と入力して証明書をダウンロードします。予期せぬことが起こらなければ、次のインターフェイスが表示されます。

 

2. 次の図に示すように、証明書に CharlesRoot という名前を付け、[OK] をクリックします。

 

3. [OK] をクリックした後、資格情報ストアのパスワードを入力する必要があります。以下に示すように:

4. もう一度 [OK] をクリックすると、ロック画面のパスワードを設定する必要があるというメッセージが表示されます (注: インストールするファイルを選択した後、携帯電話のロック画面のパスワードを入力する必要があります。Android では証明書をインストールするにはロック画面のパスワードが必要です)。 、以下の図に示すように:

5. 「OK」をクリックします。必要に応じて携帯電話のパスワードを設定し、自分で設定し、パスワードを覚えておくだけで済みます。最後に、次の図に示すように、削除するために System-Security-Password に移動する必要はありません。

6. ロック画面のパスワードを入力すると、証明書がインストールされたことを示すメッセージが表示されます。証明書が正常にインストールされた後、携帯電話システムがパスワードまたはロック画面パターンを設定していない場合は、ロックを設定するように求めるメッセージが表示されます。画面パターンやパスワードを設定します。以下に示すように:

 

 

7. 証明書がインストールされたら、信頼できる証明書を確認します。次の図に示すように、特定の場所は [設定 ---> セキュリティ ---> 信頼できる資格情報 ---> ユーザー] にあります。

6. Android キャプチャを開始します

前の構成により、Android フォンの https パッケージのキャプチャを開始できるようになりました。

1. 携帯電話でブラウザを開き、ブラウザに HTTPS プロトコルを使用する Web サイト (例: Baidu) を入力します。以下に示すように:

 

7. まとめ

 Charles と Fiddler のように、複数の証明書を携帯電話にインストールできますが、インストールされた各証明書には IP アドレスが設定されるため、インストールされた証明書とコンピュータの IP は 1 対 1 に対応し、現在の証明書はコンピュータを使用している場合、コンピュータを交換すると証明書は使用できなくなり、交換したコンピュータと同じ IP で証明書を再インストールする必要があります。

ちなみに Android 7.0 のバージョンについては Fiddler で詳しく紹介していますが、ツールも変更されており原理も同様なのでここでは紹介しません。なお、ここで紹介する設定は基本的に Android 携帯電話をキャプチャするための Fiddler の設定と同じですが、諸事情により再度ここで繰り返します。それで間に合わせてください。

 

 

おすすめ

転載: blog.csdn.net/m0_73409141/article/details/131811162