我们拒绝平庸,拒绝随波逐流,拒绝墨守成规,让梦想不再流浪。

Wireshark使用指导书

上一篇 / 下一篇  2014-06-10 14:42:15 / 个人分类:网络

1m}V4VJQ'F*Z$}0 51Testing软件测试网&q gq3N$aI

2U(^/kQ5Gr9T f0Wireshark使用指导书51Testing软件测试网|*I(MKT

hvo"y6O*{0解决方案测试

Qx8P jU)Sh;k051Testing软件测试网S\6dC{:{1o)h/D
一、Wireshark简介51Testing软件测试网)wl4r2x't!c

Wireshark 是当前较为流行的一种计算机网络调试和数据包嗅探软件。Wireshark 基本类似于tcpdump(Unix/Linux系统中一个基于文本界面的抓包工具,《TCP/IP协议详解》这本书中的抓包都使用这个),但Wireshark 还具有设计完美的 GUI 和众多分类信息及过滤选项。用户通过Wireshark,同时将网卡设置为混合模式,可以查看到网络中发送的所有通信流量。

;Q"G$QZ%LY0j0

t5U]l6g9P(WA!F D2d0Wireshark应用于故障修复、分析、软件和协议开发以及教育领域。它具有用户对协议分析器所期望的所有标准特征,并具有其它同类产品所不具备的有关特征。Wireshark是一种开发源代码的许可软件,允许用户向其中添加改进方案。Wireshark 适用于当前所有较为流行的计算机系统,包括 Unix、LinuxWindows51Testing软件测试网Z/?n*d1\~vqb

"^+J$h)w-Dl9Q0可以到Wireshark的官方网站www.wireshark.com.cn载到最新的版本,目前最新的版本是0.99.7.0,后面就用这个版本的软件来做介绍,其他版本的软件可能界面上会有一些差异(特别是早期版本),不过一般来说操作思路基本是一样的。51Testing软件测试网H J vdD8Tp

51Testing软件测试网7{K&UCmS(j7C

 

bB S jIio0二、Wireshark使用方法和技巧51Testing软件测试网+E1Qkp$w

本文主要讲解Wireshark的使用方法和技巧。51Testing软件测试网l)KU&{%T#k

51Testing软件测试网:\)j,BQY1t

打开Wireshark后界面如下:51Testing软件测试网8G4i%T-TC`P@^-a

51Testing软件测试网#cV({3r(Y AM q[$|

51Testing软件测试网!h(eq#{G[

图 1 Wireshark主界面

*U4}+K:ej0

bV$c)i@h051Testing软件测试网0J%W/zgE@%ni2Mn

File(文件)菜单的界面如下:

A}\!b G X"wo"N051Testing软件测试网T0x#?n5A i(D

51Testing软件测试网7W4{ HJ9P*C1j

图2 File菜单

qK A,N{-Z1@(l~*D0

f P%Kt-ZH8m6eR0

2p[1R(a.T7t;Rd0Open(打开)选项可以打开一个已经保存在磁盘上的抓包文件。

hF~~0\W.B051Testing软件测试网![ IvI0M

Save(保存)选项可以把当前抓到的数据保存到一个文件中。

7cv _ fO051Testing软件测试网imUOU G)jP

其他的东西一般用不到,不用去理会。

OJw7P Nkpd{0

@]+fGR9]0选择Save时打开的窗口如下:51Testing软件测试网]rM~8\W6v

51Testing软件测试网vZ6k3|?(K+L

51Testing软件测试网&t1g7L}:KQ~H9f1A ]

图3  Save界面

0`zt3\1N'`+F)^051Testing软件测试网W"M/tNa:hJ

51Testing软件测试网8Tn;yky

如图3所示,文件名Name(N)这一项可以写上自己容易记的名称,这里用英文字母来写名称,Wireshark本身不能够很好地支持中文,养成后缀名使用“.cap”的好习惯,这样方便查找和识别。

'W r2nC`[.vo0

*|@B,Kp0Packet Range这一个框的内容都是来选择需要保存的数据包,当抓取到的数据包很多,只是想保存一些有用的数据包时,这一功能非常有用,因为如果保存的文件太了,不方便储存和网络传输。

)w3w \1m{9d;v0uO D0

r8Z a7pU|+M0All packers(所有包),当选择这一项时,会把所有当前抓取到的数据包都保存下来。51Testing软件测试网9L2~.m A2}!v

51Testing软件测试网Nf(y8G'Rj!Y!Y

Marked packets (标记过的包),当选择这一项时,会只保存标记过的数据包,后面我们会介绍如何标记数据包。当需要只保存一部分数据包时,一般都通过这种方法来保存。51Testing软件测试网0I(l2i&s"Z9KlX

#tbwN(z`,Q!w2qW0First to Last marked(第一个到最后一个标记过的包),当选择这一项时,会保存第一个标记过的到最后一个标记过的数据包中间所有的数据包。

LAM(`7g0q-MNf0

,r s$I'RHv7CB4vbR0这里可以看到在右边选择Captured(抓取)和Displayed(显示)的数据包数目都是一样的,当你在显示中使用显示过滤时,这两个就会不一样。后面会介绍如何在显示时加入过滤字符串。51Testing软件测试网-B3Dar;xpb[(ge

51Testing软件测试网I/n7c[iI

打开Capture菜单如下:

'Gk-u/lg:~,nB0

'\ VWp.}Ft051Testing软件测试网3| q gzf_4r&hU!B

图4 Capture选项

+M0U4NM D[h1c*k1cJ8e0

-c3VE Lo0

T!M0H8E3m5n\L&[0在打开一个Wireshark准备开始抓包时,一般先打开Options选项:51Testing软件测试网GZ'aN:hK0aB

.j;w*E(t9KX#Y0

5k J L/I2aky;Rw.U0图5 Options选项界面51Testing软件测试网3MC2c7WT2G8]

+a![0d/Cl'Q%l051Testing软件测试网 \K#V#ml3Sq8u UB)v

Interface(接口)这一项选择你需要抓包的接口,有些系统默认下会选择成内部的虚拟接口,是无法抓取需要的数据包的,这里一定要保证选择的接口是正确的。51Testing软件测试网@Obds!@&g)d

hG _0gQ,LT5DWJ0Capture packets in promiscuous mode(在混杂模式抓包),一般来说这一选项都要选上,这样才可以抓取不是发往本网卡的数据包,当然前提是网卡必须能够“看”到这一个数据包。

S!b._#Z&S&L@t051Testing软件测试网,D9y0QLch1j4^1R1X

Limit each packet to xx bytes,这一选项是设置只抓取数据包前面多少字节,如果数据包后面内容不是很重要,可以通过这一选项来减小抓包文件的大小。51Testing软件测试网)`F A#cv weg

m%n7b.vKg8K0Capture Filter(抓包过滤)项用于过滤抓取的数据包,这里可以通过过滤字符串来减少抓到的数据包。后面会介绍这一使用技巧。51Testing软件测试网 i1l t3w'M0Qp

51Testing软件测试网.F9ugpbvu

Capture File(s)这一项可以设置好数据包保存的路径和名称,当抓取的文件会很大,或者担心抓取过程中Wireshark出错而导致数据无法保存时,可以通过这一方法来让保存和抓取同步。51Testing软件测试网 C2d {]g

51Testing软件测试网NBUi0w_ L(au

File:存放抓包文件的位置

(p+I\ O"aC$Pj2^;@0

G5J2oE:h a1u0User multiple files:抓取的数据包分多个文件存放。51Testing软件测试网4E-X*i'\,w2I

51Testing软件测试网XrwlXa8_I

Next file every:设定每个文件的大小,图5中就设置每个文件大小为30M。51Testing软件测试网_u:n(D$tW

.l I])kh&dQ gv4v0Update list of packets in real time选项如果勾选上,Wireshark会在主界面中实时更新已经抓到的数据包内容,推荐勾上。便于边抓包边分析。51Testing软件测试网f7R0R*~9Xjr|\%v

51Testing软件测试网eWmFcB4d

Automatic scrolling in live capture选项如果勾选上,会在显示窗口中自动把最新包的内容显示出来,这个选项一般根据自己的需求来选择,大部分情况下是适合勾选上的。

Nd#B.yfv0

$VG K*U'~.hY6W0Hide capture info dialog选项如果选中,就不会显示数据包数统计窗口,这一窗口一般没有什么用,建议也勾选上。

9U4AJ2L;e$Y2D0

c*z@Am0其他的选项默认就可以了。选择完毕后点击Start按键就开始抓包。

~SkY"gL^0

Hu*fo1{[)pe0

a;??6J}Af1Q0图6 Wireshark主界面51Testing软件测试网 ~0D"qxue

C`x L(Rg3u5Qql'Ff.^b0

#g$g M-w.x:EI0第一个标注红色框中的内容每一行就是一个数据包,这里有数据包的一些信息,如协议,端口号等或者其他一些信息。当你在第一个红色红框中点击选中一个数据包时,在第二个标注蓝色框和第三个标注粉色框中就会相应显示这一数据包的详细内容。51Testing软件测试网;F3sS(gwLm3E%Nl0SF

51Testing软件测试网6? P#b9H\6@/\6k6Cv

第三个标注粉色蓝框中的内容就是数据包的实际内容,可以看到都是一些十六进制数(数据包中的每4位在这里被显示为一个字符)。人们阅读此内容很痛苦,需要找很多协议的资料,一个字段一个字段查本字段代表什么含义才可以读懂一个数据包,好在Wireshark已经帮我们做了好多,第二个标注框部分内容就是Wireshark对数据包内容做出的一些解析信息,是用英文的,不过所用的单词也就那么几个,多看看就熟悉了。

7q8\+K'at.BE^h051Testing软件测试网@gk(UwZ#g.B

从上面的分析可以看到,我们抓到数据包后想分析数据包内容时,首先会从第二个标注框部分的信息内容来分析,因为这一部分已经加入了人类可读的解析信息。可以看到里面有很多分层,图3-6中的一行就是一层,每一层的前面都有 这一图标,表示还有更加详细的信息,点击 就可以看到详细信息,如下:

5W^#C?9K~9E0

a#m8wK)[biZg G0

8V9N*{P)]&w0图7 Wireshark显示的IP层内容51Testing软件测试网.g#c!O.O tc

.fyq_/Pl4FY051Testing软件测试网'~*|!}0m-~l-lqQ

如图7所示,当点击Internet Protocol(IP协议)前面的+号时就打开了IP层的详细内容,可以看到这一层里面还有一些行前面有+号,说明如果需要还可以打开这些+读取这些层的子层中更详细内容。

6r4KCU,_8M02.1在抓包时加入过滤字符串51Testing软件测试网@p)fV'Gs1@2E+Ha2p

这一节我们来介绍一下如何在抓包时加入过滤字符串。请参照图5中显示的Option选择界面,我们上面已经说过Capture Filter项中可以加入抓包过滤字符串。可以加入的字符串会比较多,授之以鱼不如授之以渔,这里尝试教给你一个找到自己所需要的过滤字符串的方法。我个人也觉得并不需要死记下来,只要懂得方法就行,如果用得多哪天你可能会不经意发现自己已经记得了一些字符串,那才是真正你懂的东西。

,QW1xiyV~!D051Testing软件测试网-Kb5y+k Q#i ^ ?

当你在如图5中点击Capture Filter按键时,会打开如下界面:

)MduL(Io%X0

z.F:U[)n1nnKb{0

+|NK'z*| {#H0图8 Capture Filter界面51Testing软件测试网8`'JD%[D.M

51Testing软件测试网[f-~3A;Q8k/y;W/|A*^

#oyCiZ0在Filter框中默认已经存在了一些示范规则,在图8中已经选中了第一条示范规则,下面在Filter name中显示的就是这一示范规则的名称,这一名称可以自己随意更改,只要方便识别就可以了。Filter string中的内容才是真正起作用的过滤字符串,这些字符串的书写是有一定格式的,从已经存在的示范规则中我们可以学习到很多书写格式,如图8中显示的就是第一条示范规则的内容,从名称中可以看到创建人的目的:只抓取以太网地址有一个为00:08:15:00:08:15的数据包,如果我们有这样的需求,就可以在过滤字符串中前面使用eher host,后面当然加上自己需要的MAC地址就可以,这样子不难吧。因为ether host这两个单词在这里面是不能随意更改的,我们可以称它们为关键字。

@6V)eK4yrV7e0

5pVdbCt$o0第二条示范规则是抓取ARP包,第三条示范规则是抓取除了广播和组播的其他数据包等等。

(IN5l8pqf051Testing软件测试网,? Vl!mm8qc

如果上面的示范规则还不能够合符你的要求,可以点击Help按钮会弹出Wireshark帮助栏,在这里就不做介绍。51Testing软件测试网U'_5L/N*R3Y

2.2在显示时加入过滤字条串

o5I{-ww v'R0Wireshark的显示过滤功能是非常强大的,强大到大部分协议(包括应用层协议)的字段都可以用来做过滤,但也因此比较复杂,因此Wireshark里面集成了一个叫做表达式(Expression)的工具来帮助我们完成过滤字符串。

!H4mlI9m'Q_+`0

!i m$li x r"j~b(n0

4u1]u/\ {A0图9 Wireshark过滤显示界面51Testing软件测试网C{0vF&uO5Z0m+R

51Testing软件测试网&bU/j"X?D

2t:G!M'Ru_v0从图9中可以看到,Filter框中显示的内容就是显示过滤字符串,在上例中我们输入为tcp.port==80(注意是两个等号而不是一个),表示只显示TCP数据包且端口号中有一个为80。可以看到显示过滤字符串和抓包过滤字符串是完全不相同的格式,注意不要把它们混在一起。这一框中显示了起过滤作用的字符串,如果你对过滤字符串熟悉也可以在这里直接输入,如果输入的格式正确,则Filter框的背景颜色为绿色,如果格式不对,则为红色的。

4b(sv9tn)Bo0

,r Ma N'?N$X0Apply按键可以让刚填写进去的过滤字符串生效,Clear按键则可以清空过滤字符串并回到没有进行过滤的状态。51Testing软件测试网D\+}aC

X._ o!^^1X F0如何使用Expression来完成上面这一字符串表达式的。点击Expression按键,出现了表达工辅助完成工具:

cz;D%oJ3v&zr0

cNYH ~cE{!FV051Testing软件测试网9K@w:rJUWbG

图10 Filter Expression设置51Testing软件测试网'uQ}^vN s

51Testing软件测试网V%^S@!ca2|-wLUH

51Testing软件测试网9@6I(MY U p`5XjxX%`g

如图10所示,首先从Field name中找到TCP,点击前面的+号展开详细内容,然后再选择tcp.port – Destination Port(目的端口),在Relation中选择==,在Value中填写80,点击OK就完成了前面的字符串表达式了。51Testing软件测试网 ?8Au ZNd o^d

/bc] |Si2w^7C0从上面的过程可以看到,只要对协议熟悉(当然Wireshark中常用的几个英文单词还必须熟悉),是完全不用记住具体有表达式的,可以通过Expression帮助来完成。

j[)],D o-j[+shq4w02.3 TCP报文的follow stream、mark等技巧51Testing软件测试网 L)L8n E?+~Q

这节我们介绍一下使用Follow Tcp Stream来过滤一个特定的TCP连接,以及通过Mark来标记需要的数据包,这样在保存的时候就可以只保存有用的包,方便传输和分析。

} E h'f,u;R k_d0

lB,RC T{u$y'Cl"f&{*M051Testing软件测试网yj0~6k2S/O'Ym

图11  TCP数据包右键菜单

?ptE7AW051Testing软件测试网 K%PH1|%p l6c

/Sr-^zA(D0在图11中对一个数据包占击右键,在弹出的菜单中选择Follow TCP Stream,Wireshark会只显示这个TCP连接的数据包,并弹出Follow TCP Stream对话框。如图12所示:

3C${W9R9}*U+A0

4Q+?/S|'m-A#lV051Testing软件测试网,a1w_$kT"{ C^

图12 Follow Stream界面51Testing软件测试网|A%T7HxA9Kn

6rFi4u-]~u!p*r in051Testing软件测试网k\]8G8X\,^SoF

如上图所示,Stream Content中可以显示在这一TCP连接上传输的数据内容,如果有些内容是ASCII格式,还可以显示可读信息。51Testing软件测试网_ey v9\ S#G9U&z

{u,g,]2a3V,Q0如图13所示,Filter中已经自动加上了过滤字符串内容,可以看出来这一功能还是利用了显示过滤的功能。从所示过滤字符串我们可以看到当有多个字符串时,可以通过括号()和关系式or、and来把这些字符串组合成我们所需要的功能。51Testing软件测试网l5}W(z9EwJ@

51Testing软件测试网e ^hM%s,vm2|T[

g4m/Hp6Bko;P0图13  Follow  Stream 技巧

;G+S7h'sP n@5w#`h0

j!A7oQ/u$O(l,C0

t/NF'o| U9I8|WU0如图11中显示,如果我们在右键一个数据包弹出的菜单中选择Mark packet(toggle)就可以标记一个数据包。不过我们也可以通过选中一个数据包,然后通过Ctrl+M组合键来快速标记一个数据包。当我们把有用的数据包标记完后,就可以在保存过程中选择只保存Mark过的数据包来实现让抓包文件变小的目的(参照图5中的Marked packet)。51Testing软件测试网5B My^0uGt0z6P

51Testing软件测试网(D)r/C5A1q[1F

如果我们要保存的数据包比较多,一个个Mark很麻烦,保存整个抓包文件又太大时候怎么办?下面介绍一下这种操作的技巧:51Testing软件测试网w{kj(lPeH$[+E

51Testing软件测试网 WX"`{[r+ct.R

可以首先通过过滤功能只显示感兴趣的数据包,然后在保存界面中选中Displayed:51Testing软件测试网l)H/n.x#\kQB hbU4U

51Testing软件测试网i:q;W|3`'F

2AM qY%X1g-}0图14 Displayed保存技巧

wwmU| U#JQgF3v`0

#E?SQ9]hdh0

:F(v1Le,L@1y0从图14中可以看到,已经抓取到305个数据包,但通过过滤后,使用Displayed保存技巧,我们只保存了108个数据包,这样方便我们分析数据包。

g%`v7WTXd9G9E02.4利用显示颜色及加入delta(增量) time技巧

BI j^fq0比较新的Wireshark数据包会预先为我们给不同的数据包设置上不同的颜色,这样我们就可以很容易判别了一些比较异常的数据包,推荐使用Wireshark的新版本(到写这文档时最新的版本是0.99.7.0)。51Testing软件测试网Pa)z4G)B+u,`:bK

51Testing软件测试网` `Fqt0ID(E4C

V&\:y#fN-nj0图15 Wireshark颜色显示51Testing软件测试网qG?;|9\Ncp X%X5Xw4r

A4j0]{-mz051Testing软件测试网\/{%oc9\)l-oWj

如图15所示,不同颜色的数据包都有不同的颜色背景色,一般来说棕色背景色如3号数据包都会对分析问题比较重要,在Wireshark环境中棕色代表被置为RST的TCP数据包,在分析数据包时如果发现此类数据包,尤其要引起足够重视。

q(S'^ i+Lt+O'N x0

8h%A2P|7m?"w]9}0

R _a Q.|,M8_j0图16使用时间差技巧

"Hsd}0m h051Testing软件测试网|%R:C z7e.p2ED[

51Testing软件测试网w G2I9]2V8e*t*oB8?

如图16所示,当我们在View菜单->Time Display Format中选中Seconds Since Previous Packet选项时,在数据包显示界面中时间一栏会显示一个数据包与上一个数据包之间的时间差:51Testing软件测试网:Jt/CJ~6n$?0gm

.k:v"uU6kz-mIf0[~{F0

L-HOx-{-Rm0图17 使用时间差后的显示界面

AK [s6GwC051Testing软件测试网#k;?P1z2kb&W6Y \t

51Testing软件测试网@e;xU4N6r

如图17所示,每个数据包的Time显示的不再是与每一个数据包之间的时间差,而是与前一个数据包的时间差。实际使用中常常结合显示过滤技巧,来达到如显示一个TCP连接中上一个数据包与下一个数据包之间的时间差。

a}pFlPQcR0三、注意事项51Testing软件测试网 j(Xc,T_v.i

1、使用Wireshark的前提是电脑已经安装Wincap抓包组件,否则Wireshark抓不到任何数据包。

2?7W-T(kR0

7J1f?,M{Ze02、尤其是在电脑安装多块网卡的时候,在抓包时一定要注意选择正确的网卡。

FL:i9i{SG0

U"v:?B&p J03、抓包时一定要注意选择网卡工作模式为:混杂模式,否则只能抓到发往本机的数据包。

M J-t5g"X:PlW0

TAG:

 

评分:0

我来说两句

日历

« 2024-05-04  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 110125
  • 日志数: 89
  • 图片数: 1
  • 文件数: 15
  • 建立时间: 2013-03-01
  • 更新时间: 2018-08-23

RSS订阅

Open Toolbar