聊一聊Wireshark高级特性

今天这篇文章继续更新Wireshark高级特性,主要包括流跟踪(TCP流、UDP流、SSL流、HTTP流)、数据包的长度、数据流图等。

我们都知道Wireshark是开源软件,而开源软件的美妙之处就是在于,当对正在进行的事情感到困惑时,你可以查找源代码来找到具体原因。

流跟踪

Wireshark分析功能中令人满意的一点就是它能够将来自不同的数据重组成统一的易读的格式,流功能的强大之处在于可以把客户端发往服务器的数据都排好序使其变得更易查看。

目前这五种流可以被跟踪。他们分别是TCP、UDP、SSL、HTTP、QUIC。

  • TCP流
    重组使用TCP协议的数据,比如HTTP和FTP。

  • UDP流
    重组使用UDP协议的数据,比如DNS。

  • SSL流
    重组加密的协议,比如HTTPS。你必须提供秘钥来解密流量。

  • HTTP流
    从HTTP协议中重组和解压数据,当使用TCP流跟踪但又没有完全解码出的HTTP数据时,这个功能就派上用场了。

说了这些,我们以一个简单的HTTP交互举例来说,在报文中单击一个TCP或者HTTP数据包
在这里插入图片描述
右键单击这个文件并选择跟踪流。这时候TCP流就会在一个单独的窗口中显示出来。

在这里插入图片描述

我们主要到了没有,这个窗口中的文字以两种颜色显示,其中红色用来标明从源地址前往目标地址的流量。

蓝色用来区分出相反方向,也就是从目标地址到源地址的流量。在我们的例子中,客户端最先建立了到服务器的连接,所以显示为红色。

在这个TCP流中,你可以清晰的看到这两台主机之间进行绝大多数的通信,在最开始通信的时候,是对WEB跟目录下的GET请求,然后是来自服务器的一个HTTP/1.1 101 表示切换到websocket。

在这个窗口中,你除了能够看到这些原始数据,你还可以在文本间进行搜索,将其保存到一个文件,打印出来,也可以用于ASCLL码、EBCDIC、十六进制或者C数组的格式去看,这些选项都可以在跟踪TCP流窗口的下面找到。

在这里插入图片描述

跟踪SSL流

跟踪TCP和UDP流是一个简单的双击操作,但以可读的形式查看SSL流还需要额外的步骤,因为流量都是加密,所以你必须提供与服务器加密所对应的私钥。获取私钥的方法取决于服务器使用的技术,这里就不阐述了。

但是一旦有了私钥,你可以按照这个步骤把它加载到Wireshark里。

单击 (编辑->首选项 进入Wireshark选项设置)
展开协议(Protocols)部分并且选择TLS协议标题
提供所需要的信息,包含秘钥文件等等。

在这里插入图片描述
如果顺利的话,可以获取客户端和服务器之间的加密流量了。然后我们在单击右键HTTPS的包,单击跟踪流,然后你就可以清晰地看到一串TLS流的明文内容了。

数据包的长度

一般情况下,我们都知道,一个以太网的帧最大长度是1518字节,除去以太网、IP、TCP头,还剩下1460字节以提供应用层的头或者数据使用。

如果你知道报文传输的最小需求,那么我们就可以通过一个捕获文件中数据包长度的分布情况,做一些流量的合理猜测。

Wireshark 提供了数据包的长度窗口,帮助你查看数据包基于其长度的分布情况。通过选择(统计-> 分组长度)

在这里插入图片描述

特别注意哪些大小为1280-2559字节的数据包统计的行。这些较大的数据包通常表示数据传输,而较小的数据包则表示协议控制序列。

我们看到这个较大的数据包占了相当大的比重(44.18%),这可以是HTTP下载、FTP上传、或者其他类型的主机之间进行了数据传输的网络通信。

剩下了大多数数据包(33.61%)都是在40-90字节范围内,而处于这个范围的数据包通常不包含数据TCP控制数据包。

我们可以想一下,协议头一般的大小,以太网报头是14字节。
在这里插入图片描述
IP报头至少20字节

在这里插入图片描述
没有数据以及选项的TCP数据包也是20字节。

在这里插入图片描述
也就意味着典型TCP控制数据包(例如:TCP、ACK、RST、FIN数据包)。这样加起来大约是54字节并落入这个区域了。当然IP或者TCP的额外选项会增加它的大小。

数据流图

数据绘图功能对于可视化连接以及显示一定时间的数据流非常有用,这些信息使你可以更轻松地了解设备的通信方式。

要生成数据流图,选择(统计->流量图)

在这里插入图片描述

数据流图是一个将两个设备之间相互通信可视化的好方法。

总结

跟踪TCP流在你和一些协议打交道的时候,绝对是一个好方法。对于数据包的长度我们可以通过一个捕获数据包的长度的分布情况,做一些对流量的猜测,这个技巧对我们理解捕获文件的组成结构很用帮助。如果存在着很多较大的数据包,那么很可能是进行了数据传输,如果绝大多数的数据包都很小,我们假设这个捕获中存在协议控制命令。

欢迎关注微信公众号【程序猿编码】,欢迎添加本人微信号(17865354792),交个朋友,咱们一起学习进步!

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值