広告

【Wireshark/Tshark】ブラウザのTLS通信をキャプチャ

ツール他

当サイトではアフィリエイト広告を利用しています。

Wiresharkの設定(ブラウザのTLS通信をキャプチャ)

次に、ブラウザの通信をキャプチャしてみます。
最近では多くのサイトへの通信は、暗号化(SSLというかTLS)されています。
ですので、Wiresharkで確認しても暗号化されているため、中身を見ることができません。

試しに自分のサーバーとの通信をキャプチャしてみました。
この通り、暗号化されているのが分かります。

Encrpyted Application Data: xxx

そこでブラウザの通信を復号化してみます。

ブラウザはGoogle Chromeを使用しました。
本設定を行うとブラウザ上の、暗号化されている通信を復号化するための情報を、ファイルとして出力します。
Windowsの環境変数へ設定するやり方もありますが、毎回このファイルを出力すると、セキュリティ的にも良くないので、専用のショートカットを用意し、必要な時だけ起動するようにしましょう。

Chromeのexeファイルを探します。
私の環境では以下にありました。

C:\Program Files\Google\Chrome\Application\chrome.exe

chrome.exeファイルを右クリックし、「送る→デスクトップ(ショートカットを作成)」をクリックします。

ショートカットが作成されました。
右クリック→プロパティを開きます。

「リンク先」の後に、復号化のためのファイルを出力する場所を指定します。
任意の場所を指定してください。

ショートカットをダブルクリックで起動すると、ショートカットで指定した場所にファイルが出力されます。

参考までにですが、Firefoxでも同様のことができます。
firefox.batファイルを作成し、中身を以下にします。
バッチファイルを起動すると、Firefoxが起動され、所定の場所にファイルが出力されます。

set SSLKEYLOGFILE=D:\ssl.txt
"C:\Program Files\Mozilla Firefox\firefox.exe"

引き続きWiresharkの設定を行います。
Wiresharkの「編集→設定」をクリックします。

Protocols→TLSをクリックします。
「(Pre)-Master-Secret log filename」に、先程ブラウザの設定で出力したファイルのパスを指定します。

今回の件、ググるとここまでは、この手順を書いている記事があります。
実際、この時点でWiresharkの動作確認を行うと、TLS通信が復号化されていることが確認できます。
ただし、時間が経つと復号化ができなくなる事象が発生します。

引き続き、以下の手順を行う必要があります。
Protocols→TCPをクリックします。
「Reassemble out-of-order segments」にチェックを入れ、「Analyze TCP sequence numbers」のチェックを外します。
(原因解決するのに時間がかかりました・・)

広告

Wiresharkで暗号化された通信内容を見てみよう

それでは、Wiresharkでキャプチャを見てみます。

Chromeは一旦すべて閉じ、必ず先にWiresharkを起動します。
この手順は重要です。手順が違うと復号化できません。

インターフェースを指定し、キャプチャを実行後、フィルタを指定します。
デフォルトではWiresharkはすべての通信を表示しますので、通信を絞ります
以下の赤枠の部分に条件(フィルタ)を指定します。

以下は、試しに私のサーバーのIPアドレスですが、通信をキャプチャしたい条件を絞りましょう。

旧サーバーのIPで、今は違います。

ip.addr == 183.90.240.XX

次に、作成したChromeのショートカットを起動します。
その上で、何らかのページを開いてみましょう。

実際に暗号化されていた通信の内容が表示できるようになりました。

Tsharkで通信内容を見てみよう

TsharkはWiresharkのCLI(コマンドライン)版です。
Tsharkは、Wiresharkと一緒にインストールされています。

まずはTsharkで、ネットワークのインターフェース一覧を表示します。
コマンドプロンプトを開き、以下のコマンドを実行します。
(exeの場所は、インストール先により異なります)

C:\Users\xx>"C:\Program Files\Wireshark\tshark.exe" -D

