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"。
  • 组合使用 :用括号和逻辑运算符(如 &&||!)组合条件。
相关推荐
摇滚侠34 分钟前
SpringMVC 入门到实战 文件上传 75-77
java·后端·spring·maven·intellij-idea
brucelee18641 分钟前
OpenClaw 浏览器控制(Chrome MCP)完整教程
前端·chrome
GIS数据转换器42 分钟前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
ct9781 小时前
React 状态管理方案深度对比
开发语言·前端·react
胡志辉的博客1 小时前
深入浅出理解浏览器事件循环:从一道输出题讲到 Chrome 源码
前端·javascript·chrome·chromium·event loop
代码不加糖1 小时前
js中不会冒泡的事件有哪些?
前端·javascript·vue.js
懂懂tty2 小时前
Vue2与Vue3之间API差异
前端·javascript·vue.js
AI焦点2 小时前
跨越协议鸿沟:Tool Use状态机从Anthropic到OpenAI兼容体系的适配要点
前端·人工智能
Dxy12393102162 小时前
Python线程锁:为什么多线程会“打架“,以及怎么解决
开发语言·前端·python