Wiresharkの使い方

See also: パケット解析で役立つWiresharkの機能 #Wireshark - Qiita

便利な機能たち

  • 統計[statistics] –> 対話[Conversasion]
  • 統計[statistics] –> 終端[EndPoint]
  • 統計[statistics]–> プロトコル階層[Protcol Hierarchy]

image

グラフ

IOグラフ

変化が多いと不安定

image

ラウンドトリップタイムグラフ

ラウンドトリップグラフ(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 エフェメラルポートグループ(日本ではウェルノウンポート)