LANプロトコルトレーニング > WIRESHARK(ワイアシャーク)

WIRESHARK(ワイアシャーク)

EtherealがWireshark(ワイアシャーク)という名前になりました。
Etherealの頃からずっとお世話になっています。便利なツールなので、使いこなしてみてください。

Wiresharkのちょっと高度な(?)使い方、Wireshark TIPSも書いています。右のメニューからどうぞ。

目次

  1. ダウンロード
  2. インストール
  3. 初期設定を変更しよう
  4. キャプチャスタート方法
  5. フィルタ
  6. フローグラフ
  7. リンク

1.ダウンロード

http://www.wireshark.org/ のGet Wireshark Now をクリック。


SOURCEFORGE.NETにつながります。ブラウザにセキュリティのポップアップが出る場合は、ファイルのダウンロードを選択して先に進んでください。
InternetExplorer7の場合、以下のようにブラウザ上部にポップアップバーが表示されます。これを右クリックし、ファイルのダウンロードを選択してください。

2.インストール

ダウンロードしたファイルをダブルクリックしてインストールを開始してください。


セキュリティの警告が出ますが、『実行』を選択して進みます。

Wiresharkコンポーネントの選択画面では、全部インストールするようにします。(不要な物はインストールしなくてもいいのですが、いつか役に立つかもしれません。)デフォルト設定では、Plugins / Extensionsの下のMate - Meta Analysis and Tracing Engine が選択されていませんでしたので、これもチェックしておきました。
Nextをクリック。


適当に選んで、Nextをクリック。


インストール先を選択して、Next。


WinPcapをインストールする場合は、『Install WinPcap』をチェック。同じバージョンのWinPcapがすでにインストールされている場合は、チェックする必要はありません。よくわからない場合は、とりあえずチェックしておいて、先に進むと途中で『もうインストールされているよ』のメッセージが表示されて、どうにでもできます。
Servicesのチェックボックスは、チェックしたことがありません。
Installをクリック。


インストールが始まります。


既にWinPcapがインストールされているらしい。
同じバージョンなので、上書きする必要も無いので『キャンセル』をクリックして先に進む。


インストール完了。Nextをクリック。


Finishをクリック。


動くか、ためしに起動してください。
 スタート > すべてのプログラム > Wireshark > Wireshark

3.初期設定を変更しよう

初期設定を自分の環境に合わせることで、Wiresharkが使いやすくなります。(たいした設定ではありませんが。)以下では、私の設定を紹介します。

Wiresharkを起動します。


3−1.Edit > Preference
3−1−1.Capture を選択。
    Default interfaceをプルダウンし、キャプチャでよく使用するインタフェースを選びます。Wiresharkを起動したとき、ここで選んだインタフェースがデフォルトのキャプチャインタフェースとなるため、毎回インタフェースを選ぶ必要がなくなります。チェックボックスは、すべてチェックします。
   

3−1−2.Name Resolution を選択。
   右側のチェックボックスを全部はずしておきます。TCPポート番号やMACアドレスを数字だけではなく名前でも表示してくれる機能があります。私の場合、あまりこの機能がありがたいと思ったことは無いので全部OFFにします。また、この機能をONにして、大きなキャプチャデータを開こうとすると、時間がかかったような気がします。
   

3−1−3.Protocols > TCP を選択。
   Allow subdissector to reassemble TCP streamsのチェックを入れます。
   
この設定を有効にすることで、大きなデータが複数のTCPセグメントに分割されているとき、わかりやすく表示してくれます。例として一つあげておきます。
有効にしている例

上の例は、一番下のHTTPレスポンスは実は、1回で送られているわけではなく、複数のTCPセグメントに分割されて送られています。上のサマリ表示のTCP segment of a reassembled PDUは、「分割されたデータの一つです」といっているようなものです。確認のために、サマリ表示の一番下のHTTPをクリックします。
詳細表示には、以下のように表示されます。

クリックしたHTTPのレスポンスは、5フレーム目、6フレーム目......のフレームから形成されていることがわかります。結果、どこからどこまでがHTTPレスポンスなのかがわかるのです。(TCPとHTTPのレイヤの間にReassembledというレイヤがあるわけではありません。)

