WIRESHARK - 簡単なチュートリアル - フィルタ

Wireshark フィルタ
Last Update: 01-01-1970




Tool
Tutorial
Ergonomy
Forum



詳細 Wiresharkとは何ですか?
スクリーンショット
前提条件
インストール
Wiresharkの起動
プラットフォーム
フィルタ
統計

Japanese translation by Fumihito Yoshida.



⚠️⚠️⚠️
Please check our page about COVID-19!!
100 Questions and answers about Coronavirus.

⚠️⚠️⚠️
Merci de consulter notre page sur la COVID-19 !!
227 questions et réponses sur le Coronavirus.


初めてのWiresharkチュートリアルで見てきたように、ネットワークを分析するためにWiresharkをインストールし、利用し始めるのはとても簡単です。

デフォルト・セッティングでWiresharkを使い始めると非常によくあるのが、画面上にあまりにも大量に情報が表示されるために、探している情報を見つけ出せない、ということです。
あまりに大量の情報は、情報を葬り去ってしまいます.

このため、フィルタは大変に重要です。フィルタを使うことにより、私たちは多大なログの中から、必要なデータを上手く見つけ出すことができます。

-

-
 
キャプチャフィルタ:ログで記録するデータを選ぶのに用います。キャプチャを始める前に決定します。
表示フィルタ:キャプチャしたログを調査する際に用います。データがキャプチャされた後に、任意に修正できます。
では、キャプチャフィルタと表示フィルタの、どちらを使えばいいのでしょうか?

これら2つのフィルタの目指すところは異なります。
キャプチャフィルタは、莫大なログファイルを生成しないで済むように、キャプチャされるデータのサイズを制限する、大ざっぱな前段フィルタとして使われます
表示フィルタは、より強力です(より複雑でもあります)。こちらは、望むデータを正確に見つけ出すために使います。

2つのフィルタタイプの文法は、完全に異なっています。以下のページにそれを示します:



                       1. キャプチャフィルタ            2. ディスプレイフィルタ



1. キャプチャフィルタ

キャプチャフィルタの構文は、よく知られているTCPdumpのようなLipcap(Linux)やWinpcap(Windows)ライブラリを使ったプログラムで用いられるものと同じです。キャプチャ開始後であってもいつでも変更できるディスプレイフィルタとは異なり、キャプチャフィルタはWiersharkでキャプチャを開始する前にセットされている必要があります。

以下の手順でキャプチャフィルタを設定します:
- メニューを次のようにたどります。キャプチャ->設定 (Capture -> Options)
- 「キャプチャフィルタ」フィールドの各項目を入力するか、以前に使ったフィルタに名前を付けて保存している場合は、ボタンをクリックして以前に設定したフィルタを読み込みます。
- データを捕えるために、スタートをクリックしなさい。

wireshark capture options

wireshark capture options

構文:
Protocol
Direction
Host(s)
Value
Logical Operations
Other expression
例:
tcp
dst
10.1.1.1
80
and
tcp dst 10.2.2.2 3128
Protocol::
取り得る値:ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
プロトコルが指定されないならば、すべてのプロトコルが対象になります。

Direction::
取り得る値:src, dst, src and dst, src or dst
srcまたはdstが指定されなければ、暗黙で「src or dst」が使われたことになります。
たとえば、「host 10.2.2.2」は「src or dst host 10.2.2.2」と同じです。 Host(s):
取り得る値:net, port, host, portrange
ホスト(s)が指定されなければ、「host」キーワードが使われたものとして扱われます。
たとえば、「src 10.1.1.1」は「src host 10.1.1.1」と同じです。

