《精通Wireshark》—第1章1.4节通过Wireshark进行数据包分析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

本节书摘来自异步社区《精通Wireshark》一书中的第1章1.4节通过Wireshark进行数据包分析,作者【印度】Charit Mishra(夏里特 米什拉),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 通过Wireshark进行数据包分析
数据包分析(也称为数据包嗅探或协议分析)的作用是抓取在网络(以太网或WiFi)传输中的数据包,并且对其中的信息进行解答的过程,其目的在于了解网络中正在发生的情况。数据包分析需要借助像Wireshark这样的协议分析软件来实现,这些软件可以在互联网上进行下载。其中有些软件是免费的,也有一些软件需要付费才能用于商业目的。在本书中,我们会使用Wireshark来进行网络分析。Wireshark是一款开源软件,同时也是互联网上最优秀的免费网络分析软件。

在当今网络环境中,各式各样的问题都有可能发生。因此,管理员需要时刻准备好一套最新的趁手工具,以便应对网络中有可能发生的一切情况。这些问题可能始自数据包级别,然后逐渐发展为大规模的网络中断。哪怕系统上运行的最好的协议和服务也有可能出现问题,并且给网络造成不良的影响。要想找出问题的根源,我们必须对数据包级别进行问题分析,才能对问题拥有更加深入的理解。如果读者的工作是网络运维,那就一定要对数据包进行观察。数据包分析可以在以下这些方面发挥重要的作用。

通过查看数据包和数据包中携带的具体信息,来对网络的故障进行分析,让网络尽在掌握。
检测出入侵网络的企图。无论是恶意用户企图进入网络,还是他们已经获得了访问某些网络资源的权限,都同样适用。
通过在安全设备上建立防火墙规则的方式,管理员可以检测内部用户或外部用户对于网络的不当操作。而Wireshark可以对这些规则进行监测。
隔离系统暴露出来的问题,让受到影响的系统不会被恶意用户利用,作为进一步访问网络的跳板。
当数据在网络中进行传输时,对数据进行监测,以便控制哪些类型的数据可以访问网络,哪些类型的数据不能访问网络。例如,读者可能希望在防火墙上创建一条规则,不允许用户访问Bit Torrent站点。阻塞用户访问这些站点的策略可以在路由器上实施,但通过Wireshark可以看到请求访问这些站点的用户来自何处。
根据管理员的需求精准地选出某一类数据包来收集和报告网络的统计信息。管理员可以创建出自己专用的抓包过滤规则,来帮助自己长期了解网络中的某些信息。
了解当前正在访问网络的用户,以及这些用户当前正在执行的操作。查看网络策略是否不允许这些用户执行某些操作,判断这些用户是否正在尝试突破安全策略的限制。网络管理员的这些日常工作都可以通过Wireshark轻松实现。
对客户端/服务器之间的通信进行调试,查看网络对等体之间相互发送的请求消息和响应消息,以便维护网络的完整性。
寻找网络中是否有某些不为人知但却正在蚕食网络带宽的应用。这些应用有可能会降低网络的安全性,或者将网络中的一些信息泄漏给公共网络。某些网络流量有可能会通过这些管理员没有注意到的应用,绕过网络的限制机制,悄然潜入到网络当中。
对网络协议的实施进行调试,分析因当前设备上存在的各类误配而导致的网络异常状况。
要想发现自己的网络有可能受到哪些恶意攻击的侵害,并对这些攻击进行分析、控制/监控,管理员要时刻留意网络中有可能出现的安全威胁。

在对数据包进行分析的时候,读者应该思考下面几点:应该对哪些协议进行分析?自己最擅长使用的软件是什么?哪款网络分析软件最能契合这个网络的需求?经验在这里发挥着重要的作用;只要开始使用Wireshark,读者就会逐渐对通过这种方式进行排错和数据包分析,涌现出新的想法。

数据包分析软件可以用来分析常见的网络层协议(如IP和ICMP)、传输层协议(如TCP和UDP)和应用层协议(如DNS和HTTP)。

由于Wireshark这款软件的GUI界面会提供海量的信息,因此这个界面对有些用户来说或许显得有些复杂,甚至会有用户将这一点视为这款软件的缺点之一。不过,有一些CUI/GUI工具可以解决这个问题。这些工具在使用上都很简单,因为它们的界面更加简洁,这类工具包括TShark、tcpdump、Fiddler等。

1.4.1 如何分析数据包
在抓取流量时,我们既可以抓取所有的原始流量,也可以只抓取数据包的头部,而忽略数据包的内容负载。抓取到的信息是将原数据经过解码后,以人类可以阅读的方式呈现出来的。这样用户就可以用一种更加直观的方式,来阅读网络中交互的数据了。

1.4.2 何为Wireshark
Wireshark是一款数据包嗅探软件。全世界的IT从业者都可以用这款软件来对网络进行分析。读者可以从下面的站点免费下载到Wireshark:https://www.wireshark.org/download.html

很多平台上都可以安装Wireshark,其中包括Linux、Mac和(大多数版本的)Windows系统。Wireshark是一款开源软件,也就是说这款软件的代码和必需的库都可以在我们之前刚刚提到的那个站点中下载到。

使用数据包嗅探软件时,有一个关键因素需要考虑,那就是要将数据包嗅探软件部署在物理网络的什么位置,才能在最大程度上利用这个软件。人们在提到数据包嗅探软件的时候,常常说这是一种插入到线缆中的软件。

