mcpField
W
Wireshark Network Traffic Analysis

Wireshark Network Traffic Analysis

github.com/zebbernセキュリティ4.7k73 回インストール2 日前に更新
リポジトリ

Wireshark Network Traffic Analysis について

セキュリティ調査やネットワークのトラブルシューティング向けに、Wiresharkでの通信解析手順をまとめたスキルです。パケット取得、フィルタリング、ストリーム再構成、統計分析、異常調査を扱います。

主な機能

  1. 01ライブ通信の取得とPCAP解析
  2. 02取得・表示フィルターの適用
  3. 03TCP、UDP、HTTPストリームの再構成
  4. 04プロトコル、通信、トラフィック統計の確認
  5. 05ネットワーク問題と不審な通信の調査

活用シーン

  1. 01セキュリティインシデントやマルウェア通信の調査
  2. 02接続問題や遅延の診断
  3. 03プロトコルの動作やデータ転送の分析

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zebbern/claude-code-guide --skill wireshark-network-traffic-analysis

インストール後、Claude Code で/wireshark-network-traffic-analysisを入力して読み込まれたか確認します。

詳細

Wireshark ネットワークトラフィック分析

目的

Wireshark を使用して包括的なネットワークトラフィック分析を実行し、ネットワークパケットのキャプチャ、フィルタリング、検査を行います。セキュリティ調査、パフォーマンス最適化、トラブルシューティングに活用できます。このスキルにより、ネットワークプロトコルの体系的な分析、異常の検出、PCAP ファイルからの通信の再構築が可能になります。

入力 / 前提条件

必要なツール
  • Wireshark のインストール(Windows、macOS、または Linux)
  • キャプチャ権限を持つネットワークインターフェース
  • オフライン分析用の PCAP/PCAPNG ファイル
  • ライブキャプチャ用の管理者/root 権限
技術要件
  • ネットワークプロトコル(TCP、UDP、HTTP、DNS)の理解
  • IP アドレッシングとポートへの精通
  • OSI 参照モデルの各層に関する知識
  • 一般的な攻撃パターンの理解
ユースケース
  • ネットワークのトラブルシューティングと接続性の問題
  • セキュリティインシデントの調査
  • マルウェアトラフィックの分析
  • パフォーマンスの監視と最適化
  • プロトコル学習と教育

出力 / 成果物

主な出力
  • 特定のトラフィックに絞り込んだパケットキャプチャ
  • 再構築された通信ストリーム
  • トラフィックの統計と可視化
  • インシデントの証拠文書

基本ワークフロー

フェーズ 1: ネットワークトラフィックのキャプチャ
ライブキャプチャの開始

ネットワークインターフェースでパケットのキャプチャを開始します:

1. Launch Wireshark
2. Select network interface from main screen
3. Click shark fin icon or double-click interface
4. Capture begins immediately
キャプチャ操作
操作ショートカット説明
キャプチャの開始/停止Ctrl+Eキャプチャのオン/オフを切り替え
キャプチャの再開始Ctrl+R停止して新しいキャプチャを開始
PCAP ファイルを開くCtrl+O既存のキャプチャファイルを読み込み
キャプチャの保存Ctrl+S現在のキャプチャを保存
キャプチャフィルター

データ収集を制限するため、キャプチャ前にフィルターを適用します:

# Capture only specific host
host 192.168.1.100

# Capture specific port
port 80

# Capture specific network
net 192.168.1.0/24

# Exclude specific traffic
not arp

# Combine filters
host 192.168.1.100 and port 443
フェーズ 2: 表示フィルター
基本フィルター構文

キャプチャしたパケットを分析用にフィルタリングします:

# IP address filters
ip.addr == 192.168.1.1              # All traffic to/from IP
ip.src == 192.168.1.1               # Source IP only
ip.dst == 192.168.1.1               # Destination IP only

# Port filters
tcp.port == 80                       # TCP port 80
udp.port == 53                       # UDP port 53
tcp.dstport == 443                   # Destination port 443
tcp.srcport == 22                    # Source port 22
プロトコルフィルター

特定のプロトコルでフィルタリングします:

# Common protocols
http                                  # HTTP traffic
https or ssl or tls                   # Encrypted web traffic
dns                                   # DNS queries and responses
ftp                                   # FTP traffic
ssh                                   # SSH traffic
icmp                                  # Ping/ICMP traffic
arp                                   # ARP requests/responses
dhcp                                  # DHCP traffic
smb or smb2                          # SMB file sharing
TCP フラグフィルター

特定の接続状態を特定します:

