Wiresharkの使い方
See also: パケット解析で役立つWiresharkの機能 #Wireshark - Qiita
便利な機能たち
- 統計[statistics] –> 対話[Conversasion]
- 統計[statistics] –> 終端[EndPoint]
- 統計[statistics]–> プロトコル階層[Protcol Hierarchy]
グラフ
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 エフェメラルポートグループ(日本ではウェルノウンポート)