资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Wireshark,抓包工具使用分享,产品开发一部 前端开发室,钟和民,2012-8-28,Wireshark抓包工具使用分享产品开发一部 前端开发室,内容纲要,Wireshark,简介,Wireshark,常用功能,抓包,停止抓包,保存抓包,设置抓包选项,捕捉过滤器,显示过滤器,Follow TCP Stream,实际应用案例,内容纲要Wireshark 简介,Wireshark简介,网络抓包分析工具,可实时捕捉多种网络接口,支持其他程序抓包保存文件,例如TCPDump,开源软件,采用GPL授权,支持UNIX和Windows平台,Wireshark简介网络抓包分析工具,Wireshark简介,发展简史:,1998,年由,Gerald Combs,完成第一个,Ethereal(Wireshark,前身,),版本的开发。,此后不久,,Gilbert Ramirez,发现它的潜力,并为其提供了底层分析,1998,年,10,月,,Guy Harris,正寻找一种比,TcpView,更好的工具,他开始为,Ethereal,进行改进,并提供分析。,Wireshark简介发展简史:,Wireshark简介,1998,年以后,正在进行,TCP/IP,教学的,Richard Sharpe,关注了它在这些课程中的作用。并开始研究该软件是否他所需要的协议。如果不行,新协议支持应该很方便被添加。所以他开始从事,Ethereal,的分析及改进。,从那以后,帮助,Ethereal,的人越来越多,他们的开始几乎都是由于一些尚不被,Ethereal,支持的协议。所以他们拷贝了已有的解析器,并为团队提供了改进回馈。,2006,年重新命名为,Wireshark.,Wireshark简介1998年以后,正在进行TCP/IP教,Wireshark简介,支持的系统:,Windows,APPle Mac OSX,Debian GNU/Linux,FreeBSD,NetBSD,OpenPKG,Red Hat Fedora/Enterprise Linux,Wireshark简介支持的系统:,Wireshark简介,官方网站:,http:/www.wireshark.org/,维基网站地址:,http:/wiki.wireshark.org/,中文用户手册:,http:/ 可通过Capture菜单中,Wireshark常用功能,开始抓包后,,Wireshark,的主界面中会以不同的颜色显示抓取到的不同的数据包。,如果要停止抓包,可通过工具栏中的,Stop,按钮,或者,Capture-Stop,菜单项停止抓包。,Wireshark常用功能 开始抓包后,Wiresha,Wireshark常用功能,停止抓包后我们可以将抓取到的数据包保存到文件供日后分析使用。,可通过菜单,File-Save(Save As),或者工具栏上的保存按钮。,Wireshark常用功能 停止抓包后我们可以将抓取到,Wireshark常用功能,抓包模式,在开始抓包之前还可修改,Wireshark,的抓包选项。通过工具栏或者菜单,Capture-Options,打开抓包选项设置界面。,这里可以设置很多选项,我们这里介绍一下 混杂模式 和 非混杂模式。,混杂模式:,抓取经过网卡的所有数据包,包括发往本网卡和非发往本网卡的。,非混杂模式:,只抓取目标地址是本网卡的数据包,对于发往别的主机而经过本网卡的数据包忽略。,如左图中显示的是 混杂模式,Wireshark常用功能抓包模式 在开始抓包之前还可,Wireshark常用功能,由于,Wireshark,是将抓包数据保存在内存当中,当抓包时间比较长,抓的包比较多时可能出现内存不够用的情况。此时我们设置使用多个文件保存抓包数据就可避免这种情况。,多个文件保存的方式可以是 每隔多久保存一个文件,也可以是 限制每个文件保存的大小,同时也可以设置限制文件个数。,默认情况下,Wireshark,是只使用一个临时文件来保存抓包数据的。,多文件自动保存抓包数据,Wireshark常用功能 由于Wireshark是将,Wireshark常用功能,自动停止抓包,在无人值守情况下,我们可设置在某些条件下自动停止抓包。这些条件可以是:,抓到多少包之后;,抓到多大数据量之后,(,存储容量,),;,抓取多少分钟之后,Wireshark常用功能自动停止抓包 在无人值守情况,Wireshark常用功能,过滤器,在,Wireshark,中有两种过滤器。,捕捉过滤器:,在抓包之前设置,让,Wireshark,只抓取过滤器指定的包。,显示过滤器:,在桌包之前或者完成抓包之后都可,不影响抓包,只是方便查看。,Wireshark常用功能过滤器 在Wireshark,Wireshark常用功能,捕捉过滤器例子:,src|dst host,主机过滤,src host 192.168.20.159,捕捉源,IP,地址是,192.168.20.159,的包。,dst host 192.168.20.159,捕捉目标,IP,地址是,192.168.20.159,的包。,host 192.168.20.159,捕捉源,IP,或者目标,IP,是,192.168.20.159,的包。,tcp|udp src|dst port,端口过滤,host 192.168.20.159 and tcp port 9990,捕捉源,/,目标,IP,地址是,192.168.20.159,,源,/,目标 端口是,TCP 9990,端口的数据包。,Wireshark常用功能捕捉过滤器例子:,Wireshark常用功能,Protocol,(协议),:,可能的值,:ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp and udp.,如果没有特别指明是什么协议,则默认使用所有支持的协议。,Direction,(方向),:,可能的值,:src,dst,src and dst,src or dst,如果没有特别指明来源或目的地,则默认使用“,src or dst,”,作为关键字。例如,”,host 10.2.2.2,与”,src or dst host 10.2.2.2,是一样的。,捕捉过滤器,Wireshark常用功能Protocol(协议):可能的,Wireshark常用功能,Host(s):,可能的值:,net,port,host,portrange.,如果没有指定此值,则默认使用”,host,”,关键字。例如,”,src 10.1.1.1,与”,src host 10.1.1.1,相同。,Logical Operations,(逻辑运算),:,可能的值:,not,and,or.,否,(,“,not,”,),具有最高的优先级。或,(,“,or,”,),和与,(,“,and,”,),具有相同的优先级,运算时从左至右进行。例如,“,not tcp port 3128 and tcp port 23,与”,(not tcp port 3128)and tcp port 23,相同。“,not tcp port 3128 and tcp port 23,与”,not(tcp port 3128 and tcp port 23),”,不同。,捕捉过滤器,Wireshark常用功能Host(s):可能的值:ne,Wireshark常用功能,显示过滤器例子:,http,显示,TCP 80,端口的,http,包。,tcp.port=9990,显示,tcp,端口是,9990,的包。,tcp.flags.reset=1,显示,tcp,标志字段中,reset,标志为,1,的包。,tcp.port=80 or tcp.port=9990,显示端口是,80,或者,9990,的包,显示过滤器,Wireshark常用功能显示过滤器例子:显示过滤器,Wireshark常用功能,Protocol,(协议),:,可以使用大量位于,OSI,模型第,2,至,7,层的协议。点击”,Expression”,按钮后,可以看到它们。比如:,IP,,,TCP,,,DNS,,,SSH,。,String1,String2,(,可选项,):,协议的子类。点击相关父类旁的”,+”,号,然后选择其子类。,显示过滤器,Wireshark常用功能Protocol(协议):可以使,Wireshark,常用功能,Comparison operators,(比较运算符),例如:,tcp.port=9990,过滤显示,TCP,端口是,9990,的数据包。,Tcp.seq eq 115,过滤显示序列号为,115,的数据包。,Wireshark常用功能Comparison operat,Wireshark,常用功能,Logical expressions,(逻辑运算符),例如:,tcp.port=9990 or tcp.port=9991,过滤显示,TCP,端口是,9990,或者,9991,的包。,!(ip.src=180.149.135.236),过滤显示源,IP,地址不是,180.149.135.236,的数据包。,Wireshark常用功能Logical expressi,Wireshark,常用功能,如果是在抓取和分析基于,TCP,协议的包,从应用层的角度查看,TCP,流的内容有时是非常有用的。要查看,TCP,流的内容,只需要选中其中的任意一个,TCP,包,选择右键菜单中的“,Follow tcp stream,”,即可。,Follow TCP Stream,Wireshark常用功能 Follow TCP St,Wireshark,常用功能,这里有一个技巧可以比较简单方便的查看到每一个,TCP,连接流的内容:,一,.,我们通过显示过滤器,tcp.flags.syn=1 and tcp.flags.ack!=1,将所抓包的建立每个,TCP,连接的第一个包给过滤出来。,二,.,在每个单独的包上面执行“,Follow TCP Stream,”,。,三,.,回到显示过滤器重新选择第一步中的过滤器,再对其他的包执行第二步。,Follow TCP Stream,Wireshark常用功能 这里有一个技巧可以比较简单方,实际应用案例,2010,年底到,2011,年初一段时间公司组织客户端,服务端,运维等对网盘上传失败率较高的原因进行了深入调查分析,找出了很多网络和程序上的问题,这个是其中的一个案例。,问题现象:,彩讯深圳办公室的网盘或者超大附件采用控件上传经常在中途失败。,彩讯深圳办公室内网 深信服防火墙 阻断分布式上传的案例,实际应用案例2010年底到2011年初一段时间公司组织客户端,实际应用案例,调查分析的大致过程是:,1,抓包发现在上传失败时,有较多,RST,包关闭连接,,RST,包是,TCP,标志位,reset,志为,1,的包。,以下几种情况可能导致出现,RST,包:,(,1,),.connect,一个不存在的端口。(,2,),.send,一个已经关掉的连接。(,3,),.,采用,shutdown,立即关闭一个已经建立的连接。,显然现在属于第三中情况,而且,RST,包的源,IP,地址都是服务器的,IP,地址,说明是“服务器”主动关闭连接。,实际应用案例调查分析的大致过程是:以下几种情况可能导致出现R,实际应用案例,2,查看服务器端的日志及抓包看什么原因导致其关闭连接,发现服务器并没有主动关闭连接。,3,倒回来对客户端的抓包进一步进行分析,对,RST,包的,IP,层的,TTL,进行对比发现其,TTL,值为,127,,而其他从服务器发过来的正常包的,TTL,值是,117,,明显大很多,说明其经过的路由器跳转少很多,而如果服务器的默认,TTL,值是,128,的话,说明这种,RST
展开阅读全文