Wireshark基本使用

先选择接口,设置过滤器,然后再开始捕获,暂停

1. 选择接口

计算机有很多接口,如蓝牙、以太网、WiFi。选择接口,Wireshark只捕获该接口的报文,这样,避免抓取多余报文,干扰分析。

打开软件,双击接口,如下图所示:

image-20230419090755276

重新选择接口。停止捕获,点击捕获 --> 选项,或者直接点击工具栏的快捷键,勾选所需的接口,开始捕获。

image-20230419091532987

2. 过滤器

使用过滤规则,可以筛选出想要的网络数据包。在过滤器框中输入过滤规则,如下图:

image-20250414145359074

过滤器规则的名字,可以点击协议的字段,在状态栏会显示对应的规则名字,也可以将字段拖曳到过滤器中,如下图:

image-20250414151258832

2.1 协议过滤

直接输入协议名称。

2.2 通过域名查询

2.2.1 过滤DNS域名查询

(1)过滤DNS请求中的域名

使用 dns.qry.name 过滤特定域名的DNS请求:

dns.qry.name == "example.com"

使用 contains 匹配包含特定字符串的域名(如子域名):

dns.qry.name contains "example"

(2)过滤DNS响应中的域名

使用dns.resp.name过滤特定域名的DNS响应:

dns.resp.name == "example.com"

2.2.2 HTTP(s)

(1)HTTP

若域名出现在 HTTP 请求头(如 Host 字段)中,使用 http.host

http.host == "example.com"

(2)HTTPS

对于 HTTPS 流量,域名可能出现在TLS握手的SNI扩展中:

tls.handshake.extensions_server_name == "example.com"

2.2.3 模糊匹配与反向过滤

(1)模糊匹配 使用通配符或正则表达式,使用matches关键字:

dns.qry.name matches "\\.example\\.com$"  # 匹配以 .example.com 结尾的域名

(2)反向过滤 排除特定域名的流量,使用!

!(dns.qry.name == "example.com")

2.3 端口过滤

过滤特定端口的数据包,也可以具体到源端口或目标端口:

tcp.port == 80

tcp.srcport == 80
tcp.dstport == 80

过滤大于某个端口的数据包:

tcp.port >= 60000

2.4 IP地址过滤

过滤IP地址为特定值的数据包,也可以具体到源IP地址或目标IP地址:

过滤源IP地址或目标IP地址为特定值的数据包:

ip.addr == 210.34.128.33

ip.src == 210.34.128.33
ip.dst == 210.34.128.33

3. 表达式

通过逻辑操作符,可以组合更复杂的过滤规则,更精准找到数据包。

3.1 逻辑运算符

操作符 类C风格 描述 示例
and && 逻辑与 ip.src == 210.34.128.33 and tcp.flags.fin==1
or \ \ 逻辑或 ip.src == 210.34.128.33 or ip.src==192.1.1.1
xor ^^ 逻辑异或 tr.dst0:3 == 0.6.29 xor tr.src0:3 == 0.6.29
not ! 逻辑非 ! udp
... 子序列/切片操作符 eth.src:4 == 00:00:83:00
in 设定集合里的成员 tcp.port in {443, 4430..4434}

(1)子系列

类似于Python中的切片用法。举例,过滤http请求方法,前三个字符为GET的报文:

http.request.method[0:3]=="GET"

指定源mac地址前三位,举例:

eth.src[0-2] == 38:22:d6

3.2 比较操作符

操作符 别名 类C风格 描述 示例
eq any_eq == 等于 ip.src == 210.34.128.33
ne all_ne != 不等于 ip.src != 210.34.128.33
all_eq === 全等 ip.src === 210.34.128.33
any_ne !== 不全等 ip.src !== 210.34.128.33
gt > 大于 frame.len > 10
lt < 小于 frame.len < 128
ge >= 大于或等于 frame.len ge 0x100
le <= 小于或等于 frame.len <= 0x20
contains 协议、字段或切片包含某个值 sip.To contains "a1762"
matches ~ 使用Perl正则(PCRE)匹配一个协议或文本字段 http.host matches "acme.(org\ com\ net)"

(1)不全等

如果过滤字段有一个不等于,那么就满足条件,举例:

tcp.port !== 80

排除了源端口和目的端口的都是80的情况。

(2)matches

匹配模式,支持Perl正则,匹配一个协议或文本字段,比contains更灵活。

3.3 层级操作符

层级操作符#后面跟十进制数,将字段限制到协议栈中的某一层。

4. 保存捕获内容

保存捕获内容,便于后续分析。先暂停捕获,开始 --> 保存。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2025-04-14 15:31

results matching ""

    No results matching ""