mcpField
W
Wireshark Network Traffic Analysis

Wireshark Network Traffic Analysis

github.com/davila7セキュリティ33.0k246 回インストール1 日前に更新
リポジトリ

Wireshark Network Traffic Analysis について

Wireshark Network Traffic Analysis は、Wireshark を使うネットワーク・セキュリティ分析者向けのスキルです。ライブキャプチャや PCAP を調べ、パケットの絞り込み、通信の再構成、統計確認、異常調査を行います。

主な機能

  1. 01ライブ通信のキャプチャと PCAP の確認
  2. 02ホスト・プロトコル・内容によるパケット絞り込み
  3. 03TCP・UDP・HTTP ストリームの再構成
  4. 04プロトコルと通信の統計確認
  5. 05不審な通信とネットワーク問題の調査

活用シーン

  1. 01接続障害やアプリの遅延の診断
  2. 02セキュリティインシデントやマルウェア通信の調査
  3. 03キャプチャ内の不審な DNS やスキャンの確認
  4. 04パケットレベルの分析結果の記録

インストール

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

$npx skills add https://github.com/davila7/claude-code-templates --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 で設定する
  • エフェメラル鍵の場合は、ブラウザからプリマスターシークレットを取得する
  • 一部の最新の暗号スイートは受動的に復号できない

コメント