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