Logical Operations:
取り得る値:not, and, or.
「not」による否定は、最も高い優先順位を持ちます。「or」と「and」は同じ優先順位で、左から右に処理されていきます。
たとえば、
「not tcp port 3128 and tcp port 23」は、「((not tcp port 3128) and tcp port 23」に等しくなります。
「not tcp port 3128 and tcp port 23」は、「(not (tcp port 3128 and tcp port 23)」ではありません。



例:

tcp dst port 3128
TCPポート3128がディスティネーションのパケットを対象にします。

ip src host 10.1.1.1
ソースIPアドレスが10.1.1.1であるパケットを対象にします。

host 10.1.2.3
ソースもしくはディスティネーションのIPアドレスが10.1.1.1であるパケットを対象にします。

src portrange 2000-2500
UDPもしくはTCPで、ソースのポートが2000~2500であるパケットを対象にします。

not imcp
icmpパケット以外すべてを対象にします(icmpは、典型的にはpingツールで使われます)。

src host 10.7.2.12 and not dst net 10.200.0.0/16
ソースIPアドレスが10.7.2.12で、なおかつ、ディスティネーションがネットワークアドレス10.200.0.0/16でないパケットを対象にします。

(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
ソースIPアドレスが10.4.1.12であるか、ソースIPアドレスがネットワークレンジ10.6.0.0/16であり、さらに、TCPで、ディスティネーションポートが200~10000の間で、かつディスティネーションのネットワークレンジが10.0.0.0/8であるパケットを対象にします。



メモ:

キーワードを値として使うときは、バックスラッシュ「\」のサインを使ってください。
「ether proto \ip」(「ip」と同じです)。
これは、IPプロトコルをターゲットにします。。

「ip proto \icmp」(「icmp」と同じです)。
これは、典型的にはpingユーティリティによって使われるicmp paketsをターゲットにします。

「multicast」と「broadcast」キーワードを、「ip」または「ether」の後で使うこともできます。
broadcastリクエストを無視したい時は、「no broadcast」が役に立つでしょう。



キャプチャフィルタの構文に関して詳しくはTCPdumpマニュアルページをチェックしてください。
他のキャプチャフィルタ例は、Wiki Wiresharkウェブサイトで見つけることができます。

Top of the page (ページのトップに戻る)



2. 表示フィルタ:

表示フィルタは、キャプチャフィルタで得られるキャプチャされたデータを調査するのに用いられます。
その検索能力はキャプチャフィルタのそれより拡張されていて、しかも、フィルタを変更する必要があるときもキャプチャをやり直す必要はありません。

構文: Protocol.
String 1
.
String 2
Comparison operator
Value
Logical Operations
Other expression
例:
ftp
passive
ip
==
10.2.3.4
xor
icmp.type
Protocol::

OSIモデルのレイヤ2から7までに位置する、多数のプロトコルを利用できます。これらは、メインスクリーンにある「Expresssion...」ボタンをクリックすることで確認できます。
いくつかの例は次の通りです:IP,TCP,DNS,SSH

wireshark filter expression

wireshark filter expression

下の図のように、簡単な説明のついたサポートプロトコル一覧を表示させることもできます:

wireshark supported protocols

wireshark supported protocols

Wiresharkウェブサイトは、プロトコルとその下位カテゴリーについて詳細を提供しています。

String1, String2 (オプションのセッティング):

プロトコルにおける、より細かなプロトコル・カテゴリを設定します。
これらを表示するには、各プロトコルの「+」ボタンをクリックしてください。

wireshark filter expression

比較演算子:

6つの比較演算子を利用できます:

英語表記:   C言語ライクな表記:   意味:
eq 
== 
等しい
ne
!=
等しくない
gt
>
より大きい
lt
<
より小さい
ge
>=
より大きいか等しい
le
<=
より小さいか等しい
Logical expressions:

英語表記:   C言語ライクな表記:   意味:
and
&&
論理AND
or
||
論理OR
xor
^^
論理XOR
not
!
論理NOT
論理「XOR」表現はプログラマーにはお馴染みのものですが、多くは排他的な置換として使われます。フィルタで2つの条件の間で使われる場合は、2つの条件のうち、片方だけが成立するような、「OR」が成立しない場合にだけ、結果はスクリーンに表示されます。
以下の表示フィルタで例を見てみましょう。:
「tcp.dstport 80 xor tcp.dstport 1025」
TCPで、ディスティネーションポートが 80であるか、TCPソースポートが1025であるかのどちらか(両方ではないことに注意!)にマッチするパケットだけをスクリーンに表示します。



例:

snmp || dns || icmpSNMP, DNS, ICMPのいずれかのトラフィックを表示します。
ip.addr == 10.1.1.1
ソースまたはディスティネーションIPアドレスが10.1.1.1であるパケットを表示します。

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
ソースIPアドレスが10.1.2.3ではないか、または、ディスティネーションIPアドレスが10.4.5.6ではないパケットを表示します。
言い換えると、表示されるパケットは次のようになります:
ソースIPアドレスが10.1.2.3でない、ディスティネーションIPアドレスはどれでも
と、
ソースIPアドレスがどれでも、ディスティネーションIPアドレスが10.4.5.6でないもの。

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6
ソースIPアドレスが10.1.2.3であり、かつ、ディスティネーションIPアドレスが10.4.5.6ではないパケットを表示します
言い換えると、表示されるパケットは次のようになります:
ソースIPアドレスが10.1.2.3でなく、ディスティネーションIPアドレスが10.4.5.6でないもの。

tcp.port == 25 TCPパケットのうち、ソースもしくはディスティネーションが25のものを表示します.
tcp.dstport == 25TCPパケットのうち、ディスティネーションが25のものを表示します.
tcp.flagsTCPフラグを持つパケットを表示します
tcp.flags.syn == 0x02TCP SYNフラグを持つパケットを表示します
フィルタ構文が正しければ、それは緑でハイライトされます。逆に構文間違いがあるなら、赤でハイライトされます。

wireshark display filter example 正しい構文
wireshark display filter example 間違った構文
表示フィルタに関する役に立つ情報は、 Wiresharkオフィシャルウェブサイトまたは、Wiki Wiresharkウェブサイトで見つけることができるでしょう。


Top of the page (ページのトップに戻る)