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
相关推荐
代码欢乐豆1 小时前
数据采集之selenium模拟登录
python·selenium·测试工具
Tassel_YUE1 小时前
网络自动化04:python实现ACL匹配信息(主机与主机信息)
网络·python·自动化
Diamond技术流2 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
Spring_java_gg2 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
方方怪3 小时前
与IP网络规划相关的知识点
服务器·网络·tcp/ip
测试杂货铺4 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
weixin_442643424 小时前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
阑梦清川4 小时前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee
FeelTouch Labs5 小时前
Netty实现WebSocket Server是否开启压缩深度分析
网络·websocket·网络协议
小码哥说测试5 小时前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman