Wireshark はオープンソースの LAN アナライザで、ネットワーク上を流れるパケットをキャプチャして、そのパケットを解析・分析するツールです。
同じくパケットキャプチャツールの tcpdump コマンドがありますが、tcpdump コマンドに関しては以下の解説を参考にしてください。
tcpdump のインストールと使い方 パケット解析をする
Wireshark をインストールする環境
以下の環境に現時点での最新版の Wireshark(64bit版)v2.6.2 をインストールします。
●環境
- OS:Windows Server 2008
- アーキテクチャ:64bit
Wiresharkの仕組み
Wireshark はネットワーク上に流れるパケットをキャプチャして分析・解析するツールです。
ネットワーク上に流れるパケットの実態は「電気信号」ですが、ネットワーク上のパケットは最終的にコンピュータに付属している NIC(LANカード)に流れ、NIC のチップセットによりデジタル信号に変換されます、フレームとして組み立てられます。
その後、このフレームは WinPcap などのパケットキャプチャドライバに渡され、Wireshark 上で表示、分析・解析ができるようになります。
NIC に大量のパケットが送信されると、NIC が処理しきれなくなることがあります。
これを「ジャバリング」もしくは「チャタリング」と言います。
Wireshark のダウンロード
Wireshark は窓の杜からダウンロードすることができます。
https://forest.watch.impress.co.jp/library/software/wireshark/
今回は 64bit版をインストールします。
「窓の杜からダウンロード」ボタンをクリックします。
「exe」ファイルをダウンロードしたらダブルクリックしてインストーラを起動します。
以下の「ユーザーアカウント制御」の画面が表示されたら「はい」ボタンをクリックします。
Wireshark のセットアップ画面が表示されたら「Next」ボタンをクリックします。
「License Agreement」画面が表示されたら「I Agree」ボタンをクリックします。
インストールするコンポーネントを選択する画面が表示されたら、デフォルトのまま「Next」ボタンをクリックします。
追加タスクの画面が表示されたら、デフォルトのまま「Next」ボタンをクリックします。
インストール場所の設定画面が表示されたら、デフォルトのまま「Next」ボタンをクリックします。
WinPcap 4.1.3 のインストール選択画面が表示されたら、「Install WinPcap 4.1.3」にチェックが入っていることを確認して「Next」ボタンをクリックします。
Wiresharkではパケットキャプチャドライバとして「WinPcap(Windows用ドライバ)」を利用します。
Linuxの場合は「LibPcap(Linux用ドライバ)」を利用します。
「USB Capture」画面が表示されたら、デフォルトのままチェックを入れずに「Install」ボタンをクリックします。
※USBのキャプチャもする場合はチェックを入れます。
「Install」ボタンをクリックするとインストールが開始されます。
Wiresharkのインストール中に「Welcom to the WinPcap 4.1.3 Setup Wizard」画面が表示されたら、「Next」ボタンをクリックします。
WinPcap 4.1.3 の License Agreement 画面が表示されたら「I Agree」ボタンをクリックします。
WinPcapのインストールオプション画面が表示されたら「Automaticall start the WinPcap driver at boot time」にチェックが入っていることを確認し「Install」ボタンをクリックします。
インストールが完了したら「Finish」ボタンをクリックします。
※「Finish」ボタンをクリックすると、Wireshark のインストールが再開されます。
Wireshark のインストールが完了したら「Next」ボタンをクリックします。
「Finish」ボタンをクリックします。
Wireshark の使用方法
Wireshark のインストールが完了したら、続けて使用方法について解説します。
Wireshark の起動
スタートメニューより「Wireshark」をクリックします。
Wireshark が起動します。
Wireshark の使用方法
DMZ 領域にある Web サーバーの「インターネット側」と「ローカル側」両方のパケットキャプチャをする場合です。
■構成
- プライベートIP アドレス: 192.168.20.151 ← ローカル側
- グローバルIPアドレス: 18.xx.xx.xx ← インターネット側
C:\Users\Administrator>ipconfig/all |
パケットをキャプチャする
「ワイヤシャークネットワークアナライザ」のメニューより「キャプチャ」–「オプション」をクリックします。
「Wireshrk – キャプチャインタフェース」画面を表示した直後は下図のようにインタフェースが何も選択されていないので「開始」ボタンはグレイアウトしています。
キャプチャしたいインタフェースを選択すると「開始」ボタンが表示されます。
パケットキャプチャしたいインタフェースを選択します。
今回の場合は「インターネット側」と「ローカル側」の両方のパケットを取得するので「ローカルエリア接続 5」と「ローカルエリア接続 6」を選択します。
必要なインタフェースを選択したら「開始」ボタンをクリックします。
下図のようにパケットを取得できます。
パケットキャプチャを停止する
左上の赤い■をクリックします。
Wireshark でのパケット解析方法
Wireshark でパケットを取得したら解析をします。
以下、パケットの解析方法です。
IPアドレスで絞る方法
メニューより「分析」–「表示フィルタ」をクリックします。
Wireshark の表示フィルタの例が表示されます。
今回は IP アドレスで絞りたいので、以下の形式でフィルタを掛けます。
■フィルタリングの例
IP アドレスで絞る場合
【例】IP アドレス「192.168.1.1」で絞りたい
ip.addr == 192.168.1.1
ポート番号で絞る場合
【例】HTTP のみ絞りたい
tcp.port == 80
複数の条件を組み合わせる場合
【例】条件 且つ 条件(AND条件)
条件 and 条件
IP アドレスが 192.168.0.1 且つ ポート番号が TCP/80 のパケット
ip.addr == 192.168.0.1 and tcp.port == 80
【例】条件 または 条件(OR条件)
条件 || 条件
UDP ポートが 53番 または TCP ポートが 53番のパケット
udp.port == 53 || tcp.port == 53
表示フィルタは下図の赤枠で囲まれた部分に記述します。
時刻を表記したい
デフォルトでは時刻ではなく、パケットキャプチャを開始した時刻からの相対的な経過時間になっています。
Wireshark のメニューより「表示」–「時刻表示形式」–「日時」を選択します。
下図のように表示が時刻に変わります。
キャプチャデータをファイルとして保存する方法
後程じっくりと解析するために、キャプチャしたデータを保存する方法です。
Wireshark のメニューより「ファイル」–「…として保存」をクリックします。
任意のフォルダに名前を付けて保存します。
下図のように「.pcapng」ファイル形式で保存されます。
パケットの中の特定の文字列を検索する方法
キャプチャしたデータより、パケットの中の特定の文字列を検索することができます。
つまり、特定のIPアドレスをフィルタして、更にそのパケットの中の特定の文字列を検索することができます。
→2段階のフィルタが出来ます。
■「yahoo」の文字列だけフィルタする場合
例えば、特定の IP アドレスでフィルタリングをして、「yahoo」が含まれている URL で検索することができます。
下図のように虫メガネのような検索ボタンをクリックします。
下図のように検索部分が表示されます。
下図のように「表示フィルタ」を「文字列」に設定し、検索欄に「yahoo」の文字列を入力し「検索」ボタンをクリックします。
下図のように「yahoo」の文字列(大文字小文字区別せず)が含まれているパケットのみ画面に表示されます。
検索したい文字列 URL の一部(news.yahoo等)などの場合、「パケット一覧」では見つからないことがあります。
その場合は「パケット詳細」を選択することでパケットの中身まで検索します。
「パケット詳細」を選択することで、パケットの中身まで検索するので、特定の URL など検索することができます。
下図の場合は、URL の一部「news.yahoo」で検索した結果です。
Wiresharkで特定のセッションだけ抽出する
Wiresharkで特定の通信セッションだけを抽出して表示することができます。
追跡したいパケットを選択して右クリックして「追跡」–「TCPストリーム」をクリックします。
以下のように特定のパケットからの TCP ストリームを追跡することができます。
コメント