tcp.flags.syn == 1                   # SYN packets (connection attempts)
tcp.flags.ack == 1                   # ACK packets
tcp.flags.fin == 1                   # FIN packets (connection close)
tcp.flags.reset == 1                 # RST packets (connection reset)
tcp.flags.syn == 1 && tcp.flags.ack == 0  # SYN-only (initial connection)
コンテンツフィルター

特定のコンテンツを検索します:

frame contains "password"            # Packets containing string
http.request.uri contains "login"    # HTTP URIs with string
tcp contains "GET"                   # TCP packets with string
分析フィルター

潜在的な問題を特定します:

tcp.analysis.retransmission          # TCP retransmissions
tcp.analysis.duplicate_ack           # Duplicate ACKs
tcp.analysis.zero_window             # Zero window (flow control)
tcp.analysis.flags                   # Packets with issues
dns.flags.rcode != 0                 # DNS errors
フィルターの組み合わせ

論理演算子を使用して複雑なクエリを作成します:

# AND operator
ip.addr == 192.168.1.1 && tcp.port == 80

# OR operator
dns || http

# NOT operator
!(arp || icmp)

# Complex combinations
(ip.src == 192.168.1.1 || ip.src == 192.168.1.2) && tcp.port == 443
フェーズ 3: ストリームの追跡
TCP ストリームの再構築

TCP の通信全体を表示します:

1. Right-click on any TCP packet
2. Select Follow > TCP Stream
3. View reconstructed conversation
4. Toggle between ASCII, Hex, Raw views
5. Filter to show only this stream
ストリームの種類
ストリームアクセス方法ユースケース
TCP ストリームFollow > TCP StreamWeb、ファイル転送、任意の TCP
UDP ストリームFollow > UDP StreamDNS、VoIP、ストリーミング
HTTP ストリームFollow > HTTP StreamWeb コンテンツ、ヘッダー
TLS ストリームFollow > TLS Stream暗号化トラフィック(鍵が利用可能な場合)
ストリーム分析のヒント
  • リクエストとレスポンスのペアを確認します
  • 送信されたファイルやデータを特定します
  • 平文の認証情報がないか確認します
  • 通常と異なるパターンやコマンドに注意します
フェーズ 4: 統計分析
プロトコル階層

プロトコルの分布を表示します:

Statistics > Protocol Hierarchy

Shows:
- Percentage of each protocol
- Packet counts
- Bytes transferred
- Protocol breakdown tree
会話

通信のペアを分析します:

Statistics > Conversations

Tabs:
- Ethernet: MAC address pairs
- IPv4/IPv6: IP address pairs
- TCP: Connection details (ports, bytes, packets)
- UDP: Datagram exchanges
エンドポイント

アクティブなネットワーク参加者を表示します:

Statistics > Endpoints

Shows:
- All source/destination addresses
- Packet and byte counts
- Geographic information (if enabled)
フローグラフ

パケットのシーケンスを可視化します:

Statistics > Flow Graph

Options:
- All packets or displayed only
- Standard or TCP flow
- Shows packet timing and direction
I/O グラフ

時間経過によるトラフィックをプロットします:

Statistics > I/O Graph

Features:
- Packets per second
- Bytes per second
- Custom filter graphs
- Multiple graph overlays
フェーズ 5: セキュリティ分析
ポートスキャンの検出

偵察活動を特定します:

# SYN scan detection (many ports, same source)
ip.src == SUSPECT_IP && tcp.flags.syn == 1

# Review Statistics > Conversations for anomalies
# Look for single source hitting many destination ports
不審なトラフィックの特定

異常をフィルタリングします:

# Traffic to unusual ports
tcp.dstport > 1024 && tcp.dstport < 49152

# Traffic outside trusted network
!(ip.addr == 192.168.1.0/24)

# Unusual DNS queries
dns.qry.name contains "suspicious-domain"

# Large data transfers
frame.len > 1400
ARP スプーフィングの検出

ARP 攻撃を特定します:

# Duplicate ARP responses
arp.duplicate-address-frame

# ARP traffic analysis
arp

# Look for:
# - Multiple MACs for same IP
# - Gratuitous ARP floods
# - Unusual ARP patterns
ダウンロードの調査

ファイル転送を分析します:

# HTTP file downloads
http.request.method == "GET" && http contains "Content-Disposition"

# Follow HTTP Stream to view file content
# Use File > Export Objects > HTTP to extract files
DNS 分析

DNS アクティビティを調査します:

# All DNS traffic
dns

# DNS queries only
dns.flags.response == 0

# DNS responses only
dns.flags.response == 1

# Failed DNS lookups
dns.flags.rcode != 0

