【学习笔记】Wireshark的用法

  计算机网络课上,需要我们灵活运用网络协议分析仪wireshark,最近一直在看,感觉有点难,并不是软件本身操作难,而是看懂一大群包的含义难,这个难主要也因为它是全英文的~~。。

 

好了,大致总结一下,基本都是大神的,引用的,与大家分享。

wireshark 开始抓包

开始界面

wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。

点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包

Wireshark 窗口介绍

WireShark 主要分为这几个界面

1. Display Filter(显示过滤器),  用于过滤

2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表

3. Packet Details Pane(封包详细信息), 显示封包中的字段

4. Dissector Pane(16进制数据)

5. Miscellanous(地址栏,杂项)

 

使用过滤是非常重要的, 初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。

过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。

过滤器有两种,

一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录

一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。 在Capture -> Capture Filters 中设置

保存过滤

在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 102",

Filter栏上就多了个"Filter 102" 的按钮。

过滤表达式的规则

表达式规则

 1. 协议过滤

比如TCP,只显示TCP协议。

2. IP 过滤

比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102,

ip.dst==192.168.1.102, 目标地址为192.168.1.102

3. 端口过滤

tcp.port ==80,  端口为80的

tcp.srcport == 80,  只显示TCP协议的愿端口为80的。

4. Http模式过滤

http.request.method=="GET",   只显示HTTP GET方法的。

5. 逻辑运算符为 AND/ OR

常用的过滤表达式

过滤表达式 用途
http 只查看HTTP协议的记录
ip.src ==192.168.1.102 or ip.dst==192.168.1.102  源地址或者目标地址是192.168.1.102
   
   

封包列表(Packet List Pane)

封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。

你也可以修改这些显示颜色的规则,  View ->Coloring Rules.

封包详细信息 (Packet Details Pane)

这个面板是我们最重要的,用来查看协议中的每一个字段。

各行信息分别为

Frame:   物理层的数据帧概况

Ethernet II: 数据链路层以太网帧头部信息

Internet Protocol Version 4: 互联网层IP包头部信息

Transmission Control Protocol:  传输层T的数据段头部信息,此处是TCP

Hypertext Transfer Protocol:  应用层的信息,此处是HTTP协议

TCP包的具体内容

 从下图可以看到wireshark捕获到的TCP包中的每个字段。

看到这, 基本上对wireshak有了初步了解, 现在我们看一个TCP三次握手的实例

 三次握手过程为

这图我都看过很多遍了, 这次我们用wireshark实际分析下三次握手的过程。

打开wireshark, 打开浏览器输入 http://www.cr173.com

在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",

这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下图

图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

第一次握手数据包

客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图

第二次握手的数据包

服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图

第三次握手的数据包

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:

 就这样通过了TCP三次握手,建立了连接

 

 

File菜单介绍
 

菜单项快捷键描述
Open… Ctr+O 显示打开文件对话框,让您載入捕捉文件用以浏览。
Open Recent   弹出一个子菜单显示最近打开过的文件供选择。
Merg   显示合并捕捉文件的对话框。让您选择一个文件和当前打开的文件合并。
Close Ctrl+W 关闭当前捕捉文件,如果您未保存,系统将提示您是否保存(如果您预设了禁止提示保存,将不会提示)
Save Crl+S 保存当前捕捉文件,如果您没有设置默认的保存文件名,Wireshark出现提示您保存文件的对话框。
Save As Shift+Ctrl+S 让您将当前文件保存为另外一个文件面,将会出现一个另存为的对话框
File Set>List Files   允许您显示文件集合的列表。将会弹出一个对话框显示已打开文件的列表。
File Set>Next File   如果当前載入文件是文件集合的一部分,将会跳转到下一个文件。如果不是,将会跳转到最后一个文件。这个文件选项将会是灰色。
File set>Previous Files   如果当前文件是文件集合 的一部分,将会调到它所在位置的前一个文件。如果不是则跳到文件集合的第一个文件,同时变成灰色。
Export> as “Plain Text” File…   这个菜单允许您将捕捉文件中所有的或者部分的包导出为plain ASCII text格式。它将会弹出一个Wireshark导出对话框。
Export >as “PostScript” Files   将捕捉文件的全部或部分导出为PostScrit文件。
Export > as “CVS” (Comma Separated Values Packet Summary)File…   导出文件全部或部分摘要为.cvs格式(可用在电子表格中)。。
Export > as “PSML” File…   导出文件的全部或部分为PSML格式(包摘要标记语言)XML文件。将会弹出导出文件对话框。
Export as “PDML” File…   导出文件的全部或部分为PDML(包摘要标记语言)格式的XML文件。
Export > Selected Packet Bytes…   导出当前在Packet byte面版选择的字节为二进制文件。
Print Ctr+P 打印捕捉包的全部或部分,将会弹出打印对话框。
Quit Ctrl+Q 退出Wireshark,如果未保存文件,Wireshark会提示是否保存。

 
 
 
Edit——包括如下项目:查找包,时间参考,标记一个多个包,设置预设参数。(剪切,拷贝,粘贴不能立即执行。)
 
