本节书摘来自异步社区《精通Wireshark》一书中的第1章1.5节抓取信息的方式,作者【印度】Charit Mishra(夏里特 米什拉),更多章节内容可以访问云栖社区“异步社区”公众号查看。

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

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

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

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

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

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


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

现在,协议分析软件和目标设备处于同一个广播域当中。因此,协议分析软件可以轻松抓取到所有去往这台目标PC以及所有从这台目标PC发送出来的数据包。但是,管理员一定要保证目标设备的用户知道自己插拔设备的过程之中造成的丢包,是因为自己试图进行数据包分析而插拔设备所造成的。图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毒化的常规原理。



Before ARP Cache
 

192.68.1.1 – (Server)
192.68.1.2 – AA:BB:EE
192.68.1.3 – AA:BB:DD192.68.1.2 – (Client)
192.68.1.1 – AA:BB:CC
192.68.1.3 – AA:BB:DD192.68.1.3 – (Attacker)
192.68.1.1 – AA:BB:CC
192.68.1.2 – AA:BB:EE

既然已经看到了ARP缓存中所存储的信息,下面我们可以尝试来对信息进行毒化。

After ARP Cache
 

192.68.1.1 – (Server)
192.68.1.2 – AA:BB:DD
192.68.1.3 – AA:BB:DD192.68.1.2 – (Client)
192.68.1.1 – AA:BB:DD
192.68.1.3 – AA:BB:DD192.68.1.3 – (Attacker)
192.68.1.1 – AA:BB:CC
192.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界面,以及如何初始化抓包的进程。

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所示的界面。


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

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

1.打开Wireshark应用。

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

3.在点击Start之前,我们可以点击Options按钮,这里可以让用户对抓包的进程进行一些自定义;不过在这里,我们会使用默认的配置。

要保证启动了promiscuous(杂合)模式(见图1-9),这样才能抓到那些并不是以这台设备作为最终目的地的数据包。


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

5.打开浏览器。

6.随便访问一个网站(见图1-10)。


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

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


8.我知道这个界面提供的信息对于读者来说有点复杂,别担心,我来将这些信息化繁为简。

9.其实,数据包分析是指抓取到数据包(也就是进行数据包过滤)之后的工作。接下来,我会通过后面的章节详细介绍数据包过滤的方法。

10.现在,最后一步是将抓包的结果保存起来以备日后使用。


11.将文件用默认的.pcapng扩展名保存到文件夹中。

如果您从头至尾读完了上面的操作步骤,我希望您能够创建出自己的第一个抓包文件。

《精通Wireshark》—第1章1.5节抓取信息的方式相关推荐

  1. 《精通Wireshark》—第2章2.2节抓包过滤器

    本节书摘来自异步社区<精通Wireshark>一书中的第2章2.2节抓包过滤器,作者[印度]Charit Mishra(夏里特 米什拉),更多章节内容可以访问云栖社区"异步社区& ...

  2. 《Photoshop图像合成专业技法(修订版)》—第1章1.3节抠取头发

    本节书摘来自异步社区<Photoshop图像合成专业技法(修订版)>一书中的第1章1.3节抠取头发,作者[美]Matt kloskowski,更多章节内容可以访问云栖社区"异步社 ...

  3. 第十一章 从网站图片中抓取文字

    #!/usr/bin/env python # _*_ coding:utf-8 _*_ #这一节是数144页从网站图片抓取文字的代码, #需要安装tesseract,它是开源的可以通过训练识别出字体 ...

  4. (考研湖科大教书匠计算机网络)第一章概述-第二节:三种交换方式(电路交换、报文交换和分组交换)

    获取pdf:密码7281 专栏目录首页:[专栏必读]王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记.题目题型总结.注意事项.目录导航和思维导图 王道考研408计算机组成原理万字笔记 ...

  5. 【HTML+CSS网页设计与布局 从入门到精通】第6章-标题h1,h1字体格式的设置方式

    目录 方式1 方式2 方式1 <html> <head><title>演示</title><meta http-equiv="Conte ...

  6. 利用wireShark抓取iphone手机上的网络通信包

    说明 以前利用工具抓取网络请求时都是使用Charles,然后越来越觉得Charles有些卡,并且只能过滤HTTP协议.但是Charles过滤的网络请求数据显示的非常清晰. 后来就换着使用WireSha ...

  7. [网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了虚拟机VMware+Kali安装入门及Sqlmap基本用法,这篇文章将分 ...

  8. 《精通Wireshark》—第2章2.6节总结

    本节书摘来自异步社区<精通Wireshark>一书中的第2章2.6节总结,作者[印度]Charit Mishra(夏里特 米什拉),更多章节内容可以访问云栖社区"异步社区&quo ...

  9. 《精通软件性能测试与LoadRunner最佳实战》—第1章1.1节软件测试基础

    本节书摘来自异步社区<精通软件性能测试与LoadRunner最佳实战>一书中的第1章1.1节软件测试基础,作者于涌 , 王磊 , 曹向志 , 高楼 , 于跃,更多章节内容可以访问云栖社区& ...

最新文章

  1. Python-OpenCV 处理图像(七):图像灰度化处理
  2. Android开发之自定义控件的基本介绍(附源码)
  3. VIJOS1212 Way Selection
  4. mac怎么设置默认浏览器 mac默认浏览器设置方法
  5. python 在window 系统 连接并操作远程 oracle 数据库
  6. 渗透测试为什么要重基础、重实践?
  7. 最新人生感悟语句摘选
  8. css+div页面布局详解(三)
  9. 腾讯云学生服务器搭建个人网站——配置web开发环境详细步骤
  10. Linux版本_Linux版本说明及应用领域
  11. OpenCV - 汽车识别
  12. 百度地图爬虫——获取某区域所有中学附近的网吧数据
  13. pytorch GradScale 梯度缩放算子
  14. PHP上传用户头像及头像的缩略图
  15. 单龙芯3A3000-7A1000PMON研究学习-(16)撸起袖子干-分析代码前的准备工作3-寄存器
  16. [附源码]Java计算机毕业设计SSM歌唱比赛积分管理系统
  17. 2017移动端UI设计规范模板参考以及设计规范的好处
  18. STM32F103-FreeRTOS 操作系统移植
  19. [NLP学习笔记-Task10] Transformer + BERT
  20. 装机日记 200元预算宿舍主机改造

热门文章

  1. M进制转N进制(C++)
  2. 转岗测试工作三年经验总结(前端开发转测试)
  3. 如何判别你的领导是否值得跟随?这几点帮你快速看清
  4. 性能进阶:使用JMeter进行websocket测试
  5. kali远程登录window_手把手教你配置VS Code远程开发工具,工作效率提升N倍
  6. asp功放怎么装_客厅家庭影院该怎么摆放?
  7. hashmap.clear会不会失败_每日三省吾身 | 试问:现在的你,还害怕失败吗?
  8. 数据库设计_SQL数据库设计(数据建模)
  9. ubuntu查看安装软件的版本
  10. Lesson6 how to use HTML QT Widgets