# Specific domain queries
dns.qry.name contains "domain.com"
フェーズ 6: エキスパート情報
エキスパート分析へのアクセス

Wireshark の自動検出結果を表示します:

Analyze > Expert Information

Categories:
- Errors: Critical issues
- Warnings: Potential problems
- Notes: Informational items
- Chats: Normal conversation events
一般的なエキスパート所見
所見意味対処
TCP Retransmissionパケットの再送パケットロスを確認する
Duplicate ACKロスの可能性ありネットワーク経路を調査する
Zero Windowバッファが満杯受信側のパフォーマンスを確認する
RST接続のリセットブロックやエラーを確認する
Out-of-Orderパケットの順序入れ替わり通常は正常、過剰な場合は問題

クイックリファレンス

キーボードショートカット
操作ショートカット
ファイルを開くCtrl+O
ファイルを保存Ctrl+S
キャプチャの開始/停止Ctrl+E
パケットを検索Ctrl+F
パケットへ移動Ctrl+G
次のパケット↓
前のパケット↑
最初のパケットCtrl+Home
最後のパケットCtrl+End
フィルターを適用Enter
フィルターをクリアCtrl+Shift+X
一般的なフィルターのリファレンス
# Web traffic
http || https

# Email
smtp || pop || imap

# File sharing  
smb || smb2 || ftp

# Authentication
ldap || kerberos

# Network management
snmp || icmp

# Encrypted
tls || ssl
エクスポートオプション
File > Export Specified Packets    # Save filtered subset
File > Export Objects > HTTP       # Extract HTTP files
File > Export Packet Dissections   # Export as text/CSV

制約とガードレール

運用上の境界
  • 許可されたネットワークトラフィックのみをキャプチャする
  • キャプチャしたデータはプライバシーポリシーに従って取り扱う
  • 不必要に認証情報をキャプチャしないようにする
  • 機密データを含む PCAP ファイルは適切に保護する
技術的な制限
  • 大規模なキャプチャは多くのメモリを消費する
  • 鍵がない場合、暗号化されたトラフィックの内容は見えない
  • 高速ネットワークではパケットがドロップされる場合がある
  • 一部のプロトコルは完全なデコードにプラグインが必要である
ベストプラクティス
  • キャプチャフィルターを使用して収集データを制限する
  • 長時間のセッションでは定期的にキャプチャを保存する
  • パケットを削除するのではなく、表示フィルターを使用する
  • 分析結果と手法を文書化する

例

例 1: HTTP 認証情報の分析

シナリオ: 平文での認証情報送信の可能性を調査する

1. Filter: http.request.method == "POST"
2. Look for login forms
3. Follow HTTP Stream
4. Search for username/password parameters

所見: 認証情報がフォームデータに平文で送信されている。

例 2: マルウェアの C2 検出

シナリオ: コマンド&コントロール(C2)トラフィックを特定する

1. Filter: dns
2. Look for unusual query patterns
3. Check for high-frequency beaconing
4. Identify domains with random-looking names
5. Filter: ip.dst == SUSPICIOUS_IP
6. Analyze traffic patterns

指標:

  • 一定の時間間隔
  • エンコード/暗号化されたペイロード
  • 通常とは異なるポートやプロトコル
例 3: ネットワークのトラブルシューティング

シナリオ: Web アプリケーションの遅延を診断する

1. Filter: ip.addr == WEB_SERVER
2. Check Statistics > Service Response Time
3. Filter: tcp.analysis.retransmission
4. Review I/O Graph for patterns
5. Check for high latency or packet loss

所見: ネットワークの輻輳を示す TCP 再送。

トラブルシューティング

パケットがキャプチャされない
  • 正しいインターフェースが選択されているか確認する
  • 管理者/root 権限があるか確認する
  • ネットワークアダプターが有効か確認する
  • 問題が解消しない場合はプロミスキャスモードを無効にする
フィルターが機能しない
  • フィルター構文を確認する(赤色はエラー)
  • フィールド名のタイプミスを確認する
  • 有効なフィールドは Expression ボタンで確認する
  • フィルターをクリアし、段階的に組み立て直す
パフォーマンスの問題
  • キャプチャフィルターを使用してトラフィックを制限する
  • 大規模なキャプチャは小さなファイルに分割する
  • キャプチャ中は名前解決を無効にする
  • 不要なプロトコルディセクターを閉じる
TLS/SSL を復号できない
  • サーバーの秘密鍵を入手する
  • Edit > Preferences > Protocols > TLS で設定する
  • エフェメラル鍵の場合は、ブラウザからプリマスターシークレットを取得する
  • 一部の最新の暗号スイートは受動的に復号できない

コメント