Wireshark显示过滤器常用关键字及过滤表达式

Wireshark显示过滤器常用关键字及过滤表达式

1. 过滤器类型

Wireshark抓包工具提供了两种类型过滤器:抓包过滤器 和 显示过滤器。

  • 抓包过滤器: 抓取满足过滤条件的数据包,不满足过滤条件的数据包不会被抓取。
  • 显示过滤器: 包已经被抓取到,显示只满足过滤条件的数据包,不满足过滤条件的数据包在后台。

①. 抓包过滤器

Wireshark 抓包工具在抓包过滤时,其过滤语法格式为 BPF 格式。

BPF (全称为Berkeley Packet Filter),翻译过来就是 "伯克利封包过滤器" (或者也称 "柏克莱封包过滤器" )。

抓包过滤器语法包含四个核心元素:类型、方向、协议 和 逻辑运算符。

  • 类型Type: 主机(host)、网段(net)、端口(port);
  • 方向Dir: 源地址(src)、目标地址(dst);
  • 协议Protocol: 各种网络协议,比如:tcpudphttp
  • 逻辑运算符: 与( && )、或( || )、非( !) ;

四个元素可以自由组合。

②. 显示过滤器

显示过滤器在抓包后或者抓包过程中使用。

显示过滤器的语法包含五个核心元素:IP、端口、协议、比较运算符和逻辑运算符。

  • IP地址: ip.addrip.srcip.dst
  • 端口: tcp.porttcp.srcporttcp.dstportudp.port
  • 协议: arpipicmptcpudphttpntpftpftp-datasnmpdnshdcpmodbusmysql;
  • 比较运算符: >< == >=<=!= ;
  • 逻辑运算符: andornotxor&&|| 等;

五个元素可以自由组合。

显示过滤器还可以使用 "frame\[\]""data\[\]" 定位帧指定位置内容。

  • frame\[\]: 全域中定位数据(匹配数据);
  • data\[\]: 数据域中定位数据(匹配数据);

2. 常用显示过滤器关键字及其表达式

1. IP地址过滤

目标地址过滤

shell 复制代码
ip.dst == 10.46.21.11

源地址过滤

shell 复制代码
ip.src == 10.56.1.31

2. 端口过滤

UDP端口过滤

shell 复制代码
udp.port == 50001

UDP 目标端口过滤

shell 复制代码
udp.dstport == 4000

UDP 源端口过滤

shell 复制代码
udp.srcport == 50001

TCP端口过滤

shell 复制代码
tcp.port == 2048

TCP 目标端口过滤

shell 复制代码
tcp.dstport == 512

TCP 源端口过滤

shell 复制代码
tcp.srcport == 501

3. 常用协议过滤

ICMP协议过滤

shell 复制代码
icmp

UDP协议过滤

shell 复制代码
udp

TCP 协议过滤

shell 复制代码
tcp

MYSQL协议过滤

shell 复制代码
mysql

HTTP 协议过滤

shell 复制代码
http 

4. Modbus协议过滤

Modbus协议过滤

shell 复制代码
modbus.func_code==0x03

5. MySQL协议过滤

MySQL协议过滤

shell 复制代码
mysql

6. IEC60870-104协议过滤

IEC60870-104协议过滤

shell 复制代码
104apci     应用规约控制信息帧

104asdu     应用服务数据单元帧

7. 多条件组合过滤

多个条件组合过滤

比如,过滤应用层协议类型为TCP,目标端口为512,源地址为192.168.58.151 的数据帧,过滤表达式如下:

shell 复制代码
tcp and tcp.dstport==512 and ip.src==192.168.58.151

8. frame\[\] 全域过滤

A. 单个字节匹配过滤

单个字节数据域匹配过滤

shell 复制代码
frame[2] == 5e
B. 多个连续字节匹配过滤

多个连续字节数据域匹配过滤(比如 frame[0:6]: 表示从第0个索引位置开始,匹配连续6个字节 )

shell 复制代码
frame[0:6] == ff:ff:ff:ff:ff:ff
C. 多个不连续字节匹配过滤

多个不连续字节数据域匹配过滤(比如 frame[0,7,8,11]: 表示匹配索引位置 0,7,8、11 共四个数据内容)

shell 复制代码
frame[0,7,8,11] == ff:50:56:08

9. data\[\] 数据域过滤

A. 单个字节匹配过滤

单个字节数据域匹配过滤

shell 复制代码
data[0] == 90
B. 多个连续字节匹配过滤

多个连续字节数据域匹配过滤(比如 data[0:4]: 表示从第0个索引位置开始,匹配连续四个字节 )

shell 复制代码
data[0:4] == 90:eb:03:03
C. 多个不连续字节匹配过滤

多个不连续字节数据域匹配过滤(比如 data[0,1,6]: 表示匹配索引位置 0,1,6 共三个数据内容)

shell 复制代码
data[0,1,6] == 90:eb:a7
相关推荐
daad77721 分钟前
记录matlab状态机demo
java·网络·matlab
paopaokaka_luck1 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
Yang96111 小时前
告别“慢工出细活”:如何平衡光纤熔接的速度与精度?
网络
我的xiaodoujiao2 小时前
快速学习Python基础知识详细图文教程14--模块
开发语言·python·学习·测试工具
东舟技术2 小时前
AI全链路测试智能体上线啦!
人工智能·功能测试·测试工具·自动化
Tinyfacture2 小时前
接口自动化之添加商品(pytest)
python·测试工具·自动化·pytest
Nebula_g3 小时前
Java实现本地Socket通信(四)
网络
QH139292318803 小时前
Keysight N9917B N9918B手持式综合微波分析仪
网络·科技·嵌入式硬件·集成测试·信息与通信
Drgfd3 小时前
半导体国产替代进入“深水区”:决战设备、材料、IP三大高地
网络·fpga开发
我星期八休息4 小时前
扩展— TCP 全连接队列与 tcpdump 抓包
linux·服务器·开发语言·前端·网络·tcp/ip·tcpdump