精通Wireshark(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-20 15:43:07

点击下载

作者:[印度] 夏里特·米什拉(Charit Mishra)

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

精通Wireshark

精通Wireshark试读:

前言

在我们周围,几乎每台设备都已经与其他设备通过网络连接在了一起。连接的目的或为共享信息,或为给其他设备提供支持。如果头脑中拥有了这样一幅图景,你认为网络中最重要的环节是哪一部分呢?显然,一定不是设备之间的物理连接。

本书的着眼点是如何使用Wireshark来理解网络中最常见的异常情况,并对这些情况进行排错。本书有可能是你网络/流量/数据包分析的起点,但你有可能最终会称为这一代人的“救世主”,成为你所在团队的超级英雄,你可以轻松帮助人们解决在网络连接、网络管理和计算机取证等方面遇到的疑难。如果你的日常工作就需要和计算机网络打交道,那么本书可以成为好的开始。本书会从最基本的概念开始说起,循序渐进带领读者进入最有深度的概念。

在本书中,我尽可能涵盖了大家在排错中最有可能会遇到的问题,同时提供了一些上手练习的案例,以便帮助读者更好地掌握这些概念。如果能够掌握数据包分析的方法,读者就可以学会如何一路从应用排错到网络的线缆。本书会告诉读者,如何让网络中流动的数据变得更加容易为我们所理解。在本书中,读者一定会读到一些很有意思的章节,包括如何对缓慢的网络进行排错,如何通过WiFi执行数据包分析,如何对恶意软件进行分析。也不要忘记本书在介绍Wireshark 2.0时提到的那些特性。祝你排错愉快!本书组织架构

第1章,欢迎来到Wireshark数据包分析的世界,会向读者介绍TCP/IP模型的基本概念,帮助读者熟悉Wireshark的GUI界面,以及抓包的示例。在这一章中,读者会学习到如何设置网络分析软件来对网络进行分析。

第2章,用Wireshark过滤出我们需要的数据,会介绍Wireshark提供的两种不同过滤方式,这两种方式分别称为抓包过滤器和显示过滤器。我们在这一章中会介绍如何创建和使用不同的配置文件。读者应该熟悉Wireshark提供的丰富界面,并且能够开始抓取自己想要抓到的数据包。

第3章,掌握Wireshark的高级特性,会帮助读者了解Wireshark的Statistics(统计数据)菜单背后的内容,并且掌握Wireshark携带的各种命令行工具的使用方法。读者在这一章中会学习到如何准备各种图标和数据流拓扑,最重要的是,如何成为一名命令行专家。

第4章,监控应用层协议,会帮助读者理解并分析各种应用层协议的正常行为和异常行为。在这一章中,我们会简单探讨管理员可以用来理解这些协议行为的方法。我们都已经掌握了一些基本的概念,但是你想过应用层协议出现问题的几率有多大吗?在本章中,你会了解到如何处理应用层协议的问题。

第5章,分析传输层协议,会介绍TCP和UDP协议工作原理,解释它们如何进行通信,它们分别面临着怎样的问题,以及如何使用Wireshark来对它们进行分析。读者在这一章要成为传输层的诊断专家,能够轻松找出网络中的常见故障,证明自己的价值。

第6章,分析无线流量,会介绍如何对无线流量进行分析,如何找到无线流量中的问题。我会带领读者进入无线协议分析的世界,让读者成为WiFi“忍者”。

第7章,网络安全分析,会向读者展示如何使用Wireshark来分析与网络安全相关的问题,比如恶意软件流量、网络入侵、踩点攻击等。在这一章中,读者会学到如何找出网络安全的异常状态,当场抓住入侵网络的黑客,搞得他们痛哭流涕,体验一把如何解决CTF的难题。

第8章,排错,会向读者传授如何配置和使用Wireshark来对网络进行排错。在这一章中,读者会掌握给各种网络问题(比如网速过慢)进行排错的艺术。读者还会通过最常见的日常案例,学习到如何对网络问题进行排错。

第9章,Wireshark v2简介,会通过一些实践案例,向读者展示Wireshark最新版本的一些强大的特性,比如USBPcap、智能滚动条、图形提升等。阅读本书的先决条件

你只需要一个可以正常使用的Wireshark安装程序,以及对一些网络协议的基本理解。能够大致熟悉一些网络协议会对阅读本书很有帮助,不熟悉也并不影响阅读。本书的读者对象

你对网络中发生的一切感到好奇吗?在你无法解决网络中发生的故障时,你会感到懊恼吗?如果你对这类问题的答案是肯定的,你就是本书的目标读者。

本书是写给那些对网络和安全技术抱有热情的读者的,这些人应该有兴趣深入理解网络的内部工作方式,希望能够掌握Wireshark使用方法,但并不了解这款软件的全部功能。第1章欢迎来到Wireshark数据包分析的世界

在这一章里,我们会介绍TCP/IP模型的基本概念,并在帮助读者熟悉Wireshark GUI界面的同时,向读者展示一个抓包的实例。在这一章中,读者会学到下列内容:● 什么是Wireshark;● Wireshark是怎么工作的;● TCP/IP模型概述;● 数据包分析简介;● 为什么要使用Wireshark;● 理解Wireshark的GUI界面;● 第一次抓包。1.1 Wireshark简介

Wireshark是最强大的抓包软件之一,这款软件不仅能让系统/网络管理员的工作变得简单轻松,而且可以让传播安全福音的技术群体从中获益。Wireshark也称为协议分析软件,它可以帮助IT从业者分析网络级别的故障。这种工具在优化网络性能方面也可以发挥重要的作用。

Wireshark可以对网络数据包进行细致入微地分析,显示出数据包的详细内容,并由技术人员判断这些信息是否满足相关用户的需求。如果你也是每天都要和包交换网络打交道的芸芸众生之一,那么Wireshark就是为你量身订制的工具,它可以在你进行各类排错工作时大显身手。1.2 TCP/IP模型概述

下面,我们来讨论一下网络领域最重要的话题。要想理解这些技术之间是如何关联起来的,读者就必须理解TCP/IP模型的基本概念。即使是计算机世界也需要通过一系列的规则和规范才能完成通信,这就是网络协议的作用之所在了。网络协议的作用正是管理数据包/数据分段/数据帧如何通过主机之间的一条专用通道进行传输。

TCP/IP模型最初称为DoD模型,因为这个项目当初是由美国国防部(United States Department of Defense)负责统筹的。TCP/IP模型涉及当前数据包生命周期的方方面面,它涵盖了数据包在始发节点创建、封装一系列信息(PDU)、逐层进行处理、在网络中准备进行发送、通过中间节点向目的设备路由、通过解封装剔除添加的信息还原为最初的数据包等全部的操作过程。

如果读者对于网络协议的基本概念还感到有些模棱两可,推荐读者先复习一下这些概念,然后再阅读后面的内容,因为阅读本书需要读者对TCP/UDP协议相对比较熟悉。在复习之后,读者自己就应该能够想象出上面我们提供的数据包处理过程了。1.3 TCP/IP模型的分层

如下所示,TCP/IP模型中包含了4层,每一层均包含了一系列对应的协议。每个协议都自己的作用,这些协议也都是通过这个模型来对接业界标准的。

第一层是应用层,这一层直接和用户及其他网络层协议进行互动;这一层的重点在于将数据通过用户可以理解的方式呈现给用户。应用层也会追踪用户连接的Web会话,并且使用一系列的协议帮助应用层连接到TCP/IP模型中的其他各层。在本书当中,我们会介绍下面几种非常常用的应用层协议:● 超文本传输协议(HTTP);● 文件传输协议(FTP);● 简单网络管理协议(SNMP);● 简单邮件传输协议(SMTP)。

第二次是传输层。这一层唯一的作用是创建两台主机通信时使用的套接字(读者应该已经意识到网络套接字对于通信的重要性了),这是在两台设备之间创建出一条独立连接的关键。

两台主机对于同一个通信实例可以建立多条连接,这是将IP地址和端口号结合起来实现的。在广域网通信中需要使用IP地址(而在局域网通信中,数据传输实际上是通过MAC地址来实现的),而一台设备之所以可以与多台设备通过多条信道进行通信,这完全是借助端口号来实现的。除了某些限制使用的端口号之外,每个系统都可以在通信的过程中使用一个随机的端口号。

这一层也会充当两台主机之间通信的骨干。这一层中最常用的协议是TCP和UDP,它们的概念分别如下所示。● TCP:这是一种面向连接的协议,常常称为可靠协议。首先,这

种协议会在两台主机之间创建一条专用的通信信道,然后再开始

传输数据。接下来,发送方会通过这条信道发送等分的数据段,

而接收方则会针对每个接收到的数据段发送确认消息。一般来说,

发送方会等待一段时间,然后再次发送同一个数据段,以确保接

收方能够接收这个数据段。比如,在用户下载文件的时候,就是

由TCP进行管理,并且确保每个比特位都能成功传输的。● UDP:这是一种无连接的协议,术语中常常称之为不可靠通信协

议。不过这种协议十分简单,因为它不会创建专用的信道,发送

方只负责向目的设备发送数据段,但并不关心接收方是不是接收

到了数据。这种通信的形式其实并不会影响通信的质量;因为这

种通信形式都满足了发送方向接收方传输数据的需求。比如,当

用户在玩局域网游戏时,有几个比特位丢失其实并不会影响用户

的游戏体验,因此用户体验也不会因此而降低。

第三层是互联网层,这一层关注的重点是数据的往返传输。这一层最主要的协议就是IP(互联网协议),它同时也是这一层最重要的协议。IP可以给数据提供路由功能,正是因为IP协议提供的路由功能,很多数据包才能最终到达自己的目的地。这一层还包括一些其他的协议,如ICMP和IGMP。

最后一层是链路层(这一层常常被人们称为网络接口层),这一层与网络硬件相连。虽然TCP/IP协议栈中并没有在这一层定义任何协议,但这一层其实实施了很多协议,如地址解析协议(ARP)和点到点协议(PPP)。这一层关注的是信息的比特数据如何在物理线缆中进行传输。这一层会建立并终结连接,会将信号由模拟信号转化为数字信号,反之亦然。网桥和交换机这类设备就工作在这一层。

客户端和服务器将IP地址和MAC地址结合起来使用是通信过程的核心。在这两个地址中,IP地址是网关分配给设备或者由管理员静态分配的,而MAC地址则来自于网络接口卡(NIC),每一个参与主机通信的设备都拥有MAC地址。在数据从应用层向链路层处理的过程中,会有很多数据以数据包头部或数据包尾部的形式添加到传输的数据上,这需要TCP/IP模型中的不同分层相互协调。添加数据包头部的处理过程称为数据封装,网络模型会在这个过程中的最后创建出协议数据单元(PDU)。

协议数据单元中包括要发送的信息,以及各个协议以头部或尾部的形式向数据包添加的信息。在PDU到达最底层的时候,它就已经封装好了要进行传输所必须具备的所有信息。当数据到达目的设备的时候,封装的头部和尾部的信息就会在TCP/IP模型自底向上的处理过程中,被目的设备逐个摘除。

图1-1所示为封装的过程。图1-1 数据封装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,接收方在接收时也应该按照这个顺序接收到这个信息。如果信息在传输的过程中遭到了篡改,这也就表示传输信息的协议本身是不可靠的。分析所有这些任务是所有网络协议分析软件的基本功能。1.5 抓取信息的方式

抓取网络数据包有很多不同的方法。管理员可以根据需求的不同,有针对性地对协议分析软件进行配置,并将它部署在网络中的某个位置。1.5.1 基于集线器的网络

基于集线器的网络是最容易抓取数据包的,在这种环境中管理员可以把协议分析软件部署在任何地方,因为集线器会将所有数据包广播到它们所在的整个网络中。有鉴于此,我们根本不用考虑在哪里部署数据包分析软件。然而,集线器亦有其弱点,由于数据包之间会发生冲突,因此集线器网络的性能也会显著降低。由于集线器中没有任何按照优先级转发数据包的机制,所以任何希望发送数据包的人都可以通过HUB(中心设备)发起连接,并且开始传输数据包。一般来说,如果有超过一台设备同时发送数据包,数据包之间就会发生冲突。此时,网络就会通知发送方重新发送之前的数据包。在这种情况下,用户就会感受到流量拥塞和带宽过量占用等问题。1.5.2 交换环境

在交换机连接的网络中会出现很多限制。有鉴于此,在这种环境中进行数据包分析稍显复杂。下面会介绍一些解决方案(如端口镜像和插拔网络),这些解决方案可以帮助管理员摆脱这些限制,简化网络管理的工作。

在使用端口镜像技术时,只要管理员可以接触到访问设备(路由器/交换机)的命令行配置界面或者Web界面,就可以轻松配置端口镜像技术。

下面,我们通过一个逻辑环境来简化一下这项技术的作用。假如我们有一台拥有24个端口的交换机,这台交换机连接了8台PC(PC1~PC8)。此时,这台交换机还剩下15个端口。我们可以将数据包分析软件部署在连接这15个端口中的任何一个端口的设备上,然后配置端口镜像技术。这项技术可以将管理员所指定的交换机端口所转发的所有流量,复制给协议分析软件所在的那个端口。这样,协议分析软件就可以抓取到被映射端口所传输的所有流量了。

一旦配置完成,我们就可以轻松对被映射端口所传输的每一条信息一一进行分析了。在所有配置方案中,这种方法无疑是最为简单的;读者在实现这种方案时,唯一应该提前具备的知识就是了解如何通过命令行界面来配置交换机。当今,管理员往往可以通过GUI界面来进行配置,如果读者要处理的交换机就是通过GUI进行管理的,那就通过GUI进行配置吧。在图1-2中,我们用一种比较简单的方式介绍了端口镜像技术的作用。图1-2 端口镜像技术

如果这台交换机不支持端口镜像技术的话,管理员就只能通过插拔的方式(Hubbing out)来抓取数据包了。如果采用这种方法,那么管理员就真的需要找到那台要抓取其数据包的目标PC,把它连接局域网的那根网线拔掉,然后用一台集线器连接交换机,接下来再将安装协议分析软件的计算机和目标PC连接到集线器上,通过这种方式将这两台设备连接到同一个网络 当中。

现在,协议分析软件和目标设备处于同一个广播域当中。因此,协议分析软件可以轻松抓取到所有去往这台目标PC以及所有从这台目标PC发送出来的数据包。但是,管理员一定要保证目标设备的用户知道自己插拔设备的过程之中造成的丢包,是因为自己试图进行数据包分析而插拔设备所造成的。图1-3可以让读者更容易理解我们在这里介绍的概念。图1-3 插拔设备1.5.3 ARP毒化

抓取网络流量还有一种不道德的方式,那就是在传输信息的双方之间冒充另一台设备。比如说,我们的默认网关位于192.168.1.1,而客户端则位于192.168.1.2。这两台设备一定都拥有一个本地ARP缓存,这样方便这两台设备相互发送数据包,而不需要在局域网中传输多余的管理流量。接下来,我们的问题就成了ARP缓存会以什么形式、保存哪些信息呢?不妨告诉你,命令arp –a可以查看ARP缓存,这条命令会显示出某个特定IP地址所对应的MAC地址。输入命令arp –a(这条命令在绝大多数平台上都没有什么变化)之后,系统会显示出一个表格,其中包含了设备的IP地址和MAC地址。图1-4和图1-5显示了ARP毒化的常规原理。图1-4 ARP毒化(正常的情况)图1-5 ARP毒化(设备被毒化的情况)Before ARP Cache 192.68.1.1 – (Server)192.68.1.2 – AA:BB:EE192.68.1.3 – AA:BB:DD 192.68.1.2 – (Client)192.68.1.1 – AA:BB:CC192.68.1.3 – AA:BB:DD 192.68.1.3 – (Attacker)192.68.1.1 – AA:BB:CC192.68.1.2 – AA:BB:EE

既然已经看到了ARP缓存中所存储的信息,下面我们可以尝试来对信息进行毒化。After ARP Cache 192.68.1.1 – (Server)192.68.1.2 – AA:BB:DD192.68.1.3 – AA:BB:DD 192.68.1.2 – (Client)192.68.1.1 – AA:BB:DD192.68.1.3 – AA:BB:DD 192.68.1.3 – (Attacker)192.68.1.1 – AA:BB:CC192.68.1.2 – AA:BB:EE

既然我们已经理解了ARP协议的重要性,以及这个协议的工作方式,下面我们可以尝试用攻击者PC的MAC地址来毒化默认网关和客户端的ARP缓存。说得简单一点,就是我们要用攻击者的MAC地址来替换掉默认网关ARP缓存中的客户端MAC地址。这样一来,所有从默认网关发往客户端的数据包,以及所有从客户端发往默认网关的数据包,就都会被发送给攻击者的设备了。

如果攻击者使用的设备上配置了端口转发,那么这台设备接收到的数据包就会被转发给真正的目的设备。在这个过程中,客户端和默认网关都不会发现数据包在传输的过程中遭到了嗅探攻击。

除了这两种方法之外,市面上还有很多硬件可以选择。这类设备一般称为分线器(taps),可以部署在任意两台设备之间,对它们之间的流量进行嗅探和分析。虽然在有些场合中,使用这种方法来抓取流量效率很高,但这种方法只适用于可控的环境中,因为有些人会出于恶意在企业网络中用这种方法抓取数据包。1.5.4 穿越路由器

在路由环境中,进行数据包分析最重要的一点是要把数据包分析软件部署在合理的位置,这样才能获取到管理员所需的信息。在路由环境中分析数据包对技术的要求相对比较高,有时管理员需要反复思考要在哪里部署协议分析软件。假设有下面这样一个包含3台路由器的路由环境。

路由器1、路由器2和路由器3处于同一个网络当中;每台路由器都连接了2~3台PC。其中路由器1充当根节点,同时控制其连接的节点(路由器2和路由器3)。路由器3的客户端不能连接到路由器1的客户端。要解决这个问题,这个机构的管理员将数据包分析软件部署在了路由器3所在的区域中。

过了一段时间之后,管理员收集到了不少数据包;但管理员仍然无法检测出网络中的异常情况。因此,他决定把数据包分析软件迁移到网络中的另一个区域。在将数据包分析软件移动到路由器1所在的区域之后,管理员可以看到很多自己之前就在寻找的有用数据流。这是一种移动协议分析软件的简单案例,移动协议分析软件所在的位置在某些场合对于解决问题很有帮助,因为把协议分析软件部署在网络架构中是一项相当重要的任务。

读到这里,希望读者已经了解到了Wireshark的使用方法。接下来介绍一下这款软件的GUI界面,以及如何初始化抓包的进程。

如果读者的计算机上还没有安装Wireshark,可以在https://www.wireshark.org/download.html免费下载一份安装文件。要想搞清楚本书中介绍的内容,读者同样需要熟悉这款软件的界面。1.5.5 为什么要使用Wireshark

但愿我不是唯一一个因Wireshark在抓包时操作十分简便,而对这款软件深感着迷的人。下面简单介绍一下人们选择Wireshark这款软件来执行数据包分析的几大原因。● 对用户友好:这一点对我们使用过的所有GUI界面都适用,它的

标准是这个GUI界面中各个选项的呈现方式有多清晰、这些选项

使用起来有多方便(我估计,即使是那些对于数据包分析一无所

知的人,也可以在不加事先准备的前提下运用Wireshark进行抓

包)。● 强大稳定:Wireshark可以处理的信息量大得惊人;我说这句话

的意思是,在显示网络中传输的数据包时,这类软件有可能会出

现死机或者崩溃的情况(因为它需要每秒钟抓取并显示成千上万

个数据包)。但Wireshark就不会出现这种情况——请给创建

Wireshark这款软件的程序员报以热烈的掌声。● 可用于各类平台:没错,这一点绝对值得一提。这款免费的软件

可以安装在当今所有用于数据计算目的的平台上,包括基于

Linux的系统、基于Windows的系统或者基于Macintosh的系统。● 过滤功能:Wireshark提供了下面两类过滤方式。● 选择抓取什么数据包(即抓取过滤)。● 选择抓取后显示什么数据包(即显示过滤)。● 成本:Wireshark是免费的,这款软件是由一个专门的社区进行

开发和维护的。不过Wireshark也提供了一些付费的专业工具。

读者如果希望了解详细信息,可以访问Wireshark的官方网站。● 支持:Wireshark是由分布在全球范围内的一个贡献者小组来开

发的。我们可以加入Wireshark的邮件列表或者通过GUI界面访问

在线文档来寻求帮助;各类在线论坛是解决问题效率最高的平

台。读者可以在Google上搜索paid Wireshark support来了解相关

信息。1.5.6 Wireshark的GUI界面

在开始讨论Wireshark的各类特性之前,先借这个机会来解释一下Wireshark的历史,以及这款软件的诞生。

Wireshark是在20世纪90年代末问世的。一位来自堪萨斯城的毕业生Combs研发出了Ethereal(Wireshark的基本版),在Combs做出这项伟大的发明时,他也找到了一份全职工作,于是他签订了一份正式的工作合同。当他在这个职位上工作了几年之后,Combs决定离职,他希望继续开发Ethereal这款软件,因为这是他的梦想。不幸的是,根据法律条款,Combs的发明也属于企业私有的软件。尽管如此,Combs还是选择了离职并继续开发Ethereal的新版本,他把新版的Ethereal命名为了Wireshark。从2006年开始,Wireshark就一直处于积极的开发状态,并且在世界范围内得到了广泛的应用。这款软件支持大量的协议(支持超过800种协议),这都是当今网络中使用相当广泛的协议。安装的流程

读者在自己系统中安装Wireshark的流程如下。

1.在本书中,我使用的是一台Mac PC。如果读者使用的是其他系统平台,安装的流程也是一样的。在有些系统(如Kali Linux)中,会有一个预装的Wireshark版本。

2.所以,如果读者使用的是Macintosh,那么你要做的第一件事就是下载X11 Quartz(XQuartz-2.7.7),它可以模拟出一个运行Wireshark的环境(Windows系统的用户需要下载与处理器相兼容的版本)。

3.现在,我们就可以开始安装Wireshark了(Wireshark 1.12.6 Intel 64)。Wireshark的安装软件在本书前文中就已经要求读者下载了。

4.在这些软件安装成功后,需要重启计算机。

5.PC重新启动之后,需要启动Wireshark。一旦启动了数据包分析软件,读者会看到软件自己启动了X11服务器。无需理会,把它留在后台  即可。

6.一旦软件成功启动,读者就应该看到图1-6所示的界面。图1-6 Wireshark的界面

在使用这个系统第一次抓取数据包之前,需要熟悉一下这款软件中可以使用的选项和菜单。

Wireshark的GUI界面分为6大部分,下面一一进行解释。● 菜单栏(Menu Bar):这里会通过一种汇总的方式,显示应用(Applications)菜单中的工具。● 主工具栏(Main Tool Bar):由使用频率最高的工具组成,这些

工具可以提升软件的使用效率。● 数据包列表面板(Packet List Pane):这个窗口会显示

Wireshark抓取的全部数据包。● 数据包详细信息面板(Packet Details Pane):这个窗口会显示

与我们在数据包列表面板中所选数据包有关的详细信息。比如,

我们可以按照自底向上(自链路层至应用层)的方式,查看不同

通信协议的源IP地址和目的IP地址。与数据包有关的信息会按照

协议的分类进行展示,这些内容可以展开,显示更多与所选数据

包有关的详细信息。● 字节面板(Bytes Pane):这个窗口会按照十六进制字节和对应

的ASCII值来显示数据包中承载的数据。这个面板会将数据包以

它们穿越线缆时的形式显示出来。● 状态栏(Status Bar):这里会显示一些详细信息,包括软件抓

取到的数据包总数。

下面的截图可以帮助读者熟悉应用界面中的各个窗格,在继续阅读本书之前,读者一定要保证自己已经对这些区域耳熟能详。

在工具栏中,我们可以看到一些有用的工具。下面对这些工具进行简单的说明。● :这个图标的作用是让用户选择要进行侦听的接口。● :管理员可以点击这个图标来自定义抓取数据包的流程。● :这3个图标的作用是启动/停止/再次启动抓包进程。● :这个图标的作用是打开一个之前保存的抓包文件。● :这个图标的作用是将当前抓包的结果保存为一个文件。● :这个图标的作用是重新载入当前的抓包文件。● :这个图标的作用是关闭当前的抓包文件。● :这个图标的作用是返回到最近一次查看的数据包。● :这个图标的作用是前进到最近一次查看的数据包。● :这个图标的作用是前往某个特定编号的数据包。● :这个图标的作用是打开/关闭自动给数据包标记颜色编码的

操作。● :这个图标的作用是打开/关闭自动滚动的操作。● :这些图标的作用是放大、缩小和将大小恢复默认

状态。● :这个图标的作用是根据需求来修改颜色编码。● :这个图标的作用是为抓包而缩小窗口。● :这个图标的作用是配置显示过滤策略,让软件只显示用户

指定的内容。

在选择了抓包的接口之后,用户有时候在数据包列表面板中看不到任何数据包。造成这种现象的原因很多,其中包括下面几项:● 接口连接的网络中没有任何流量;● 穿越网络的数据包并不是以这台设备作为最终目的地;● 用户没有将接口切换为杂合模式,或者这个接口无法切换为杂合

模式。

在启动Wireshark应用之后,用户会看到类似于图1-7所示的界面。虽然这个界面乍看之下并不是特别有吸引力,但真正让这个界面魅力无穷的其实是流经软件的数据包。没错,我说的就是抓包这件事儿。图1-7 Wireshark的抓包界面1.5.7 开启第一次抓包之旅

在学习了Wireshark的基本概念,看到了Wireshark的安装方式之后,估计读者应该已经对开始抓包跃跃欲试了。下面会按照开始抓包/停止抓包/保存文件的流程,带领读者完成人生中首次抓包之旅。

1.打开Wireshark应用。

2.选择要侦听的接口(见图1-8)。图1-8 接口界面

3.在点击Start之前,我们可以点击Options按钮,这里可以让用户对抓包的进程进行一些自定义;不过在这里,我们会使用默认的配置。要保证启动了promiscuous(杂合)模式(见图1-9),

这样才能抓到那些并不是以这台设备作为最终目的地的数据

包。图1-9 自定义抓包的界面

4.点击Start按钮启动抓包进程。

5.打开浏览器。

6.随便访问一个网站(见图1-10)。图1-10 Wireshark的官方站点

7.回到Wireshark的界面;如果一切正常的话,此时读者应该在Wireshark GUI界面的数据包列表面板中看到了大量的数据包。

要想让软件停止抓包,只需要在工具栏中点击stop capture按钮或者在Capture菜单栏中点击Stop按钮(见图1-11)。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载