技術的に新しい内容が含まれている訳ではなく、初歩的な内容です
クライアントからProxyサーバー向け通信をWiresharkで解析する際のフィルタリング方法を紹介する
・Proxy設定したが想定通り通信できていないため原因究明したい場合
・Proxyサーバー経由での通信内容を確認したい場合(アクセスログ解析)
Wiresharkでの解析手順
- CONNECT Methodのみを表示して解析したい宛先通信を特定する
- 該当通信の送信元ポート番号を確認しフィルタリングする
通信を解析する際に有効なWiresharkフィルタリング
CONNECT Methodのみを表示する
(実際に流れる通信の大半であるHTTPS通信は暗号化されており内容を確認することができないため、最初にProxyサーバーへ送信するHTTP CONNECT Methodに含まれる情報を参照する)
http.request.method == CONNECT
TCP 宛先Port番号でフィルタリング
(全てのProxy通信が表示されるため、CONNECT Methodで該当通信を特定した方が解析しやい)
tcp.dstport==8080
TCP 送信元Port番号でフィルタリング
tcp.srcport==xxxxx
宛先URLでフィルタリング(「宛先FQDN:宛先ポート番号」の形式で指定)
http.request.uri=="xxx.com:443"
TCP RSTパケット(Connectionを切断している情報を確認したい場合)
tcp.flags.reset==1
Wireshark画面に宛先URLを表示する
取得したキャプチャーファイルをWiresharkで解析する際に、
どの宛先にアクセスしたか可視化するために「http.request.uri」を列に表する
- Wireshark表示画面の列(No./Time/Source/Destination/Protocol/Length/Infoが表示されているバー)を右クリック
- 列の設定
- 画面下の+ボタンで項目を追加
- 種別をCustomを選択
- フィールドにhttp.request.uriを追加
例えば、キャプチャーファイルの中からアクセス先(Request URL)の一覧を取得したい場合、
キャプチャーした画面を全選択&コピーしてExcelに張り付けした上で、
データフィルター(空白セルを表示しない)することにより追加した列にRequest URLのみを一覧表示することも可能です。
TCPストリーム番号でフィルタリング
Wireshark上で該当通信を選択した状態で、メニューから分析 > 追跡 > TCPストリーム を選択
TCP 送信元Port番号でフィルタリング(tcp.srcport==xxxxx)と同様の解析ができる
参考リンク
Download Wireshark
https://www.wireshark.org/download.html