ここからは、Wireshark Display Filterについて話を進めていこう。といっても、公式サイトの「Display Filter Reference」を見て分かるように、Wiresharkには相当の数のフィルタが存在している。そのため今回は「これだけは覚えるべし!」というフィルタのみを紹介しよう。
それでは、フィルタの演算子から紹介しよう。フィルタに使える比較演算子は下記のようなものがある。
演算子 | 説明 |
---|---|
eq == |
等しい(Equal) |
ne != |
等しくない(Not Equal) |
gt > |
右辺より大きい(Greater Than) |
lt < |
右辺より小さい(Less Than) |
ge >= |
右辺より大きい、もしくは、等しい(Greater than or Equal to) |
le <= |
右辺より小さい、もしくは等しい(Less than or Equal to) |
例えば、IPアドレス(IPv4)「192.168.0.1」が送信先になっている通信にマッチさせたい場合は、
ip.dst == 192.168.0.1 |
や、
ip.dst == 192.168.0.1 |
と記述することが可能である。また、逆に送信先に「192.168.0.0」のネットワークを含まないといった場合には、
ip.dst != 192.168.0.0/24 |
や、
ip.dst ne 192.168.0.0/24 |
と記述することで可能である。
また、前述したように単一のフィルタでは事足りない場合もあるだろう。その際には、論理演算子を用いて条件を指定することが可能である。使用可能な論理演算子は以下の通りである。
演算子 | 説明 |
---|---|
and && |
論理積 |
or || |
論理和 |
not ! |
否定 |
例えば、IPアドレス(IPv4表記)「192.168.0.1」が送信元、「かつ」送信先ポートがtcp/22(ssh)の通信をマッチさせたい場合は、
ip.src == 192.168.0.1 && tcp.dstport == 22 |
や、
ip.src eq 192.168.0.1 and tcp.dstport eq 22 |
と記述することが可能である。
また、IPアドレス(IPv4表記)「192.168.0.1」「または」「192.168.0.2」が送信元になっている通信をマッチさせたい場合は、
ip.src == 192.168.0.22 || ip.src == 192.168.0.254 |
や、
ip.src eq 192.168.0.22 or ip.src eq 192.168.0.254 |
と記述できる。
次に、筆者が考える「これだけは!」というフィルタを紹介しておこう。
tcp.flags.syn == 1 && tcp.flags.ack == 1 |
!arp and !dns」とすることでARP、DNSの通信を表示させないといったことも可能である。
また、いくつかのフィルタについてのチートシートも公開されているので、印刷してデスクに貼っておくのもよいだろう。
では、問題を解いてみよう。
上記ファイルは、とある通信を保存したものである。通信の内容には、認証情報が含まれている。正しい認証情報のIDとパスワードを、tsharkのみで見つけ出してほしい。
Copyright © ITmedia, Inc. All Rights Reserved.