パケットキャプチャ(Wireshark) | Hello, Stupid World!

Hello, Stupid World!

いろいろとメモ代わりに書いていきます。

今回はパケットキャプチャの方法についてまとめます。
使用ソフトは有名なWiresharkを使います。
Wiresharkは

こちらのSourceForgeからダウンロードしました。

http://sourceforge.jp/projects/wireshark/

最初、ダウンロードページのWin64直下のWireshark-Win64-1.10.2.exeを
ダウンロードしようとしたらできなかったので
Win64の下のall-versionsの下からダウンロードしました。

インストールは特に悩む必要も無く、nextをどんどん押していけば良いです。
wiresharkのインストールが終わると次はWinPcapを入れるかと聞かれるので
入ってない人は入れましょう。
WinPcapはWindows用パケットキャプチャのAPIです。
wiresharkはパケットキャプチャAPIの結果を見やすくしてくるアプリケーションです。
Unix系ではWinPcapではなくlibpcapというものを使います。

Wiresharkの使い方
起動するとまず、この画面がでます。(1.8.10)



キャプチャするインタフェースを選択する必要があるので
左にあるInterface Listを選択するかCaptureメニューのInterfacesを
選択しましょう。

自環境ではVMwareなどが入っているのでいろいろ出てますが
自分のキャプチャしたいインタフェースにチェックをつけてStartを押せば
キャプチャが始まります。

キャプチャが始まるとこんな感じで流れるパケットが表示されます。



パケットの種類毎に色分けされています。
この色分けの確認、変更は「View」メニューの「Coloring Rules」を
参照して下さい。
ちなみに初期設定では緑色がhttp、灰色がそれ以外のTCP、
青緑っぽいのがUDPです。

Sourceが送信元、Destinationが送信先です。

このままだと、たくさんのパケットをキャプチャしてしまい探したいもの
が埋もれてしまいます。
そこでキャプチャするパケットを絞込みます。

フィルタリングする方法は2種類あります。
一つはキャプチャフィルタ。取得するパケット自体をフィルタリングします。
もう一つはディスプレイフィルタ。取得したものの表示をフィルタリングします。

今回はディスプレイフィルタで絞り込んでみます。
画面上部にあるメニューの下のFilter欄に条件式を記述します。

記述する形式が分からなければFilterという文字をクリックすれば設定例が
出てくるので選んで編集したり真似して入力して下さい。

wire


ここではYahooとの通信のみキャプチャする設定にしてみました。
ip.addr == IPアドレスとすることで指定IPアドレスとの通信のみに絞り込めます。

他にも
ip.src == 送信元IPアドレス
ip.dst == 送信先IPアドレス
tcp.port == ポート番号(指定ポートのみ表示)
tcp.request(GETメソッドのみ表示)
tcp contains キーワード(指定キーワードを含んだもののみ表示)
などで絞込みが可能ですし、&&(and)や||(or)で複数条件を指定する
事も可能です。

目的のパケットが見つかったらダブルクリックすれば詳細が表示されます。