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. 03重建 TCP、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 重传数据包重新发送检查是否丢包
重复 ACK可能丢包调查网络路径
零窗口缓冲区已满检查接收端性能
RST连接重置检查是否存在阻止或错误
乱序数据包顺序错乱通常正常,过多则是问题

快速参考

键盘快捷键
操作快捷键
打开文件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 检测

场景:识别命令与控制流量

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 权限
  • 确认网络适配器已启用
  • 如果问题仍然存在,请禁用混杂模式
过滤器不起作用
  • 检查过滤器语法(红色表示错误)
  • 检查字段名称是否有拼写错误
  • 使用“表达式”按钮选择有效字段
  • 清除过滤器,然后逐步重新构建
性能问题
  • 使用捕获过滤器限制流量
  • 将大型捕获文件拆分为较小的文件
  • 捕获期间禁用名称解析
  • 关闭不必要的协议解析器
无法解密 TLS/SSL
  • 获取服务器私钥
  • 在 Edit > Preferences > Protocols > TLS 中进行配置
  • 对于临时密钥,从浏览器捕获预主密钥
  • 某些现代密码套件无法通过被动方式解密

评论

支持 Markdown