Wireshark 分析操作介绍 您所在的位置:网站首页 追踪tcp流 Wireshark 分析操作介绍

Wireshark 分析操作介绍

2023-07-21 09:24| 来源: 网络整理| 查看: 265

1. Wireshark 分析操作

Wireshark 的强大之处在于它不仅能捕获数据包,还能对捕获的数据进行进一步的分析。具体来说,对pcap包的分析可以分为:

过滤功能——输入过滤规则,并显示符合规则的分组

统计功能——对所有/部分数据包的情况进行总览

分析功能——将某些字段作为过滤器应用&启用/停用某些协议

查找功能——在所有/部分数据包中查找特定值

查看功能——查看字段/分组/会话的字节流

1.1 过滤功能

显示过滤器

显示过滤器是 Wirshark 最强大的分析工具之一,可以输入规则过滤出符合规则的分组,并显示在分组列表中。配合其他功能可以达成 1+1>2 的效果。

Wireshark 的显示过滤规则由三要素组成:

字段名称 - 关系 - 值

其中字段名是必须项。

字段可以指定偏移范围。打开显示过滤器表达式窗口,可以看到 Wireshark 支持的各种字段和逻辑关系:

善用搜索可以快速找到字段

        上图中,显示过滤器支持的逻辑关系符号含义总结如下:

不推荐使用 != 号

每次打开表达式窗口选择字段过于麻烦,更好的方法是直接在显示过滤器栏中输入:

去掉引号后,过滤规则依然成立,显示绿色

显示过滤器栏的颜色提示规则语法的正确程度:

绿色表示语法正确,可以应用;

黄色表示语法有歧义,但可以应用;

红色表示语法有问题,且无法应用。

点击显示的字段,状态栏会显示这个字段的名称。

如果懒得输入字段名,可以直接在分组详情中右键字段 - 作为过滤器应用 - 选中:

规则支持与、或、非、与非、或非。

若选中栏为灰色不可选状态,点击其他区域后再次选中就行。

这里列出了一些常用的显示过滤规则作为参考:

常用的规则,可以直接添加到显示过滤器书签中。之后就无须输入,直接选择即可。

我自己已经保存了十几条常用的规则了

1.2 统计

会话/对话统计

拿到一个pcap包,不管对其中的数据是陌生还是熟悉,推荐的第一步操作是打开统计功能,查看数据包整体的会话情况。点击统计 - 会话打开会话统计窗口:

不同版本的 Wireshark 中翻译有所差异,会话 = 对话 = Conversation

会话统计窗口的顶部显示不同层级和协议的会话数量,在这个数据包中可以看到 TCP 流有16条而 UDP 流有14条。对比会话数量可以得到数据包的 IPv4/IPv6 占比和 TCP/UDP 协议占比情况。

点击TCP可以查看所有TCP流的各种字段,如源IP、源端口、目的IP、目的端口、分组数量、会话流量、单向的分组数量和流量、会话开始时间、会话持续时间等等。

会话默认按照 Address A 字段升序排列,Port A 默认大于 Port B。如果要按照某个字段大小升序或降序排列,点击该字段即可。

点击Packets,可使会话按照分组数量大小进行降序排序

考虑到抓包时手机操作系统、推送、输入法等服务会产生大量杂质流量,可以在显示过滤器栏里输入规则,点击回车后分组列表里会只显示符合规则的分组。

上述会话统计窗口内可以看到4480端口的流量比较大,我们可以只过滤端口为4480的两条流。右键第一条流 - 作为过滤器应用 - 选中 - A↔B,可以看到显示过滤器栏中生成的规则。

过滤生效后,右下角可看到符合规则的分组数量为1551

显示过滤规则生效以后,在会话统计窗口内选中【显示过滤器的限制】,此时只会统计显示的分组的会话信息:

符合过滤器条件的只有一条 TCP 流

IO 图表

IO图表可显示数据的的bps (每秒比特数) 和pps (每秒数据包数),可用来观察pcap包的所有分组或某些特定分组的流量变化。

点击统计-IO图表,调出IO图表,可以观察每秒分组数量的图形化展示界面。双击Y Axis选项,可以调整Y轴的单位为packets、Bytes或Bits。

IO 图表同样可以配合显示过滤规则

流媒体的会话一般呈现开始时pps较高,中间和末尾pps稳定的特点。

1.3 分析

专家信息

与会话功能类似,专家信息同样可以总览整个pcap包。选择分析 - 专家信息,可调出专家信息窗口:

Malformed Packet 为畸形包,说明数据包结构不符合规范

类型字段有错误、警告、注意、对话四类,标识问题的严重程度:

1)  错误:标识数据包的错误,或者解析器解析错误。

2)  警告:非正常通信的异常数据包。

3)  注意:正常通信过程中的异常数据包。

4)  对话:关于正常通信的基本信息。

概述字段可反映问题的具体内容,比如重传、中断、丢失、乱序等问题。

分组字段有Malformed、Security、Protocol、Sequence等,标识问题的具体类型。

一般来说,错误和警告可反映故障的原因,注意和对话可以辅助分析。

启用的协议

Wireshark 支持上千种协议,有些冷门的协议并非我们所需要的。同时 Wireshark 并非万能,有时可以确定是某种协议,Wireshark 却没解析出来。这时候可以查看一下协议是否被启用。

选择分析 - 启用的协议,可打开启用协议窗口,并启用/停用特定的协议:

最好不要点击全部启用...

重新载入 Lua 插件等功能,由于并非是本教程所涉及到的操作,所以暂且略过。之后有机会再讲讲如何写 Lua 脚本。

1.4 查找功能

查找

快捷键 Ctrl+F 可调出查找栏,可高效率地分组列表中显示的所有分组内是否有特定值。

十六进制时,分组列表为灰色不可选状态

要在分组字节流中查找字符串或者16进制值,需要先选择字符串选项,此时搜索区域选项从不可选变为可选,然后选择分组字节流选项。

直接在搜索框输入值,点击查找即可。再次点击会跳转至下一个含有搜索值的分组。

注意可以区分大小写

若数据包中不包含该字符串,底部的状态工具栏会显示黄色闪烁:

1.5 查看功能

追踪流

选中某一帧,右键 - 追踪流 - TCP流,可以调出追踪TCP流窗口,显示这条流的所有报文的字节流。

对于数据量较大的流,可能需要加载一段时间

上行流为红色,下行流为蓝色。可以在下拉菜单中选择同时显示上下行,或只选择单向流。

支持以ASCII码、原始16进制、Hex转储等编码方式显示数据。

可以使用查找栏查找关键的值,选择显示原始数据时可查找16进制值,显示ASCII码时可查找字符串类型值。

若没有找到值,则会滚动条会显示在最顶部

显示分组字节

右键特定字段,选择导出分组字节,可调出分组字节窗口。

“显示为” 选项可选择编码方式,可以根据需求选择,然后导出该字段的所有字节。明文数据可以导出ASCII码。部分压缩文件可导出原始数据。

Wireshark 会自动对 HTTP 头部的字段进行排版

2. 总结

本篇较详细地介绍了 Wireshark 各种常见的分析操作。下一篇将对数据包进行实战分析,看看市面上常见的APP和 BiliBili 在传输些什么数据内容,我们又能解析出什么有价值的信息。这些价值信息包括了通讯录、账号密码、设备经纬度、手机号,甚至是聊天记录,但不一定是明文。Wireshark不适合用来解密,所以在下一篇,我们就能体会到这款软件的能力边界在哪里。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有