WireShark开发背景
开发人员在做网页测试的时候经常需要用到一些网络抓包工具来分析报文数据,我们常用的抓包工具有firebug、httpwatch,还有一个不得不提的就是Wireshark,因为它是世界上使用最广泛的网络数据抓包工具。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。它的前称是Ethereal,在过去网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。
Wireshark是目前全世界最广泛的网络封包分析软件之一。它的用途非常多,网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。当然,有的人也会“居心叵测”的用它来寻找一些敏感信息。但是,Wireshark不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。 Wireshark本身也不会送出封包至网络上。
WireShark简介
Wireshark是世界上最重要和最广泛使用的网络数据抓包分析工具。它可以从网络接口捕获实时数据包数据,显示数据包与非常详细的协议信息,保存捕获的数据包数据,以多种捕获文件格式导出部分或全部数据包。它可以根据许多标准过滤数据包,按许多条件搜索数据包,基于过滤器着色数据包显示,以及创建各种统计数据。另外,它还可以打开使用Wireshark和许多其他数据包捕获程序捕获的数据包数据的文件,从包含十六进制数据包数据的文本文件导入数据包。Wireshark是一款免费、安全的软件,功能强大,用途广泛。
Wireshark主要有以下功能:
1、多平台:在Windows、Linux、macOS等许多平台上运行;
2、实时捕获和离线分析;
3、实时数据可以从Ethernet、IEEE 802.11、PPP/HDLC、ATM、Bluetooth、USB、Token Ring、Frame Relay、FDDI等读取(取决于您的平台);
4、标准三窗格浏览器;
5、可以通过GUI或通过TTY模式TShark实用程序浏览捕获的网络数据;
6、业界最强大的显示器滤波器;
7、可以将着色规则应用于数据包列表,以便进行快速直观的分析;
8、丰富的VoIP分析;
9、读/写许多不同的捕获文件格式;
10、输出可以导出为XML,PostScript®,CSV或纯文本。
11、使用gzip压缩的捕获文件可以动态解压缩;
12、深入检查数百种协议,并且不断添加更多协议;
13、许多协议的解密支持,包括IPsec、ISAKMP、Kerberos、SNMPv3、SSL / TLS、WEP和WPA / WPA2。
WireShark使用方法
一、Wireshark的安装方法和普通软件的安装方法并无差异,安装好后的界面如下:
WireShark面板主要分为七个部分:
1、菜单
根据版本不同菜单项略有不同,主要有以下菜单:
File文件: 打开或保存捕获的信息。
Edit编辑:查找或标记封包。进行全局设置。
View查看:设置Wireshark的视图
Go转到:跳转到捕获的数据。
Capture捕获:设置捕捉过滤器并开始捕捉。
Analyze分析:设置分析选项。
Statistics统计:查看Wireshark的统计信息。
Help帮助:查看本地或在线支持。
2、快捷方式
菜单下面是一些常用的快捷键功能,鼠标指到图标上可以获得功能说明。
3、显示过滤器:用于查找捕获记录中的内容。
注意,不要将显示过滤器和捕获过滤器混淆。过滤器非常重要,他们可以帮助我们在庞杂的结果中迅速找到我们需要的信息。捕获过滤器,用于决定将什么样的信息记录在捕获结果中,需要在开始捕获前设置。显示过滤器,则是在捕捉结果中进行详细查找,可以在得到捕捉结果后随意修改。捕获过滤器为第一层过滤器,旨在控制数量。显示过滤器是更强大的过滤,可以迅速准确找到所需的记录。
4、封包列表
封包列表中显示所有已经捕获的封包,在这里可以看到发送或接收方的MAC/IP地址、TCP/UDP端口号、协议或者封包的内容。
5、封包详细信息
显示在封包列表中被选中的项目的详细信息。信息按照不同的OSI layer进行了分组,可以展开每个项目查看。
6、16进制数据
解析器在Wireshark中也被叫做”16进制数据查看面板“,这里显示的内容与”封包详细信息“中相同,只是改为以16进制的格式表述。
7、杂项
在程序最下端您可以获得一些信息,如捕获结果的保存位置、已捕获的数据量等等。
二、抓取报文:
1、启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包。例如,如果想要在无线网络上抓取流量,点击无线接口。点击Capture Options可以配置高级属性。2、点击接口名称之后,就可以看到实时接收的报文。Wireshark会捕捉系统发送和接收的每一个报文。如果抓取的接口是无线并且选项选取的是混合模式,那么也会看到网络上其他报文。
3、上端面板每一行对应一个网络报文,默认显示报文接收时间(相对开始抓取的时间点)、源和目标IP地址、使用协议和报文相关信息。点击某一行可以在下面两个窗口看到更多信息。“+”图标显示报文里面每一层的详细信息。底端窗口同时以十六进制和ASCII码的方式列出报文内容。
4、需要停止抓取报文的时候,点击左上角的停止按键。
三、色彩标识
1、进行到这里已经看到报文以绿色、蓝色、黑色显示出来。Wireshark通过颜色让各种流量的报文一目了然。比如默认绿色是TCP报文,深蓝色是DNS,浅蓝是UDP,黑色标识出有问题的TCP报文——比如乱序报文。
四、报文样本
1、比如说你在家安装了Wireshark,但家用环境下没有感兴趣的报文可供观察,那么可以去Wireshark wiki下载报文样本文件。
2、打开一个抓取文件相当简单,在主界面上点击Open并浏览文件即可。也可以在Wireshark里保存自己的抓包文件并稍后打开。
五、过滤报文
1、如果正在尝试分析问题,比如打电话的时候某一程序发送的报文,可以关闭所有其他使用网络的应用来减少流量。但还是可能有大批报文需要筛选,这时要用到Wireshark过滤器。
2、最基本的方式就是在窗口顶端过滤栏输入并点击Apply(或按下回车)。例如,输入“dns”就会只看到DNS报文。输入的时候,Wireshark会帮助自动完成过滤条件。
3、也可以点击Analyze菜单并选择Display Filters来创建新的过滤条件。
4、另一件很有趣的事情是你可以右键报文并选择Follow TCP Stream。
5、你会看到在服务器和目标端之间的全部会话。
6、关闭窗口之后,你会发现过滤条件自动被引用了——Wireshark显示构成会话的报文。
六、检查报文
1、选中一个报文之后,就可以深入挖掘它的内容了。
2、也可以在这里创建过滤条件——只需右键细节并使用Apply as Filter子菜单,就可以根据此细节创建过滤条件。
Wireshark是一个非常之强大的工具,这里只介绍它的最基本用法。如果你想了解更多,请试用它,您可以在官网非常详尽的学习怎么使用它。
Wireshark常见问题
1、Wireshark可以使用哪些设备来捕获数据包?答:Wireshark可以读取以太网、令牌环、FDDI、串行(PPP和SLIP)的实时数据(如果它运行的操作系统允许Wireshark这样做),802.11无线局域网(如果它运行的操作系统允许Wireshark)要做到这一点,ATM连接(如果它运行的操作系统允许Wireshark这样做),以及最近版本的libpcap在Linux上支持的“任何”设备。
2、我安装了Wireshark RPM(或其他软件包); 为什么安装TShark而不是Wireshark?
答: 许多发行版都有单独的Wireshark软件包,一个用于非GUI组件,如TShark,editcap,dumpcap等,另一个用于GUI。如果您的系统出现这种情况,可能会有一个名为的单独软件包wireshark-qt。找到并安装它。
3、当我尝试运行Wireshark时,为什么抱怨 sprint_realloc_objid未定义?
答: Wireshark只能与版本4.2.2或更高版本的UCD SNMP链接。你的Wireshark版本与这种版本的UCD SNMP动态链接; 但是,您安装了较旧版本的UCD SNMP,这意味着当运行Wireshark时,它会尝试链接到旧版本,并失败。您必须使用4.2.2版或更高版本替换该版本的UCD SNMP。
4、我的机器上有一张XXX网卡; 如果我试图捕获它,为什么我的机器崩溃或重置自己?
答: 这几乎肯定是一个或多个问题:
你正在使用的操作系统;
您正在使用的界面的设备驱动程序;
libpcap / WinPcap库,如果是Windows,则是WinPcap设备驱动程序;
所以:
如果您使用的是Windows,请参阅WinPcap支持页面 - 查看“提交错误”部分;
如果您使用的是某些Linux发行版,某些版本的BSD或其他一些UNIX风格的操作系统,您应该将问题报告给生成操作系统的公司或组织(如果是Linux发行版,请将问题报告给任何生产者分布)。
Wireshark联系方式
内容由https://www.wireshark.org/提供。
Wireshark官方版本下载地址
- Windows Installer (64-bit)
- Windows Installer (32-bit)
- Windows PortableApps® (32-bit)
- macOS 10.6 and later Intel 64-bit .dmg
- Source Code