\
 
Edit菜单项
 

菜单项快捷键描述
Copy>As Filter Shift+Ctrl+C 使用详情面版选择的数据作为显示过滤。显示过滤将会拷贝到剪贴板。
Find Packet… Ctr+F 打开一个对话框用来通过限制来查找包
Find Next Ctrl+N 在使用Find packet以后,使用该菜单会查找匹配规则的下一个包
Find Previous Ctr+B 查找匹配规则的前一个包。
Mark Packet(toggle) Ctrl+M 标记当前选择的包。
Find Next Mark Shift+Ctrl+N 查找下一个被标记的包
Find Previous Mark Ctrl+Shift+B 查找前一个被标记的包
Mark ALL Packets   标记所有包
Unmark All Packet   取消所有标记
Set Time Reference(toggle) Ctrl+T 以当前包时间作为参考
Find Next Reference   找到下一个时间参考包
Find Previous Refrence…   找到前一个时间参考包
Preferences… Shift+Ctrl+P 打开首选项对话框,个性化设置Wireshark的各项参数,设置后的参数将会在每次打开时发挥作用。

 
 
 
View ——控制捕捉数据的显示方式,包括颜色,字体缩放,将包显示在分离的窗口,展开或收缩详情面版的地树状节点
 
\
 
“View”菜单项
 

菜单项快捷键描述
Main Toolbar   显示隐藏Main toolbar(主工具栏)
Filter Toolbar   显示或隐藏Filter Toolbar(过滤工具栏)
Statusbar   显示或隐藏状态栏
Packet List   显示或隐藏Packet List pane(包列表面板)
Packet Details   显示或隐藏Packet details pane(包详情面板)
Packet Bytes   显示或隐藏packet Bytes pane(包字节面板)
Time Display Fromat>Date and Time of Day: 1970-01-01 01:02:03.123456   选择这里告诉Wireshark将时间戳设置为绝对日期-时间格式(年月日,时分秒)
Time Display Format>Time of Day: 01:02:03.123456   将时间设置为绝对时间-日期格式(时分秒格式)
Time Display Format > Seconds Since Beginning of Capture: 123.123456   将时间戳设置为秒格式,从捕捉开始计时,见
Time Display Format > Seconds Since Previous Captured Packet: 1.123456   将时间戳设置为秒格式,从上次捕捉开始计时
Time Display Format > Seconds Since Previous Displayed Packet: 1.123456   将时间戳设置为秒格式,从上次显示的包开始计时
Time Display Format > ——    
Time Display Format > Automatic (File Format Precision)   根据指定的精度选择数据包中时间戳的显示方式
Time Display Format > Seconds: 0   设置精度为1秒
Time Display Format > …seconds: 0….   设置精度为1秒,0.1秒,0.01秒,百万分之一秒等等。
Name Resolution > Resolve Name   仅对当前选定包进行解析
Name Resolution > Enable for MAC Layer   是否解析Mac地址
Name Resolution > Enable for Network Layer   是否解析网络层地址(ip地址)
Name Resolution > Enable for Transport Layer   是否解析传输层地址
Colorize Packet List   是否以彩色显示包
Auto Scrooll in Live Capture   控制在实时捕捉时是否自动滚屏,如果选择了该项,在有新数据进入时, 面板会项上滚动。您始终能看到最后的数据。反之,您无法看到满屏以后的数据,除非您手动滚屏
Zoom In Ctrl++ 增大字体
Zoom Out Ctrl+- 缩小字体
Normal Size Ctrl+= 恢复正常大小
Resiz All Columnus   恢复所有列宽
  注意
除非数据包非常大,一般会立刻更改
Expend Subtrees   展开子分支
Expand All   看开所有分支,该选项会展开您选择的包的所有分支。
Collapse All   收缩所有包的所有分支
Coloring Rulues…   打开一个对话框,让您可以通过过滤表达来用不同的颜色显示包。这项功能对定位特定类型的包非常有用
Show Packet in New Window   在新窗口显示当前包,(新窗口仅包含View,Byte View两个面板)
Reload Ctrl+R 重新再如当前捕捉文件

 
 
 
GO——包含到指定包的功能。
 
 
\
“GO”菜单项
 

菜单项快捷键描述
Back Alt+Left 跳到最近浏览的包,类似于浏览器中的页面历史纪录
ForWard Alt+Right 跳到下一个最近浏览的包,跟浏览器类似
Go to Packet Ctrl+G 打开一个对话框,输入指定的包序号,然后跳转到对应的包。
Go to Corresponding Packet   跳转到当前包的应答包,如果不存在,该选项为灰色
Previous Packet Ctrl+UP 移动到包列表中的前一个包,即使包列表面板不是当前焦点,也是可用的
Next Packet Ctrl+Down 移动到包列表中的后一个包,同上
First Packet   移动到列表中的第一个包
Last Packet   移动到列表中的最后一个包

 

Capture——捕捉数据包

 

\

 
“Capture”菜单项
 

