書籍「実践パケット解析」の中で役立つと感じた箇所をピックアップしています。
便利な機能たち
統計[Statistics] -> 対話[Conversation]
統計[Statistics] -> 終端[EndPoint]
統計[Statistics] -> プロトコル階層[Protocol Hierarchy]
対話[Conversation]
IPアドレスとポートごとに分類して一覧表示されます。ここでは「どこから、どこへ向けて、どれだけの量のパケットが送られているか」を把握することが出来ます。
グラフ
IOグラフ
変化が多いと不安定であることが伺えます。
ズームして細かく確認したいグラフの箇所をクリックすることで、パケット一覧の該当する箇所付近が選択されます。
ラウンドトリップタイムグラフ
ラウンドトリップグラフ(RTT)とは、「パケットの受信が確認されるまでにかかる時間」を表します。つまり、パケットが宛先に届き、その返答が自分に戻ってくるのにかかった時間のことです。
Statistics -> TCP Stream Graph -> Round Trip Time Graph
フローグラフ
Statistic -> Flow Graph
自動解析されたプロトコルが異なるとき
個別のパケットを選択してDecode as -> Transport
で任意のプロトコルを選択する。
パケット長
- イーサネットの最大フレームサイズ 1518バイト
- これからイーサネット、IP、TCP HEADERを差し引いた1460バイトが7層のプロトコルヘッダ、データに使用可能
パケットのマーキング
- マーキング:
Ctrl + M
- 次のマーキング:
Shift + Ctrl + N
- 前のマーキング:
Shift + Ctrl + B
キャプチャ/BPF構文
BPF構文を使って作成したフィルタを「式」とよび、それぞれの式は1つ以上の「プリミティブ」で構成されている。プリミティブは1つ以上の「修飾子」とそのあとに続くID文字列または数値のセットから構成される。
修飾子の種類
- Type(host, net, port)
- Dir(src, dst)
- Proto(ether, ip, tcp, udp, http,ftp)
dst host 192.168.0.10 && tcp port 80
論理演算子
- AND(&&)
- OR(||)
- NOT(!)
ホスト名とアドレスによるフィルタ
IPv4の場合
host 172.16.16.149
IPv6の場合
host 2001:db8:85a3:8a2e:370:7334
ホスト名
host testserver2
Macアドレスでも指定可能
src host 00-1a-a0-52-e2
ポートとプロトコルによるフィルタ
ポート8080
port 8080
宛先がポート8080
dst port 8080
IPv6を除外
!ip6
プロトコルフィールドによるフィルタ
到達不能のメッセージ(タイプ3)
icmp[0] == 3
Pingパケット(ICMP)
icmp[0] == 8 || icmp[0] == 0
ICMPのタイプ3、コード1(ホスト到達不能)パケット
icmp[0:2] == 0x0301
RSTフラグがセットされたTCPパケット
tcp[13] &4 == 4
よく使うフィルタ
フラグがセットされた TCPパケット
tcp[13] &XXX == XXX
- URG: XXX=32
- ACK: XXX=16
- PSH: XXX=8
- RST: XXX=4
- SYN: XXX=2
- FIN: XXX=1
TCP SYN-ACKパケット
tcp[13] == 18
指定したMacアドレスで送受信されるトラフィック
ether host 00:00:00:00:00:00
ブロードキャストパケット
broadcast
フィルタ式の文法
演算子
- 等しい
==
- 等しくない
!=
- 大なり
>
- 小なり
<
- 以上
>=
- 以下
<=
論理演算子
- 論理和
and
- 論理積
or
- 排他的論理和
not
- 否定
xor
ポート
-
1-1023
スタンダードポートグループ -
0
は予約済みなので除外 -
1024-65535
エフェメラルポートグループ(日本ではウェルノウンポート)