無効にしている例

無効にすると、どこからどこまでがHTTPのレスポンスなのかわかりにくくなります。

説明を読むだけでは、わかりにくいでしょうから、10Kbyteぐらいある画像データでもGETして、設定による表示の違いを確認して下さい。


変更したら、Applyをクリックしてた後に、一度Wiresharkを再起動してください。

4.キャプチャスタート方法

キャプチャを開始する方法は、いくつかありますが、私はあまりカーソルを使いたくないので、Ctrl+K でCapture Option 画面を表示して、そのままエンターです。

Ctrl+Kで、以下の画面になります。 
先ほどのDefault interfaceの設定で指定したインタフェースが以下の画面のInterfaceに表示されていますので、このままエンターキー(以下の画面のStartをクリックしたのと同じ)を押せば、キャプチャスタートとなります。

5.フィルタ

キャプチャしたデータの中から目的のデータだけを表示させるには、ディスプレイフィルタを使います。(キャプチャの段階でフィルタするには、キャプチャフィルタを使用します。私は、ディスプレイフィルタしか使ったことが無いので、ここでは、ディスプレイフィルタについて説明します。)

Wiresharkの上のほうに以下のような小窓があります。

この中に、ディスプレイフィルタを定義します。

5−1.IPアドレスでフィルタ

以下のように多くのIPアドレスが見えているときに、アドレス(192.168.11.15)だけのデータを見たいときには、IPアドレスでのフィルタが可能です。



以下のように、ip.addr == 192.168.11.15 を小窓に入力します。
このように指定することで、あて先または送信元が192.168.11.15のデータのみを表示します。


あて先IPアドレスでフィルタしたいときは、ip.dst == x.x.x.xを指定します。
送信元IPアドレスでフィルタしたいときは、ip.src == x.x.x.xを指定します。

5−2.TCPポート番号でフィルタ

tcpのポート番号でフィルタするときは、tcp.port == 80 のように指定します。
あて先ポート番号でフィルタするときは、tcp.dstport == xxxxのように指定します。
送信元ポート番号なら、tcp.srcport == xxxx

5−3.プロトコルでフィルタ

httpとかtelnetのようなプロトコル名でフィルタすることもできます。
サマリ表示のProtocolフィールドにHTTPとかtelnetの表示のあるデータのみが抽出されます。
tcp.port == 80とかtcp.port == 23 との違いは、TCP 3way-handshakeやTCP segment of a reassembled PDUのデータが抽出されないことです。

5−4.複数条件の指定

複数の条件でフィルタしたいときには、andやorを使います。
以下の例は、ソースまたはあて先のIPアドレスが192.168.11.2でありかつ、ソースまたはあて先のTCPポート番号が80番の通信を抽出します。

5−5.Follow TCP Stream

特定のTCP通信だけを抽出するフィルタを簡単に書くには、Follow TCP Streamを使います。

以下のように、サマリ表示の中から一つのラインを右クリックし、Follow TCP Streamを選択します。


別窓が開きますが、Closeしてください。

以下のように、フィルタの小窓にはFollow TCP Streamで選択した一連のTCP通信がSYNからFIN(or RST)まで抽出されます。

5−6.右クリックで簡単フィルタ

詳細表示で特定のフィールドを右クリックすることで簡単にフィルタを設定できます。
例えば、httpのステータスコードが200番のものだけを抽出するには、HTTPステータスコードが200のラインをサマリ表示で見つけ、クリックします。


詳細画面で、目的とするフィールドを探します。今の場合、HTTPのステータスコードなので、Response Codeです。


右クリックし、Apply as Filter > Selected を選択。


フィルタ小窓は、以下のとおりとなります。


サマリ表示は、以下のとおり。HTTPステータスコードが200のラインだけが表示されています。

6.フローグラフ

シーケンスを図で表示してくれる便利な機能があります。
Statistics > Flow Graph... > OK


7.リンク

LANプロトコルトレーニング > WIRESHARK(ワイアシャーク)
WiresharkTipsMenu