既然是插入到线缆中,那么使用这类软件就不能只是在系统中安装Wireshark;在使用数据包嗅探软件之前,管理员还有一些内容应该知道。比如,要把嗅探软件部署在企业基础设施的什么位置才算合理,管理员也要了解不同类型的网络设备,因为不同的网络设备(集线器、交换机、路由器和防火墙)在工作方式上也各不相同。管理员应该知道这些设备分别如何工作,不同类型的网络设备如何处理网络流量。把嗅探软件部署在合理的位置,可以对管理员的数据包分析体验产生深度的影响。如果选择的位置正确,可以显著影响数据包分析的结果。

在部署了数据包嗅探软件之后,管理员要确认这台设备的NIC(网络接口卡)可以支持杂合的工作方式。在启用了杂合的工作方式之后,这个网络接口卡就不仅可以学习到以这台设备作为最终目的地的数据包,而且可以学习那些穿越这台设备的数据包了。网络中的每台客户端都可以抓取并且分析网络中的广播流量。网络设备可以通过广播的方式发送很多类型的流量,支持杂合模式的接口都可以监听得到这些流量。

ARP协议的流量也是通过广播发送的。地址解析协议的作用是将MAC地址解析为IP地址,反之亦然。像交换机这样的设备会向所有设备发送ARP数据包,希望它请求的设备用自己的MAC地址作出响应。通过这种方式,交换机会渐渐地获得一个MAC地址列表,以及这些MAC地址对应的IP地址,这个表称为CAM表(全称为内容可寻址存储器表)。现在,只要主机希望通过局域网和其他设备进行通信,就会由交换机将所需的信息发送给发给方。所以,不同设备的IP地址、MAC地址等信息都可以通过抓取ARP流量进行查看和记录。

1.4.3 它的工作方式
Wireshark是通过libcap/Winpcap驱动实现抓包功能的,所以管理员可以将自己的NIC切换为杂合模式。只有在一种情况下,管理员才不希望在杂合模式下进行抓包,那就是数据包直接发送给这台设备的情况。在基于Windows的系统中,应该提升管理员权限来对数据包进行嗅探和分析。所有协议分析软件都会按照下面三大步骤进行操作,这三大部分是收集、转换和分析。下面我们分别对这三步进行介绍。

收集:在选择某个接口来监听流量的时候,这是第一步操作。在这个步骤中,用户可以获取到网络中的一些原始数据。在这一步中,管理员需要将自己的接口切换到杂合模式下,这样在捕获到了网络中的广播流量之后,这些信息才能在Wireshark软件的GUI界面中显示出来。
转换:这一步的目的是提升二进制数据的可读性。协议分析软件(如Wireshark)可以将网络数据包转换成更加简单的形式,让像我们这样的普通人更容易理解数据包中的内容,也让我们日复一日的工作变得更加轻松。
分析:在最后一步中,当我们完成网络数据包的收集和转换之后,就需要开始一步一步认真地对数据进行分析了。首先,应该查看协议的具体信息,以及这些协议具体的配置方式。接下来,应该查看主机和目的地址,以及这些设备之间共享的信息。如果还有其他需要分析的内容,则应该在获得用户许可之后,再对收集到的数据进行选择和查看。
如果读者希望理解抓取和分析数据的进程,那就真的需要非常精通网络协议,并且十分熟悉它们的工作方式,因为通过网络完成的通信就是由这些协议(如ARP、动态主机控制协议[DHCP]、域名服务[DNS]、传输控制协议[TCP]、互联网协议[IP]、HTTP等)进行控制的。

协议是指控制两台网络设备间的通信进程,以及管理底层操作环境的规则与规范。每个协议的复杂程度各不相同,这取决于各个协议实施的环境与方式。总地来说,所有协议的工作方式都大同小异,每个协议都会发送请求,然后等待对方进行确认,当设备接收到确认消息之后,通信就会建立起来。

在设备之间成功传输数据之后,连接就会适时地终止,而这次通信也就会被设备标记为是一次成功的通信,通信期间一个比特都没有丢失。数据在进行传输时,协议也需要负责维系通信的完整性。也就是说,如果发送方发送了信息abc,接收方在接收时也应该按照这个顺序接收到这个信息。如果信息在传输的过程中遭到了篡改,这也就表示传输信息的协议本身是不可靠的。分析所有这些任务是所有网络协议分析软件的基本功能。

相关文章
|
7月前
|
网络协议
自己总结的wireshark抓包技巧
自己总结的wireshark抓包技巧
154 0
|
Linux
利用wireshark抓包分析
利用wireshark抓包分析
111 0
|
2月前
|
网络协议 安全 Linux
|
网络协议
Wireshark使用
Wireshark使用
57 0
|
5月前
wireshark 抓包使用
wireshark 抓包使用
68 8
|
7月前
|
运维 网络协议 Python
使用tcpdump和wireshark进行服务器抓包分析
使用tcpdump和wireshark进行服务器抓包分析
278 0
Wireshark的数据包
通过Wireshark工具,可以轻松的看到网卡的数据信息。通过Wireshark显示的数据包内容信息,通常分七栏,介绍一下:
|
网络协议
WireShark抓包分析
WireShark抓包分析
181 0
|
网络协议 安全 网络安全
Wireshark一次抓包心得
使用Wireshark抓包,来了解邮箱与服务器之间的交互。
361 0
Wireshark一次抓包心得
|
网络协议 Unix Linux
Wireshark和TcpDump抓包分析心得
Wireshark和 TcpDump抓包分析心得    1. Wireshark与tcpdump介绍  Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工作环境中的Linux一般只有字符界面,且一般而言Linux都自带的tcpdump,或者用tcpdump抓包以后用Wireshark打开分析。
4621 0