Wireshark常用过滤规则

以下是一些实用的Wireshark数据包过滤规则,按协议和场景分类,适用于分析网络流量。

1. TLS/SSL协议过滤

  • 所有TLS流量

    tls

  • 所有TLS握手数据包

    tls.handshake

  • Client Hello (类型1)

ini 复制代码
tls.handshake.type == 1
  • Server Hello (类型2)
ini 复制代码
tls.handshake.type == 2
  • 特定SNI匹配
ini 复制代码
tls.handshake.extensions_server_name == "example.com"
tls.handshake.extensions_server_name contains "google"
  • TLS版本过滤
ini 复制代码
tls.record.version == 0x0303  # TLS 1.2
tls.record.version == 0x0304  # TLS 1.3
  • 加密套件

    tls.handshake.ciphersuite

2. HTTP/HTTPS过滤

  • 所有HTTP流量

    http

  • HTTP请求

vbscript 复制代码
http.request
  • HTTP响应
vbscript 复制代码
http.response
  • 特定HTTP方法
ini 复制代码
http.request.method == "GET"
http.request.method == "POST"
  • 特定URI路径
sql 复制代码
http.request.uri contains "/api"
http contains "login"
  • HTTP状态码
ini 复制代码
http.response.code == 200
http.response.code == 404
  • User-Agent过滤
sql 复制代码
http.user_agent contains "Chrome"
http contains "Mozilla"
  • HTTPS流量(需解密或查看Client Hello)
sql 复制代码
ssl.handshake.extensions_server_name contains "api.example.com"

3. DNS协议过滤

  • 所有DNS查询

    dns

  • DNS查询包

ini 复制代码
dns.flags.response == 0
  • DNS响应包
ini 复制代码
dns.flags.response == 1
  • 特定域名查询
ini 复制代码
dns.qry.name contains "google.com"
dns.qry.name == "www.example.com"
  • DNS类型过滤
ini 复制代码
dns.qry.type == 1  # A记录
dns.qry.type == 28 # AAAA记录

4. IP和网络层过滤

  • 特定IP地址
ini 复制代码
ip.src == 192.168.1.100
ip.dst == 8.8.8.8
  • IP地址范围
ini 复制代码
ip.addr == 192.168.1.0/24
ip.src >= 192.168.1.1 && ip.src <= 192.168.1.255
  • 特定端口
ini 复制代码
tcp.port == 80 || tcp.port == 443
udp.port == 53  # DNS
  • 特定协议
ini 复制代码
ip.proto == 6  # TCP
ip.proto == 17 # UDP
ip.proto == 1  # ICMP
  • MAC地址
ini 复制代码
eth.src == aa:bb:cc:dd:ee:ff

5. TCP协议过滤

  • TCP流量

    tcp

  • TCP SYN包(连接建立)

ini 复制代码
tcp.flags.syn == 1 && tcp.flags.ack == 0
  • TCP SYN-ACK包
ini 复制代码
tcp.flags.syn == 1 && tcp.flags.ack == 1
  • TCP FIN包(连接关闭)
ini 复制代码
tcp.flags.fin == 1
  • TCP重传包

    tcp.analysis.retransmission

  • TCP窗口大小

    tcp.window_size > 65535

  • TCP序列号过滤

ini 复制代码
tcp.seq == 123456
  • TCP会话跟踪
ini 复制代码
tcp.stream == 0  # 特定TCP流

6. 应用层协议过滤

  • SMTP邮件

    smtp

  • FTP

kotlin 复制代码
ftp
ftp-data
  • SSH

    ssh

  • RDP(远程桌面)

    rdp

  • SMB(文件共享)

    smb || smb2

  • NTP时间同步

    ntp

  • SNMP

    snmp

7. 高级过滤和组合

  • 组合条件
ini 复制代码
ip.src == 192.168.1.100 && tcp.dstport == 80
  • 排除条件
ini 复制代码
!(ip.src == 192.168.1.1)
  • 逻辑运算
ini 复制代码
(ip.dst == 8.8.8.8 || ip.dst == 1.1.1.1) && udp.dstport == 53
  • 字符串匹配
sql 复制代码
frame contains "password"
http contains "secret"
  • 数据包大小
go 复制代码
frame.len > 1500

8. 性能和异常检测

  • 大数据包
go 复制代码
frame.len > 1400
  • 异常端口
yaml 复制代码
tcp.port > 1024 && tcp.port < 65535
  • 广播/多播
ini 复制代码
eth.dst[0] & 1  # 以1结尾的MAC地址
  • ARP流量

    arp

  • ICMP(ping等)

    icmp

  • 丢包检测

    tcp.analysis.lost_segment
    tcp.analysis.duplicate_ack

9. 流和会话过滤

  • 特定TCP/UDP流
ini 复制代码
tcp.stream == 1
udp.stream == 0
  • 跟随特定流
    • 右键数据包 > Follow > TCP/UDP/TLS Stream
  • 统计特定流的数据量
bash 复制代码
statistics.io.graph  # 图形化流量分析

10. 捕获过滤器(Capture Filter)

这些在抓包前使用,减少无关数据:

  • 仅捕获特定主机

    host 192.168.1.100

  • 特定端口

    port 80 or port 443

  • 特定协议

    tcp port 80
    udp port 53

  • 网络

    net 192.168.1.0/24

  • 排除本地流量

    not host 192.168.0.0/16

11. 使用建议

  • 显示过滤器:用于分析已捕获数据包,语法灵活。
  • 捕获过滤器:用于实时抓包,减少数据量。
  • 验证过滤器:过滤栏背景绿色表示语法正确,红色表示错误。
  • 保存过滤器:右键过滤栏 > "Manage Filter Expressions"。
  • 组合使用 :用括号和逻辑运算符(如 &&||!)组合条件。
相关推荐
前端市界11 分钟前
当20个并发请求拖垮你的应用:从TCP握手到HTTP/2的终极排错指南
前端
量子-Alex12 分钟前
【大模型与智能体论文】REACT:协同语言模型中的推理与行动
前端·react.js·语言模型
冷崖30 分钟前
QML-动画
前端
太过平凡的小蚂蚁31 分钟前
适配器模式:让不兼容的接口协同工作
java·前端·javascript
程序员爱钓鱼39 分钟前
Python编程实战—面向对象与进阶语法 | 属性与方法
后端·python·ipython
锈儿海老师41 分钟前
超越平台:Vercel 的野心是定义编程语言的未来吗?
前端·javascript·架构
程序员爱钓鱼43 分钟前
Python编程实战——面向对象与进阶语法 | 构造函数与析构函数
后端·python·ipython
逻极1 小时前
Rust之结构体(Structs):构建自定义数据类型
开发语言·后端·rust
四念处茫茫1 小时前
Rust:复合类型(元组、数组)
开发语言·后端·rust
华仔啊1 小时前
为什么你的 @Transactional 不生效?一文搞懂 Spring 事务机制
java·后端