引数「-D」を指定すると、インターフェースの一覧の取得ができ、以下のように表示されます。
(表示内容はPCによって違います)

  1. \Device\NPF_{xxx} (ローカル エリア接続* 10)
  2. \Device\NPF_{xxx} (ローカル エリア接続* 9)
  3. \Device\NPF_{xxx} (ローカル エリア接続* 8)
  4. \Device\NPF_{xxx} (Bluetooth ネットワーク接続)
  5. \Device\NPF_{xxx} (ローカル エリア接続* 2)
  6. \Device\NPF_{xxx} (ローカル エリア接続* 1)
  7. \Device\NPF_{xxx} (Wi-Fi)
  8. \Device\NPF_{xxx} (イーサネット 2)
  9. \Device\NPF_Loopback (Adapter for loopback traffic capture)

この番号が重要になります。
私の場合、「イーサネット 2」がメインのインターフェースなので、インターフェース番号は、8になります。

次に、Tsharkで通信を確認します。
Tsharkは、Wiresharkの設定を参照しているので、Wiresharkの設定が済んでいればOKです。

コマンドプロンプトで、以下のように実行してみましょう。
※「8」という指定については、先程のインターフェースの番号になりますので、各自の番号を指定してください。

"C:\Program Files\Wireshark\tshark.exe" -i 8 -l -e text -Tfields -f "net 183.90.240.XX"

オプションの概要は以下です。

-i : インターフェースの番号を指定
-l : 各パケットの後に標準出力をフラッシュ(リアルタイムで表示)
-e text -Tfields : 通信内容をテキスト表示
-f : キャプチャフィルター(Tsharkは通信内容を一時ファイルに保存しているので、特定のサーバーの通信のみ保存するように指定する)

そうすると通信の内容が、コマンドラインベースで取得できました。

今回は参考までにHTMLの中身を確認しましたが、長すぎて[truncated]と切り取られるようです。

さいごに

暗号化された通信の中身を見ることができました。

特にTsharkを使用すると、別なアプリから制御するといったこともできます。
(C#やPythonから、Tsharkを呼び出し通信の内容によって処理を行うなど)

自作アプリでブラウザの通信をキャプチャする事例は、以下をご覧ください。

他にも私のブログで、ツールについて解説している記事がありますのでご覧ください。

OSWindowsツールツール他
広告

個人開発

千草 @chigusaweb

現役のITエンジニア。 気ままにコードを書いたり技術情報を発信しています。 Webアプリ/Windows・Macアプリ/モバイルアプリなど。 (Java, PHP, Javascript, Swift, Python, C#, 他) 個人開発:Clibor, Quipha, TXT-Crypter, 符計算特訓, チグサツール Kindle本: Laravel9 実践入門, 他

クリップボード履歴

Clibor

Windows

Cliborはシンプルで高機能なクリップボード履歴ソフトです。 また普段よく使うワードを定型文として登録し、いつでもクリップボードに保存することができます。高度なテキスト整形・FIFOモード・ホットキーに対応。

クリップボード履歴

Windows版Cliborの利便性を、そのままMacでも。 定型文登録、高度なテキスト整形、FIFOモードなど、便利なクリップボード履歴機能を利用できます。macOS最新のTahoeにも対応。

テキスト暗号化

テキストを暗号化してURLで共有・保存できる無料サービスです。 パスフレーズを知る人だけが復号できます。登録不要、データはサーバーに保存されません。 Notionでも利用できます。

学習

Quipha

Web / iOS

自分だけの問題集や問題を作成し、クイズを行い、学習に活用することができるアプリです。 例えば、学校の授業、語学学習、IT資格やその他の資格など多彩な分野での学習を支援します。 いつでも、どこでも、あなたの学習をサポート。

ツール

日常の「ちょっとした効率化」をサポートするWeb便利ツール集。 テキスト・データ処理から最新のAI連携まで、日々のちょっとした手間でググりがちなユーティリティを1つの場所に集約。

麻雀

麻雀の符計算をひたすら特訓しマスターしましょう。 初心者の方はもちろん、もっと速く計算したい方にも役立ちます。 5万対局以上の実践から問題を収録。

コメント

タイトルとURLをコピーしました