Windows TIPS
[Network]
Wiresharkで特定のプロトコルだけを表示させる
■
Wiresharkでパケットをキャプチャすると、解析対象以外にも多くのパケットが表示され、目的のパケットを見つけるのが簡単ではない。
■
このような場合は表示フィルタを利用して、対象となるパケットを絞り込むとよい。
■
特定のプロトコルだけを表示させるには、表示フィルタの条件式にプロトコル名を入力すればよい。
TIPS「Wiresharkで特定の通信セッションだけを抽出して表示する 」では、フリーの高機能なネットワーク・プロトコル・アナライザであるWiresharkを使って、特定のTCPやUDPのセッションの内容を簡単に追跡して確認する方法について解説した。本TIPSでは、解析対象のパケットを限定する別の方法として、表示フィルタを利用する方法を紹介する。
表示フィルタは、キャプチャされた多数のパケットの中から、特定の条件を持つものだけを選択して表示する機能である。特定のノード(IPアドレス)から送受信されているパケットだけを取り出したり、特定の通信ポートやプロトコルだけに注目して解析したりする場合などに役に立つ。表示フィルタではさまざまな条件を指定できるが、本TIPSでは特定のプロトコルだけを取り出す方法について紹介する。より複雑な条件式の使い方については今後別TIPSで紹介する。
表示用フィルタの基本的な使い方
Wiresharkを起動すると、上部のツール・バーの表示フィルタを設定する場所がある(次の画面の 参照)。ここに条件式を入力すれば、特定の条件を満たす通信パケットだけを抽出できる。
表示フィルタ式の入力欄
表示用フィルタを設定すると、キャプチャしたパケットの中から、条件に合致するパケットだけが抽出され、解析しやすくなる。
ここに条件式を入力する。
これをクリックすると、過去に入力された条件式の一覧が表示されるので、そこから選んで簡単に再入力できる。
表示フィルタの条件式をクリアする。クリアすると、直ちに全パケットが表示される。
条件式を適用する。条件に合致するパケットだけが抽出され、表示される。条件式を入力後、[Enter]キーを押してもよい。
表示フィルタに条件式を入力する
表示フィルタに入力できる条件式にはいくつかのタイプがあるが、大まかにいって、次のようなものがある。
プロトコル名
パケット内の特定のフィールドやフラグなどが存在するかどうか
パケット内の特定のフィールドがある値を持つかどうか
パケット内の特定のフィールド同士の比較
以上の組み合わせ
ここでは、プロトコル名をベースにする方法を紹介する。IPアドレスなどを条件にする方法は、今後TIPSで紹介する。
プロトコル名を手動で入力する
表示フィルタで特定のプロトコルだけを抽出する方法は非常に簡単である。入力欄にそのプロトコル名を入力して、[Enter]キーを押せばよい。あらかじめ対象となるプロトコル名が分かっているなら、これが最も簡単である。例えばARPプロトコルだけを抽出したければ入力欄に「a」「r」「p」と入力して、[Enter]キーを押す。なおWiresharkにはインタラクティブな条件式の構文チェック機能があり、1文字入力するたびに判定が行われる。入力欄が空の場合はその背景は白色だが、文字を入力するにつれ、式が有効ならば「緑」に、式が無効(入力途中)ならば「赤」に変わる。「arp」と入力している場合は、「a」「r」と入力した時点では背景は赤いが、「p」まで入力すると背景が緑に変わるので、そこで[Enter]キーを押せばよい。
Wiresharkで特定のプロトコルだけを表示させる
Wiresharkの表示フィルタで特定のプロトコル(を含むパケット)だけを表示させたければ、単にプロトコル名を条件式として指定すればよい。
ARPプロトコルだけを表示させたければ、このように「arp」と入力する。プロトコルが階層的になっている場合は、パケット中にどれか1つ該当するプロトコルが含まれているかどうかで判断される。
入力欄に1文字入力するごとに条件式の構文が正しいかどうかがチェックされ、正しい式になるとこのように、入力欄の背景が緑色になる。緑色になったら[Enter]キーを押すか、右の[Apply]ボタンをクリックする。すると条件を満たすパケットだけが抽出され、表示される。
ARPプロトコルのみが表示されている。
通常は、1つのパケットの中には複数のプロトコルが階層的に含まれているが、指定するのはそのいずれのプロトコル名でもよい。例えばSMB(Windowsネットワークにおける標準的なファイル共有のためのプロトコル)を含むパケットなら、IPやTCP、UDP、SMB、NetBIOSなどでもマッチする可能性がある(詳細については連載 基礎から学ぶWindowsネットワークの第20回「ファイル共有プロトコルSMB/CIFS 」などを参照)。
より限定したければ、複数のプロトコル名を組み合わせた式を指定すればよい。表示フィルタの条件式では、単なるプロトコル名だけでなく、それらを「and」や「or」「not」演算子を使って組み合わせることもできる(それぞれ「&&」「||」「!」という記号で代用可)。また括弧記号を使って、より複雑な条件式にしてもよい。
例えばSMBプロトコルはTCP上にもNetBEUI上にも実装されているが、「smb and tcp」とすればTCPを使ったSMBプロトコルだけを抽出できるし、「smb && !tcp」もしくは「smb and netbios」などとすればNetBEUI上のSMBプロトコルを抽出できる。通常DNSはUDP上で利用されるが、「dns and tcp」とすれば(TCPが使われている)DNSのゾーン転送パケットを取り出すことができる。
Windowsネットワーク特有のプロトコルを表示させる
表示フィルタで指定できるプロトコル名は、Wiresharkがプロトコルとして認識しているものなので、MS-RPC上でやり取りされている、例えばWINREGやSRVSVC、WKSSVCサービスだけを抽出するといったこともできる。以下に、条件式で指定可能な、Windowsネットワーク関連でよく使われるプロトコルを挙げておく。
名前
プロトコル/内容
netbios
NetBEUIプロトコル。SMBはNetBEUIやTCP/IP上に実装されている
nbns
NetBIOS名前サービス
nbss
NetBIOSセッション・サービス
nbdgm
NetBIOSデータグラム・サービス
smb/smb2/smb_netlogon
Server Message Block。Windowsネットワークにおける基本的なファイル共有プロトコル
browser
ブラウザ・サービス
mailslot
メールスロット
pipe
名前付きパイプ
ldap
軽量ディレクトリ・アクセス・プロトコル
dcerpc
MS-RPC。詳細はTIPS「リモートの手続きを呼び出すMS-RPCとは? 」参照
srvsvc
ファイル・サーバ・サービス。ファイルを公開する側のサービス
wkssvc
ワークステーション・サービス。ファイルを利用する側のサービス
winreg
リモート・レジストリ・サービス
svcctl
サービス・コントロール・マネージャ
srvloc
サービス・ロケーション(サービスの場所を検索する)
winsrepl
WINS複製
Windowsネットワーク関連の主なプロトコル
フィルタの条件式にこれらのプロトコル名を指定することにより、特定のプロトコルだけを抽出して表示できる。TPCやUDP、IP、DNSなど、一般的なプロトコルは省略している。詳細なプロトコルの一覧については、条件式ウィザードやWiresharkに付属のヘルプ・ファイルを参照していただきたい。
条件式ウィザードを使って式を入力する
プロトコル名などが不明な場合は、条件式の入力ウィザードを使って式を入力すればよい。ツール・バー上にある[Express]ボタンをクリックすると、条件式を入力するためのウィザードが起動する。[Field name]からプロトコルを選んで[OK]ボタンをクリックすれば、そのプロトコルを表示するための式(プロトコル名)が自動的に入力される。
ウィザードによるプロトコル条件式の入力
プロトコル名が分からない場合は、ウィザードを使うとよい。このウィザードは[Expression]ボタンをクリックすると表示される。
プロトコル名を選択する。必ず、ツリーの一番上の項目を選択すること(この例では「pipe.……」ではなく、「SMB Pipe」を選択する)。
プロトコル名を展開すると、そのプロトコルに含まれる詳細なフィールドなどが表示されるが、その先頭部分(この例では「pipe」)が条件式として入力すべき実際のプロトコル名の文字列である。 の名前(この例では「SMB Pipe」)とは異なることがあるので注意。
プロトコルを選んでからこれをクリックすると、プロトコルを表す文字列が条件式のフィールドに欄に自動的に入力される。
この記事と関連性の高い別のWindows TIPS
generated by
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