Wireshark入门与进阶系列
Posted LiuYanYGZ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wireshark入门与进阶系列相关的知识,希望对你有一定的参考价值。
摘自http://blog.csdn.net/howeverpf/article/details/40743705
Wireshark入门与进阶系列(二)
“君子生非异也,善假于物也”---荀子
本文由CSDN-蚍蜉撼青松 【主页:http://blog.csdn.net/howeverpf】原创,转载请注明出处!
- 我们希望捕获的数据包中对我们有用的包的比例要能更高,这就需要设定一些捕获的过滤规则;
- 我们希望在捕获数据包的同时将数据包保存到指定的文件中;
- 我们希望当满足某个条件时,Wireshark会自动停止抓包,而不需要我们手动停止;
- 我们希望捕获的实时展示最新捕获的数据包,并看到各类网络数据包的数量统计信息;
- 我们希望将物理层、网络层、传输层的数字地址转换成可读性更好的文字信息;
以上这些需求,都可以通过设置Capture Options来满足,故此,一个相对上一篇博文文更完整的抓包流程是:
- “启动软件-->设置捕获选项并开始抓包-->停止抓包-->数据包保存”
其他的步骤基本没变,只是把简单的“选定网卡”进化成了更为复杂的“设定捕获选项”。在这篇博文里,就让我们来了解一下这个Capture Options。
【本篇大部分内容参考Wireshark自带的帮助手册,需要却没有的可以下载《Wireshark用户指南1.10(英文原本)》,或是《Wireshark用户指南老版(中文译本)》】
二、Capture Options(捕获选项)各项的含义与设定
图2-1 Capture Options(数据包捕获选项)弹窗
通过上图,可以看到,Capture Options弹窗根据设置内容的不同,大致可以分为五个区域【图2-1中分别用五个黑色圆角方框标注】。下面按照从上到下,从左到右的顺序,分区域依次介绍各个选项都有什么涵义,设置与否对我们有何影响。
2.1 Capture[抓包相关设定]
图2-2 数据包捕获相关设定
这个区域的选项都是会对数据包的捕获产生直接影响的,按照自上而下的顺序,具体来说他们包括,
2.1.1 网卡列表
位于此区域最上方,它的作用是显而易见的,你想在哪块网卡上抓包,就勾选该网卡前面的复选框。可多选,至少选一个!
2.1.2 选项:Capture on all interfaces
勾选此选项后,意味着你要Wireshark同时捕获本机所有网卡上的网络数据包【这和你在上方的列表中勾选了所有的网卡是等价的】;反之,则只捕获网卡列表中指定网卡上的数据包。
2.1.3 选项:Use promiscuous mode on all interfaces
勾选此选项后,意味着你要Wireshark在抓包的时候让网卡开启混杂模式。【简单点说,开启混杂模式的网卡可以捕获所有流过该网卡的帧,不开启则只能捕获广播帧以及发给该网卡的帧。更详细的关于以太网卡几种工作模式的介绍,参看《网卡的工作模式》】
2.1.4 按钮:Manage Interfaces
如果你想增、删“网卡列表”里的条目,可以点这个按钮。【其实这里面还可以设置管道以及远程网卡作为数据包来源,我也没太用这功能,就不多说了】
2.1.5 输入框与按钮:Capture Filter
如果你想设置数据包捕获的过滤条件(官方一点,好像多称为过滤器),并且你碰巧对Tcpdump的表达式还有过一点了解,你可以直接在此按钮旁边的输入框中按照语法设置过滤表达式,类似于我在图2-1中输入的:
- host 192.168.1.17 and port 110
当然,很可能你对过滤表达式完全不了解,那么你也可以直接点这个按钮,弹出下面这个窗口,里面有些现成的常用过滤器,
图2-3 Capture Filter弹窗
我们从这些可选的过滤器里任意选一条,比方说上图2-3中选中的“IP address 192.168.0.1”,可以在下方看到,“IP address 192.168.0.1”只是过滤器的一个直观、容易理解的名字,它其实对应着过滤表达式“host 192.168.0.1”。图2-3这个弹窗里已经有最简单的,包括“只要IP包”、“只要UDP包”、“只要HTTP包”、“不要ARP包”等最常用的 过滤器。利用它我们还可以增删改一些常用的过滤器,当然前提是你得学习一下怎么写过滤表达式。【由于与Tcpdump之间高度的相似性,想要学习过滤表达 式的语法,可以参考博文《Tcpdump的详细用法》,当然也可以直接下载资料《WinPcap_BPF_Fiter过滤规则设置说明文档.pdf》】
2.1.6 按钮:Compile selected BPFs
这个一开始我也没搞清楚,还以为是要让过滤器生效,必须在写好过滤表达式后点这个,所以就每次都顺手点上一记~~~也是写本文的时候才发现,不点这个也 可以生效……查阅Wireshark自带的帮助手册后明白,它只是一个帮助你把过滤表达式编译成BPF代码形式(看起来有点像汇编代码)的工具而已。你要 是只是用Wireshark,不自己编写基于WinPcap的嗅探工具,我估计应该用不到这个。
2.2 Capture Files[存包相关设定]
这个区域的选项仅当你想要自动存包时才需要设置。实际应用中,有些情况下只是一个简单的临时分析,是不需要存包的;也有些情况是我们先实时捕获放在缓存,先大致看过后再选择性地存文件。这两种情况下,都不用设置这个区域的选项。
2.2.1 输入框:File
简单,直接通过输入或是使用后方的Brose按钮,指定存放的文件名及其完整路径。默认是空白,意味着捕获的数据包存放在默认缓存目录下的临时文件中。
2.2.2 选项:Use pcap-ng format
勾选这个选项,意味着你希望Wireshark存文件时使用pcapng格式【欲知详情,参看http://wiki.wireshark.org/Development/PcapNg】。当同时指定在多块网卡上抓包时,必须使用pcapng格式存文件;出于兼容考虑,单块网卡上的抓包我不建议勾选。
2.2.3 选项:Use multiple files
勾选此选项后,Wireshark会使用多个文件存储数据包;反之,则默认使用单文件存储。使用单文件还是多文件,取决于数据量的大小、你的目的等多个要素。
2.2.4 选项:Next file every N megabytes(s)/minute(s)
使用多个文件存储时,必须指定切换下一个文件的条件。切换条件有两种形式,一是每当捕获多少流量(默认单位是Mb,也支持更小一点的Kb,以及更大一点的Gb)后切换,另一种是每当捕获间隔多长时间(默认单位分钟,也支持秒、小时、天)后切换。
使用多个文件存储时,两种切换方式至少选其一!
2.2.5 选项:Ring buffer with N files
使用多个文件存储时,如果对文件数量有限制,且允许文件覆盖, 可以勾选并设定此选项。这意味着,Wireshark在存包时最多创建N个文件,当达到切换条件需要创建第N+1个文件时,它会直接把捕获的数据包存入到 当前最“老”(生成时间最早)的文件中,从而让最“老”的文件变成最“新”的文件。这就好比建立了一个容量为N的环形缓冲队列。
暂时来说,我的理解,让最“老”的文件变成最“新”的文件的过程是覆盖的过程,如果你倒腾发现本质上是添加或其他机理,请联系我!
2.2.6 选项:Stop capture after n file(s)
使用多个文件存储时,如果对文件数量有限制,且不允许文件覆盖,可以勾选并设定此选项。这意味着,Wireshark在存包时最多创建N个文件,当达到切换条件需要创建第N+1个文件时,它就直接停止抓包。
这种自动停止抓包的方法仅适用于指定使用多个文件存储时。通用的自动停止抓包方法在下一节介绍。
2.3 Stop Capture Automatically After[自动停止抓包设定]
在上一篇文章里,我们是手动停止抓包的。而这个区域的选项可以帮助我们通过设置一些条件来让Wireshark自动停止抓包,需要额外提到的是,这些选项之间不是互斥的,可以勾选多个,他们之间应该是“或”的关系。
2.3.1 选项:N packet(s)
勾选此选项后,Wireshark会在捕获到指定个数的数据包后,会自动停止抓包。
2.3.2 选项:N megabytes(s)
勾选此选项后,Wireshark会在捕获到指定大小的数据流量后,会自动停止抓包。默认流量单位是Mb,也支持更小一点的Kb,以及更大一点的Gb。
2.3.3 选项:N minute(s)
勾选此选项后,Wireshark会以开始捕获为计时起点,经过指定长短的时间后,自动停止抓包。默认时间单位分钟,也支持秒、小时、天。
2.4 Display Options[显示选项设定]
2.4.1 选项:Update list of packets in real time
2.4.2 选项:Automatic scrolling in live capture
2.4.3 选项:Hide capture info dialog
图2-7 数据包捕获概要情况弹窗
2.5 Name Resolution[名称解析相关设定]
图2-8 名称解析相关设定
2.5.1 选项:Resolve Mac addresses
- 01:00:5e:00:35:16 ==> IPv4mcast_00:35:16
- 00:26:82:88:45:ac ==> GemtekTe_88:45:ac
- 28:c6:8e:19:e9:5b ==> Netgear_19:e9:5b
2.5.2 选项:Resolve network-layer names
2.5.3 选项:Resolve transport-layer name
- 80、8080 ==> http
- 21 ==> ftp
- 23 ==> telnet
- 25 ==> smtp
- 53 ==> dns
- 110 ==> pop3
- 443 ==> ssl、tls
2.5.4选项:Use external network name resolver
以上是关于Wireshark入门与进阶系列的主要内容,如果未能解决你的问题,请参考以下文章