0x00 前言
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。大家可以用它来排查故障、分析攻击类型等,可以更快理解和发现问题
0x01 工作流程
- 确定Wireshark的位置。如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据。
- 选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
- 使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。
- 使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。
- 使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。
- 构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。
- 重组数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是一个重组一个完整的图片或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个图片或文件,这时候就需要使用重组数据的方法来实现。
0x02 使用技巧
TCP流绘制
为了便于理解在整个TCP会话期间,TCP 的Seq号和Ack号的工作过程,可使用Wireshark的绘制流功能,选择菜单栏中的统计 ->流量图 ->TCP flows
,会自动创建一个TCP流的图形。
每行代表一个数据包,左边列显示时间,中间列显示包的方向、TCP端口、包的负载长度和设置的标志位,右边列以10进制的方式显示相关Seq号/Ack号。
Wireshark默认展示的是相对Seq号/Ack号,相对Seq号/Ack号是和TCP会话的初始序列号相关联的。跟真实Seq号/Ack号相比,跟踪更小的相对Seq号/Ack号会相对容易一些。
如果想要关闭相对序列号/确认号,可以选择Wireshark菜单栏中的编辑 -> 首选项 ->protocols ->TCP
,取消勾选Relative sequence number
选项即可。
包的拼接与拆解
包的拆解:在数据包保存时,文件 -> 导出特定分组
在对话框下面有一些保存选项,这里可以设置按什么方将包拆解。选好后填好文件名保存即可完成拆解。
包的拼接:文件 -> 合并(merge)
然后选中一个将要被拼接的包,在该对话框下面设置接接方式和显示过滤器等
相对时间显示
以一个数据包的时间为基准,后面的数据包显示都是以这个数据包的时间作为基准,这种方式常用于对网络延时的响应判断,是判断服务器还是客户端还是线路的延迟,来解决网络速度问题。有时数据包丢失并非延迟造成,当两台主机间通信很慢时,并没有TCP 重传或者重复ACK 特征,这时需要查看初始连接握手以及接下来的两个数据包。以相对时间显示来查看数据包的延迟情况。
协议统计分层信息
使用统计 –> 协议分级
,此信息显示的是抓包文件包含的所有协议的树状分支。数据包通常会包含许多协议,有很多协议会在每个包中被统计。End Packets,End Bytes,End Mbit/s列是该层在抓包中作为最后一层协议的统计数据,按分组百分比参照的是相同协议层的百分比。
网络会话列表
网络会话是两个指定终端之间的数据流,使用统计 —> 对话
统计功能分析协议,通过对话列表,能看出很多网络问题。
第3层IP统计数据,IP会话是两个IP地址之间的所有数据流,观察源ip和目的ip分布规律可知道ip地址请求报文分布,点击每列表头可得到排序;也可知道包大小,字节大小。通过字节分布,看看是小包攻击还是应用层攻击。
第4层TCP或UDP统计数据:看看主要是tcp攻击还是udp数据包,此列表主要分析tcp的链接次数、源端口和目的端口分布规律,是固定还是随机的。比如每一个PC合理的连接数是10到20个,上百个则是不正常的。
网络端点列表
选择菜单栏中的统计 -> 端点
,分析IP地址的pps和bps,以及统计每个端点的地址、发送或收到的数据包的数量和字节。少量IP终端节点与大量TCP终端节点:可能的情况是每一台主机有很多个TCP连接,进而推测可能是网络攻击。
IP地址统计列表
使用统计 —IP Statistics—all addresss
,分析IP地址的排序和百分比
应用层数据包分析
使用统计 -http-分组计数器
、可以看到http get和post数据包分布规律,发现数据包大部分是get。
使用统计 -http-请求
可以看到请求url分布过来,发现get请求的url集中在极个别的url上面,url带有明显特征。
数据包着色
Wireshark地彩色高亮有助于快速标识协议。将数据包进行彩色高亮,可以让你很快地讲不通协议的数据包分开,而不需要对每个数据包都查看Packet List面板中地协议列,举例来说,如果觉得网络上有一个恶意的DHCP服务器在分发IP,可以简单地修改DHCP协议的着色规则,使其呈现黄色(或者其他便于辨认地颜色)。这可以能够更快地找出所有DHCP流量,数据包分析工作更有效率。使用视图 - 着色规则
来修改