菜单项快捷键说明
Interface…   在弹出对话框选择您要进行捕捉的网络接口
Options… Ctrl+K 打开设置捕捉选项的对话框并可以在此开始捕捉
Start   立即开始捕捉,设置都是参照最后一次设置。
Stop Ctrl+E 停止正在进行的捕捉
Restart   正在进行捕捉时,停止捕捉,并按同样的设置重新开始捕捉.仅在您认为有必要时
Capture Filters…   打开对话框,编辑捕捉过滤设置,可以命名过滤器,保存为其他捕捉时使用

 
 
 
Analyze ——包含处理显示过滤,允许或禁止分析协议,配置用户指定解码和追踪TCP流等功能。
 
\
 
“analyze”菜单项
 

菜单项快捷键说明
Display Filters…   打开过滤器对话框编辑过滤设置,可以命名过滤设置,保存为其他地方使用,见第 6.6 节 “定义,保存过滤器”
Apply as Filter>…   更改当前过滤显示并立即应用。根据选择的项,当前显示字段会被替换成选择在Detail面板的协议字段
Prepare a Filter>…   更改当前显示过滤设置,当不会立即应用。同样根据当前选择项,过滤字符会被替换成Detail面板选择的协议字段
Firewall ACL Rules   为多种不同的防火墙创建命令行ACL规则(访问控制列表),支持Cisco IOS, Linux Netfilter (iptables), OpenBSD pf and Windows Firewall (via netsh). Rules for MAC addresses, IPv4 addresses, TCP and UDP ports, 以及IPv4+混合端口
以上假定规则用于外部接口
Enable Protocols… Shift+Ctrl+R 是否允许协议分析,见第 9.4.1 节 “”Enable Protocols”对话框”

 
 
 
Statistics ——包括的菜单项用户显示多个统计窗口,包括关于捕捉包的摘要,协议层次统计等等。
 
\
 
 

菜单项快捷键描述
Summary   显示捕捉数据摘要
Protocol Hierarchy   显示协议统计分层信息
Conversations/   显示会话列表(两个终端之间的通信)
EndPoints   显示端点列表(通信发起,结束地址)
IO Graphs   显示用户指定图表,(如包数量-时间表)
Conversation List   通过一个组合窗口,显示会话列表
Endpoint List   通过一个组合窗口显示终端列表
Service Response Time   显示一个请求及其相应之间的间隔时间

 
 
 
Help——包含一些辅助用户的参考内容。如访问一些基本的帮助文件,支持的协议列表,用户手册。在线访问一些网站,“关于”
 
 

 

菜单项快捷键描述
Open… Ctr+O 显示打开文件对话框,让您載入捕捉文件用以浏览。
Open Recent   弹出一个子菜单显示最近打开过的文件供选择。

如何进行“简单”的抓包筛选。

其实关于wireshark来说,比较重要的还是数对抓包之后的“查询统计分析”,如何在海量的数据包中,抓取出自己关注的数据包是处理问题的第一步,最后再讲解一下如何进行“简单”的抓包筛选。

为了直观,本篇博文以一次实例进行,我在本地对网卡进行了抓包,登录了一次QQ,与网友聊天,并且,访问了一次我的博客www.zike.me,那我就从海量数据包中,抓取关于这两个操作的相关数据包。

首先,我进行了本地抓包,进行了上述两个操作,stop抓包,仅仅十多秒钟,我抓到了3543个数据包,其中存在有我需要的数据包。(从这里看出了“筛选分析”有多么重要,如果数据流量较大,我试验过,较小的网络中,1分钟左右的抓包,可以获取300万数据包)

原始数据包

\

抓包分析

 

输入:oicq进行筛选

\

oicq协议分析

 

 

\

oicq统计结果

 

查看单包的数据,在data处可以看见QQ号码

\

详细数据包

 

选取第一个数据包,点击右键,我们可以看见有很多选项,我们选取“follow UDP stream”,即追踪该UDP流,跟踪整个会话

\

跟踪会话

可以看见,我的得到了该次聊天会话

\

wireshark抓包分析

 

同时,我们还可以选择另外一种筛选方式,在详细数据包中,我们选择QQ号码那一栏作为筛选的数据,点击数据包QQ号码处,右键,作为筛选……

\

wireshark筛选分析

接下来,我们看看由浏览器发起的对www.zike.me的访问,我们主要看进行对dns数据包的筛选

第一步还是选择协议,dns

\

dns数据包

 

 

同时,也可以直接选择所访问的域名:dns.qry.name == “www.zike.me”,直接进行筛选

\

wireshark抓包筛选分析

下图可以看见,我本机发起了对www.zike.me的查询,我本地的缓存域名服务器是中国电信的61.128.128.68

\

dns回应包

然后看见DNS服务器进行回应,回复说www.zike.me的IP地址是173.231.1.221

\

dns服务器回应数据包

同时,我们可以对本次抓包进行统计概况,如下图

\

wireshark统计汇总

可以看见总述里面,包数,实时流量大小等等。

\

wireshark summary

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

对本次抓包的协议总述

\

 

也就这么多了,希望对大家有用。

posted @ 2014-03-09 10:04  摆摊的程序猿  阅读(22787)  评论(13编辑  收藏