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"。
  • 组合使用 :用括号和逻辑运算符(如 &&||!)组合条件。
相关推荐
ZhengEnCi3 小时前
SQL统计查询入门宝典-COUNT-GROUP-BY技术解析
后端·sql
苏打水com3 小时前
企业级数据库实操手册:从架构部署到安全运维的落地指南
数据库·后端
通往曙光的路上3 小时前
vue啊哈哈哈哈哈哈哈哈
前端·javascript·vue.js
fouryears_234173 小时前
如何将Vue 项目转换为 Android App(使用Capacitor)
android·前端·vue.js
老杨说LLM3 小时前
《看不懂算我输!十分钟大白话理解MCP是什么》
后端
葡萄城技术团队3 小时前
在线Excel新突破:SpreadJS如何完美驾驭中国式复杂报表
前端
muchan923 小时前
这会不会引起编程范式的变革?
前端·后端·编程语言
进阶的鱼4 小时前
React+ts+vite脚手架搭建(四)【mock篇】
前端·javascript·react.js
Jagger_4 小时前
Scrum敏捷开发流程规范
前端·后端