Wireshark网络抓包工具分析操作---详细介绍篇
前言
①Wireshark 的强大之处在于它不仅能捕获数据包,还能对捕获的数据进行进一步的分析。
②具体来说,对pcap包的分析可以分为:
- 过滤功能——输入过滤规则,并显示符合规则的分组。
- 统计功能——对所有/部分数据包的情况进行总览。
- 分析功能——将某些字段作为过滤器应用&启用/停用某些协议。
- 查找功能——在所有/部分数据包中查找特定值。
- 查看功能——查看字段/分组/会话的字节流 。
过滤功能
1、显示过滤器
①显示过滤器是 Wirshark 最强大的分析工具之一,可以输入规则过滤出符合规则的分组,并显示在分组列表中。配合其他功能可以达成 1+1>2 的效果。
②Wireshark 的显示过滤规则由三要素组成: 字段名称 - 关系 - 值 ,其中字段名称是必须项。
③字段可以指定偏移范围。 打开显示过滤器表达式窗口,可以看到 Wireshark 支持的各种字段和逻辑关系: (善用搜索可以快速找到字段)
④上图中,显示过滤器支持的逻辑关系符号含义总结如下: (不推荐使用 != 号)
⑤每次打开表达式窗口选择字段过于麻烦,更好的方法是直接在显示过滤器栏中输入:
(去掉引号后,过滤规则依然成立,输入框显示绿色)
⑥显示过滤器栏的颜色提示规则语法的正确程度:
- 绿色表示语法正确,可以应用;
- 黄色表示语法有歧义,但可以应用;
- 红色表示语法有问题,且无法应用。
⑦点击显示的字段,状态栏会显示这个字段的名称。如果懒得输入字段名,可以直接在分组详情中右键字段 - 作为过滤器应用 - 选中: (规则支持与、或、非、与非、或非)
若选中栏为灰色不可选状态,点击其他区域后再次选中就行。
⑧一些常用的显示过滤规则作为参考:
⑨常用的规则,可以直接添加到显示过滤器书签中。之后就无须输入,直接选择即可。
统计功能
1、会话/对话统计
拿到一个pcap包,不管对其中的数据是陌生还是熟悉,推荐的第一步操作是打开统计功能,查看数据包整体的会话情况。点击统计 - 会话打开会话统计窗口:
会话统计窗口的顶部显示不同层级和协议的会话数量,在这个数据包中可以看到 TCP 流有16条而 UDP 流有14条。对比会话数量可以得到数据包的 IPv4/IPv6 占比和 TCP/UDP 协议占比情况。
点击TCP可以查看所有TCP流的各种字段,如源IP、源端口、目的IP、目的端口、分组数量、会话流量、单向的分组数量和流量、会话开始时间、会话持续时间等等。
会话默认按照 Address A 字段升序排列,Port A 默认大于 Port B。如果要按照某个字段大小升序或降序排列,点击该字段即可。
考虑到抓包时手机操作系统、推送、输入法等服务会产生大量杂质流量,可以在显示过滤器栏里输入规则,点击回车后分组列表里会只显示符合规则的分组。
上述会话统计窗口内可以看到4480端口的流量比较大,我们可以只过滤端口为4480的两条流。右键第一条流 - 作为过滤器应用 - 选中 - A↔B,可以看到显示过滤器栏中生成的规则。(过滤生效后,右下角可看到符合规则的分组数量为1551。)
显示过滤规则生效以后,在会话统计窗口内选中【显示过滤器的限制】,此时只会统计显示的分组的会话信息: (符合过滤器条件的只有一条 TCP 流)
2、IO图表
①IO图表可显示数据的的bps (每秒比特数) 和pps (每秒数据包数),可用来观察pcap包的所有分组或某些特定分组的流量变化。
②点击统计-IO图表,调出IO图表,可以观察每秒分组数量的图形化展示界面。双击Y Axis选项,可以调整Y轴的单位为packets、Bytes或Bits。
分析功能
1、专家信息
与会话功能类似,专家信息同样可以总览整个pcap包。选择分析 - 专家信息,可调出专家信息窗口:
类型字段有错误、警告、注意、对话四类,标识问题的严重程度:
1) 错误:标识数据包的错误,或者解析器解析错误。
2) 警告:非正常通信的异常数据包。
3) 注意:正常通信过程中的异常数据包。
4) 对话:关于正常通信的基本信息。
概述字段可反映问题的具体内容,比如重传、中断、丢失、乱序等问题。
分组字段有Malformed、Security、Protocol、Sequence等,标识问题的具体类型。
一般来说,错误和警告可反映故障的原因,注意和对话可以辅助分析。
2、启用的协议
①Wireshark 支持上千种协议,有些冷门的协议并非我们所需要的。同时 Wireshark 并非万能,有时可以确定是某种协议,Wireshark 却没解析出来。这时候可以查看一下协议是否被启用。
②选择分析 - 启用的协议,可打开启用协议窗口,并启用/停用特定的协议:
查找功能
1、查找
①快捷键 Ctrl+F 可调出查找栏,可高效率地分组列表中显示的所有分组内是否有特定值。
注意:十六进制时,分组列表为灰色不可选状态
②要在分组字节流中查找字符串或者16进制值,需要先选择字符串选项,此时搜索区域选项从不可选变为可选,然后选择分组字节流选项。
③直接在搜索框输入值,点击查找即可。再次点击会跳转至下一个含有搜索值的分组。
④若数据包中不包含该字符串,底部的状态工具栏会显示黄色闪烁:
查看功能
1、追踪流
①选中某一帧,右键 - 追踪流 - TCP流,可以调出追踪TCP流窗口,显示这条流的所有报文的字节流。
②上行流为红色,下行流为蓝色。可以在下拉菜单中选择同时显示上下行,或只选择单向流。 作者:咸菜一梗 https://www.bilibili.com/read/cv15352055?spm_id_from=333.999.0.0 出处:bilibili
③支持以ASCII码、原始16进制、Hex转储等编码方式显示数据。可以使用查找栏查找关键的值,选择显示原始数据时可查找16进制值,显示ASCII码时可查找字符串类型值。
2、显示分组字节
①右键特定字段,选择导出分组字节,可调出分组字节窗口。
《显示为》 选项可选择编码方式,可以根据需求选择,然后导出该字段的所有字节。明文数据可以导出ASCII码。部分压缩文件可导出原始数据。
转载至:https://www.bilibili.com/read/cv15352055?spm_id_from=333.999.0.0