LoginSignup
1
2

More than 3 years have passed since last update.

パケットキャプチャ学習1日目

Posted at

パケットキャプチャとは

パケットキャプチャ端末が持っているNICを通過するパケットをソフトウェア的に傍受してキャプチャする。

キャプチャを行う環境構築

・時刻合わせ
時刻がずれているとパケットの突合せが大変。

・キャッシュクリア
ARPキャッシュ、DNSキャッシュ、HTTPプロキシキャッシュなど
キャッシュはNW上のトラフィックを減らす機能、
パケットキャプチャ時にクリアしないと本来のパケットシーケンスにならない。

WinPcap

Wireshark使用に必要なツール
パケットをキャプチャするのに必要なアーキテクチャ(デバイスドライバや、ライブラリの集まり)
NPF、packet.dll、wpcap.dll

プロミスキャス

ONにすると自分と関係ないパケットもキャプチャする。

名前解決機能

・MACアドレス機能
パケットのMACアドレスのOUI(ベンダー識別子)をベンダー名に変換する。

・ネットワーク名解決
IPアドレスをホスト名に変換する

・トランスポート層解決
パケットのポート番号をサービス名に変換する

キャプチャフィルタ

メリットはキャプチャするパケットの量が減る。
負荷の軽減につながる。
リモートデスクトップ(RDP)でHTTPサーバーにアクセスし、クライアントからくるパケットをキャプチャしたい場合に、
RDPのパケットは不要。

キャプチャフィルタの基本構文

[プロトコル名][ディレクション][タイプ][値]

例)
ether src 00:00:00:00:00:00 送信元MACアドレスが「:.」のイーサネットフレーム
ether host 00:00:00:00:00:00 送信元MACアドレスか宛先MACアドレスが「:.」のイーサネットフレーム
arp ARPフレーム
ip src host 192.168.0.1 送信元IPアドレスが「192.168.0.1」のIPv4アドレス
ip net 192.168.0.0/24 /24のセグメントのIPアドレスのパケット
tcp src port 53 送信元ポート番号が「53」のTCPセグメント

論理演算も使える
not port 3389 ポート番号が「3389」以外のTCpセグメント/UDPデータグラム

表示フィルタ

キャプチャしたデータの中から画面上に表示するデータをフィルタする機能
・基本構文
[フィールド名][リレーション][値]
フィールド名について
eth.addr MACアドレス
arp ARPフレーム
ip IPv4アドレス
ipv6 IPv6アドレス
tcp TCpセグメント
tcp.port TCPのポート番号

リレーションについて
eq ==
ne !=
gt >
lt <
ge >=
le <=
contains 含む
matches に合致する

論理演算も使える
調査したいパケットのヘルプ機能は書式タブ

パケットの表示に関わる機能

・時刻表示の切り替え
・パケットのマーク機能
・自動スクロール

・列の編集(OSI参照モデルの階層)
問題が特定のレイヤーにあるとわかっている場合

レイヤー2プロトコルの解析

送信側の物理層はデータから信号に変換する時に符号化を行っている。
L2の代表プロトコル
有線LAN→Ethernet
無線LAN→IEEE802.11

Ethernetの規格の見分け方

[帯域幅]BASE-[ケーブルの種類]
【帯域幅】通信規格の帯域幅を表している
[ケーブルの種類]
T UTPケーブル
S 光シングルケーブル
L 光マルチケーブル
C 同軸ケーブル

Ethernetプロトコルの詳細

Ethernetネットワークを流れるパケットの事を「Ethernetフレーム」という

ethernet 2 フレームフォーマット

[プリアンブル][src/dst MACアドレス][タイプ][ペイロード][FCS]

[Ethernetヘッダー]
[src/dst MACアドレス][タイプ]の二つをまとめた呼称

[プリアンブル]
これからEthernetフレームを送る合図を意味する64bit(8Byte)の特別なビットパターン
Wiresharkではキャプチャできない。

[src/dst MACアドレス]
MACアドレスは端末を表す48bitの識別ID

[タイプ]
L3でどんなプロトコルを利用しているか表す16bitの識別子

[ペイロード]
上位層のデータそのもの
データサイズはデフォルトで46バイトから1500バイトと決められている。

足りなければ、パディング(詰め物)、多ければ、分割
Ethernetフレームに入るデータの最大サイズをMTUと呼ぶ。

FCS(Frame check sequence)は、Ethernetペイロードが壊れていないかどうかを確認するためにある32bitのフィールド
送信側でチェックサム計算(CRC)を行っている。その後パケットに付与。
受信側で同様の計算を行う。突合。

[MACアドレス]
各ノードの端末IDを表す。
48bitで構成される。
16進数で表記される。

・IG(Individual/Group)ビット
MACアドレスが1:1のためのユニキャストアドレスか、1:n通信のマルチキャストアドレスかを表してる。
・UL(unique/Local)ビット
MACアドレスがグローバルアドレスかローカルアドレスかを表している。
WireSharkでは「LG bit」と表記される。

・OUI(ベンダー識別子)
先頭24bit
IEEEが割り当てる。

・L2スイッチの役割
送信元MACアドレスと自分自身のポート番号を管理している。
Ethernetフレームの転送先を切り替え、通信の効率化を図っている。(L2スイッチング機能)
送信元MACアドレスとポート番号を管理するテーブルをMACアドレステーブルという。
VLANを実装。
1台のL2スイッチを仮想的に複数のL2スイッチにみせかける技術。

ポートVLAN/タグVLANの違い

・ポートVLAN
VLANの数だけポートとケーブルが必要

・タグVLAN
VLANの数に関係なく、1ポート、1ケーブルだけで済む

ARP

MACアドレスはNICのROMに書き込まれていている物理的なアドレス
L3で使用するOSで設定する論理的なアドレスの事をIPアドレスという。
この2つのアドレスを紐づけるプロトコルがARP

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2