wireshark学习笔记

发布时间 2023-06-16 17:39:29作者: 百衲本

Wireshark 界面介绍

1.捕获报文
• 点击捕获->选项,打开捕获窗口
  • 网卡设备/流量/捕获过滤器,点击“开始”按钮开始抓包
  • 输出(指定缓存文件)/选项(显示、名称解析、自动停止抓包条件) 面板

2.报文展示

快捷方式工具栏

数据包列表面板的标记符号

 

 

 

 

 

 二、显示界面设置

1.设定时间显示格式(视图--时间显示格式中设置)

 绝对时间

相对时间

基于某一个数据包的相对时间

后续包临时基于3号包

 2.显示大小

放大

 缩小

还原

3.列设置

增加列

修改列

隐藏及删除列

名字解析 (将Mac地址、IP地址、端口转换成名称,浏览大的情况下慎重开启)

 

三、数据包操作

1.标记数据包

临时修改数据包着色

永久修改对话着色

 

3.合并数据包

4.打印数据包

四、首选项设置

1.修改默认打开文件路径(默认是上一次)

2.界面布局

3.修改抓包设置

 4.修改名称解析(之前是临时设置)

 五、抓包选项设置

1.接口及捕获器设置

2.输出文件配置

 3.设置名称解析及自动停止抓包

六、过滤器设置

1.捕获过滤器

通过指定条件,减少抓取的报文体积
使用 BPF 语法,功能相对有限

2.捕获器表达式

语法说明

1.type类型

host、port
net ,设定子网,net 192.168.0.0 mask 255.255.255.0 等价于 net 192.168.0.0/24
portrange,设置端口范围,例如 portrange 6000-8000

2.dir指定网络方向

src、dst、src or dst、src and dst
ra、ta、addr1、addr2、addr3、addr4(仅对 IEEE 802.11 Wireless LAN 有效)

3.protocol指定协议类型

ether、fddi、tr、 wlan、 ip、 ip6、 arp、 rarp、 decnet、 tcp、udp、icmp、igmp、icmp、
igrp、pim、ah、esp、vrrp

4、逻辑运算

与:&& 或者 and
或:|| 或者 or
非:! 或者 not

5.其他

gateway:指明网关 IP 地址,等价于 ether host ehost and not host host
broadcast:广播报文,例如 ether broadcast 或者 ip broadcast
multicast:多播报文,例如 ip multicast 或者 ip6 multicast
less, greater:小于或者大于

6.示例

src or dst portrange 6000-8000 && tcp or ip6   抓取源和目标端口范围为6000-8000的流量
src host 192.168.1.1 && dst port 80 抓取源地址为192.168.1.1,并且端口为80的流量
host 192.168.1.1 || host 192.168.1.2 抓取源地址为192.168.1.1或者192.168.1.2主机的流量
!broadcast 不抓取广播包
ether src host 00:00:5e:00:53:00 抓取源MAC地址为 00:00:5e:00:53:00的流量
port 80 抓取80端口流量
arp 只抓取ARP协议流量
icmp 只抓钱ICMP协议流量

官方示例:https://gitlab.com/wireshark/wireshark/-/wikis/CaptureFilters

 

 

 

 

 

 

 

 

 

 

 

 

 

Wireshark 

 

捕获过滤器
用于减少抓取的报文体积
使用 BPF 语法,功能相对有限

BPF 过滤器:Wireshark 捕获过滤器
Berkeley Packet Filter,在设备驱动级别提供抓包过滤接口,多数抓包工具都支持
此语法
expression 表达式:由多个原语组成
Expression 表达式
primitives 原语:由名称或数字,以及描述它的多个限定词组成
qualifiers 限定词
Type:设置数字或者名称所指示类型,例如 host www.baidu.com
Dir:设置网络出入方向,例如 dst port 80
Proto:指定协议类型,例如 udp
其他
原语运算符
与:&& 或者 and
或:|| 或者 or
非:! 或者 not
例如:src or dst portrange 6000-8000 && tcp or ip6
限定词
Type:设置数字或者名称所指示类型
host、port
net ,设定子网,net 192.168.0.0 mask 255.255.255.0 等价于 net 192.168.0.0/24
portrange,设置端口范围,例如 portrange 6000-8000

限定词
Dir:设置网络出入方向
src、dst、src or dst、src and dst
ra、ta、addr1、addr2、addr3、addr4(仅对 IEEE 802.11 Wireless LAN 有效)

限定词
Proto:指定协议类型
ether、fddi、tr、 wlan、 ip、 ip6、 arp、 rarp、 decnet、 tcp、udp、icmp、igmp、icmp、
igrp、pim、ah、esp、vrrp

限定词
其他
gateway:指明网关 IP 地址,等价于 ether host ehost and not host host
broadcast:广播报文,例如 ether broadcast 或者 ip broadcast
multicast:多播报文,例如 ip multicast 或者 ip6 multicast
less, greater:小于或者大于
基于协议域过滤
捕获所有 TCP 中的 RST 报文
tcp[13]&4==4
抓取 HTTP GET 报文
port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420
注意:47455420 是 ASCII 码的 16 进制,表示”GET ”
TCP 报头可能不只 20 字节,data offset 提示了承载数据的偏移,但它以 4 字节为单位
显示过滤器的过滤属性
任何在报文细节面板中解析出的字段名,都可以作为过滤属性
在视图->内部->支持的协议面板里,可以看到各字段名对应的属性名
例如,在报文细节面板中 TCP 协议头中的 Source Port,对应着过滤属性为 tcp.srcport
过滤值比较符号

英文
eq
ne
gt
lt
ge
符号
==
!=
>
<
>=
描述及示例
等于. ip.src==10.0.0.5
不等于. ip.src!=10.0.0.5
大于. frame.len > 10
小于. frame.len < 128
大于等于. frame.len ge 0x100

le <= 小于等于. frame.len 0x20
contains 包含. sip.To contains "a1762"
matches ~ 正则匹配.host matches "acme\.(org|com|net)"
bitwise_and & 位与操作. tcp.flags & 0x02
多个表达式间的组合

英文
and
or
xor
not
[…]
in
符号
&&
||
^^
!
意义及示例
AND 逻辑与. ip.src==10.0.0.5 and tcp.flags.fin
OR 逻辑或. ip.scr==10.0.0.5 or ip.src==192.1.1.1
XOR 逻辑异或. tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29
NOT 逻辑非. not llc
见 Slice 切片操作符.
见集合操作符

其他常用操作符
大括号{}集合操作符
例如 tcp.port in {443 4430..4434} ,实际等价于 tcp.port == 443 || (tcp.port >= 4430 && tcp.port 4434)
中括号[]Slice 切片操作符
[n:m]表示 n 是起始偏移量,m 是切片长度
eth.src[0:3] == 00:00:83
[n-m]表示 n 是起始偏移量,m 是截止偏移量
eth.src[1-2] == 00:83
[:m]表示从开始处至 m 截止偏移量
eth.src[:4] == 00:00:83:00
[m:]表示 m 是起始偏移量,至字段结尾
eth.src[4:] == 20:20
[m]表示取偏移量 m 处的字节
eth.src[2] == 83
[,]使用逗号分隔时,允许以上方式同时出现
eth.src[0:3,1-2,:4,4:,2] ==00:00:83:00:83:00:00:83:00:20:20:83


 Wireshark 面板

 

显示过滤器
对已经抓取到的报文过滤显示
功能强大