macOS で Chrome または Firefox と Wireshark を使用してSSL を復号化する方法
50582
Created On 04/27/21 00:18 AM - Last Modified 01/03/25 15:22 PM
Objective
Chrome または Firefox で暗号化された Web ブラウジングまたはその他の WebアプリケーショントラフィックからSSLセッションキーをキャプチャし、それを使用して Wireshark でパケット キャプチャを復号化します。
Environment
- macOS 10.15以降
- Chrome 85以降、またはFirefox 81以降
- Wireshark 3.2.7 以降
- RSA、DHE、またはECDHE キー交換アルゴリズムを使用するSSL/TLSセッション。
Procedure
1. Chrome または Firefox を完全に閉じます。強制終了オプション (アプリケーション ドックの Web ブラウザのアイコンを右クリックし、Option キーを押しながら強制終了を選択) を使用して、すべてのインスタンスが閉じられていることを確認します。
2. ターミナル ウィンドウを開き、次のコマンドを使用して SSLKEYLOGFILE 環境変数を設定します。
エクスポート SSLKEYLOGFILE="/Users/$USER/sslkey.log"
| ターミナルウィンドウを閉じないでください。 |
3. Wireshark を起動し、packet capture ( パケット キャプチャ - pcap)を開始します。
4. 手順 2 で環境変数を設定するために使用したターミナル ウィンドウを使用して、Chrome または Firefox を起動します (環境変数は、その特定のターミナルセッションに対してのみ設定されます)。
Chromeの場合:
/Applications/Google\ Chromeを開きます。アプリケーション
Firefoxの場合:
/Applications/Firefox.appを開く
5. ターミナルを使用して、sslkey.log ファイルが作成されたことを確認します。
ファイル /Users/$USER/sslkey.log
ファイルが正しく作成された場合の予想される出力は次のようになります。
/Users/user1/sslkey.log: ASCIIテキスト
6. テスト対象の Web サイトまたは Webアプリケーションを参照し、キャプチャする必要があるすべてのアクションを実行します。
この例では、EICAR の安全なサイトからマルウェアテスト ファイルをダウンロードします。
7. Wireshark でアクティビティが適切に収集されたことを確認し、キャプチャを停止します。
8. Wireshark で [ 設定 > プロトコル > TLS ] に移動します。 (Pre)-Master-Secret ログ ファイル名の下で、手順 5 で作成した sslkey.log ファイルを選択し、 [Ok]をクリックします。
9. 復号化されたpacket capture ( パケット キャプチャ - pcap)が Wireshark に表示されます。
10. (オプション) HTTPストリームに従って、復号化されたコンテンツを視覚化します。
注 1 : MAC OS または Chrome が更新されると手順が変更される場合があります。
注 2:この記事は情報提供のみを目的として書かれています。Palo Palo Alto Networks はサードパーティのオペレーティング システムをサポートしていません。
Additional Information
tsharkを使用してパケットを復号化してエクスポートする
現在、Wireshark から復号化されたパケット キャプチャを PCAP 形式でエクスポートする方法はありませんが、このタスクは Wireshark のコマンド ライン版である tshark を使用して実行できます。これにより、復号化されたデータを抽出して保存できます。
-
(Pre)-Master-Secret キーが利用可能であることを確認します。
-
Run
tsharkwith the TLS key log and appropriate decryption settings:tshark -r original.pcap -o tls.keylog_file:/path/to/your/tls_keys.log -o tls.desegment_ssl_records:TRUE -o tls.desegment_ssl_application_data:TRUE -w decrypted.pcap-r original.pcap: Your original PCAP file with encrypted TLS packets.-o tls.keylog_file: Path to your TLS key log file.-o tls.desegment_ssl_records: Ensures proper segmentation of SSL/TLS records.-o tls.desegment_ssl_application_data: Ensures the SSL/TLS application data is properly reassembled.
The
-w decrypted.pcapflag will write the decrypted packets to a new output file.