1、Wireshark高级技巧DOCWireshark高级技巧内容提要:显示过滤器的用法捕捉过滤器的功能及用法Wireshark远程抓包包的拼接和任意拆解显示过滤器显示过滤器是我们用得最多的,大家对他的用法应该也比较了解,这里重新介绍一下显示过滤器的语法,并且附上一些我们平常会用得比较多的典型表达式。语法协议.字符串1.字符串2 比较运算符 值 逻辑操作符 其它表达式例: sip auth domain = or rtp这里,“协议”字段可为wireshark所有支持的协议,支持的协议可以从wireshark的“Internals”中找到,“字符串1”“字符串2”是对协议的类型限制,“比较运算符”
2、用来严格指定协议的“值”,逻辑操作符用来连接多个表达式。比较运算符有下面6种:英文写法C语言写法含义eq=等于ne!-不等于gt大于lt=大于等于leoptions即可设置捕捉过滤器,选定用于抓包的网卡,填写好捕捉规则点击start即可按过滤器抓取网络包。捕捉过滤器语法捕捉过滤器语法与显示过滤器的语法不一样,具体如下:协议 字符串 值 逻辑操作符 方向 host 主机 其它表达式例 udp port 5060 and src host 10.0.0.1使用实例下面列举一些用得比较多的实例,相信通过使用捕捉过滤器,抓的包将变得更小更有利于网络分析,给工作带来极大的便利。过滤器意义ether sr
3、c host 00:08:15:00:08:15仅抓取源MAC地址为00:08:15:00:08:15的网络包src host 192.168.0.1仅抓取源IP地址为192.168.0.1的网络包host 192.168.0.1仅抓取源或目的IP地址为192.168.0.1的网络包not host 192.168.0.1仅不抓取IP地址为192.168.0.1的网格包ip仅抓取ip协议的网络包tcp仅抓取tcp协议的网络包udp仅抓取udp协议的网络包port 53仅抓取端口号为53的UDP或者TCP网络包port 5060仅抓取端口号为5060的UDP或者TCP网络包tcp dst por
4、t 53仅抓取目标端口为53的所有网络包portrange 80-1024仅抓取端口范围为80到1024的所有网络包host 192.168.0.1 and not (port 161 or port 162 or port 80 or port 23 or arp or icmp)仅抓取IP地址为192.168.0.1而且不含SNMP和HTTP和Telnet和ARP和ICMP的网络包远程抓包Wireshark支持remote packet capture protocol协议远程抓包,只要在远程主机上安装Winpcap的rpcapd服务例程就可以,在Windows系统上,只要安装了Winpc
5、ap都会安装rpcapd工具,找到Winpcap的安装目录即可找到rpcapd服务器程序,双击rpcapd.exe即可开启rpcapd服务,其默认端口号为2002。对于Linux,下载wpcap代码按如下方式编译即可:#unzip WpcapSrc_4_1_2.zip #cd winpcap/wpcap/libpcap #chmod +x configure runlex.sh #CFLAGS=-static ./configure#make #cd rpcapd #make 启动rpcapd服务含如下两种模式:普通服务模式:./rpcapd -n守护进程模式:./rpcapd -n -d连接
6、远端wireshark打开wireshark,点击工具栏的第二个按钮,或者选择capture-options,然后Interface选择Remote,填写好远端Wireshark的IP地址和端口号,验证方式选取Password验证,然后填写管理员的用户名和密码点OK即可连接上远端机器,连上之后再选取用于抓包的网络接口卡,设置捕捉过滤器等等即可开始抓取远端的网络包了。包的拼接与任意拆解利用wireshark即可以非常容易地使用包的拼接与拆解功能,该功能可以应用到以下情况在有时候即使使用捕捉过滤器也抓到了很多自己不需要的包,自己想提取里面一部分或几部分的包在有时候自己在不同时间或者不同地点的抓取的
7、几个包想拼凑成一个包。其他特殊情况。功能使用步骤一、包的拼接1)用wireshark打一个需要拼接的包2)点击Wireshark的File-Merge,然后选中一个将要被拼接的包,在该对话框下面设置接接方式和显示过滤器等。如图:说明:Prepend packets to existing find:将包拼接在当前包的前面Merge packets chronologically:将包按时间顺序插入到当前包中Append packets to existing file:将包拼接在当前包的后面二、包的拆解1)用wireshark打开一个需要拆解的包文件2)打开菜单File-Save as,可以看
8、到对话框下面有一些保存选项,即Packet Range,这里可以定义按什么样的方将包拆解成自己想要的包。选好后填好文件名保存即可完成拆解。说明:All packets:所有包Selected packet:选中的包Marked packets:做了标记的包First to last marked:从第一个标记的包到最后一个标记的包Range:选择范围,支持多个范围,不同范围中间用逗号连接Captured:已捕获的包,未加显示过滤器的限制时的包个数Displayed:已显示的包,加了显示过滤器的限制时的包个数使用实例1)仅拆解出过滤出来的包假如我们有一些包仅想将里面满足过滤器条件的包拆解出来,那
9、么我们先在显示过滤器里面设置好过滤器,然后“Save as”的时候选择All packets的Displayed选项就可以只保存我们在过滤器里面显示的包了。这里以只拆解出sip协议包为例,如图:从图中可以看出,经过这样设置后我们只保存了满足条件的130个包了。2) 仅拆解出选中的包首先我们要在抓到的包里面选中我们想要拆解出来的包,选中一个包只需用鼠标左键单击该包即可,就是这么简单。然后“Save as”的时候选择Selected packet的选项就可以只保存我们选中的包了。3) 仅拆解出做了标记的包给一个包做标记非常简单,只需右键单击一个包,然后选择Mark Packet即可,可以通过多次标
10、记来标记多个包标记好然后“Save as”的时候选择Marked packet的选项就可以只保存我们做了标记的包了。4) 仅拆解出从第一个标记的包到最后一个标记的包设置好第一个标记的包和最后一个标记的包,然后在保存的时候选择First to last marked即可拆解出该范围里的包了。5)仅拆解出一个范围或者多个范围里的包“Save as”的时候选择Range,并输入一个范围即可。比如我们要拆解出一个SIP通话过程的所有包,我们可以先使用Voip Calls菜单查看所有通话;然后选中一个通话并点击流程,单击Invite即可找到此次通话的第一个包,并记下此包的序号然后单击200Ok即可以找到此次通话的最后一个包,记下此时的序号然后在Range里面输入2841-5472即可,如图:可以同时定义多个范围,格式如图:2011-11-13产品部