上海网宿科技股份有限公司
扎实稳健,和谐融洽 志存高远,厚积薄发
Wireshark使用指南
---通过wireshark分析pcap抓包方法说明
文档维护人:杨云
邮箱:yangyun@chinanetcenter.com
版权所有 侵权必究 2013年12月
网宿科技-卓越的互联网业务平台提供商
第1页,共11页
Wireshark使用指南
版本修订记录(项目)
版本号 1 版本日期 2014.1.7 修订者 杨云 修订状态 C 修订内容 修订状态:C – 创建 M – 修改 D – 删除 R – 发布
网宿科技-卓越的互联网业务平台提供商
第2页,共11页
Wireshark使用指南
目录
1. 2. 3. 4. 5. 6.
背景 .............................................................................................................................................................. 4 支持的文件格式 ........................................................................................................................................... 4 源目的IP查看 .............................................................................................................................................. 4 DNS报文查看 ............................................................................................................................................... 4 HTTP报文查看 ............................................................................................................................................. 6 报文过滤语法 ............................................................................................................................................... 8 (1)IP过滤:包括来源IP或者目标IP等于某个IP ....................................................................................... 8 (2)端口过滤: .................................................................................................................................................... 8 (3)协议过滤: .................................................................................................................................................... 9 (4)TCP显示过滤规则: ................................................................................................................................... 9 (5)包长度过滤: ................................................................................................................................................ 9 (6)HTTP模式过滤:........................................................................................................................................... 9 (7)表达式: ...................................................................................................................................................... 11
网宿科技-卓越的互联网业务平台提供商
第3页,共11页
1. 背景
本文档介绍如何利用wireshark工具分析抓包。
2. 支持的文件格式
支持解析wireshark或者tcpdump等抓包工具抓下来的报文,支持pcap/pcapng/cap等抓包格式。(tcpdump抓包工具使用见“tcpdump使用指南.docx”)
3. 源目的IP查看
通过目的IP查看判断用户访问是否到我们的加速服务。以及其他的问题。
Pcap包在wireshark中展示如下图,由左往右各列的含义分别是:流序列号即第几条流(No.),相对时间(Time),源IP(Source),目的IP(Destination),协议(Protocol),报文长度(Length),报文详情(Info)。
红色框的部分就是抓包的源IP和目的IP了。
4. DNS报文查看
可以通过dns判断域名是否引导到我们的加速服务上。以及dns相关的其他问题。 过滤条件填dns,apply应用过滤条件,即可过滤出dns报文,如下图。
Info(报文详情)列查看dns报文的详情。详情内容如“Standard query 0x4899 A so.ard.iyyin.com”,
网宿科技-卓越的互联网业务平台提供商
第4页,共11页
Wireshark使用指南
为dns请求报文,so.ard.iyyin.com为请求解析的域名;内容如“Standard query response 0x6900 CNAME hzd.exi.hotchaleur.chinacache.net CNAME flv.muti.cnc.ccgslb.net A 42.62.12.123 A 42.62.12.121”为dns响应报文,意思是解析的域名有别名hzd.exi.hotchaleur.chinacache.net和flv.muti.cnc.ccgslb.net,解析结果IP是42.62.12.123 和42.62.12.121。
Dns请求报文对应的Destination就是用户向其请求解析的dns服务器了。
要查看一个dns解析的全部报文,可以选中要查看的dns报文,单击右键,弹出选项框点击Follow UDP Stream,即可过滤出一条dns解析的流。
小技巧:
若要通过dns解析报文来收集域名,可以把文件保存成csv格式再做过滤。
网宿科技-卓越的互联网业务平台提供商
第5页,共11页
Wireshark使用指南
5. Http报文查看
通过http报文查看具体URL的请求和响应情况。以及分析http相关的问题。
过滤条件填http,apply应用过滤条件,过滤出所有http报文,如下图。通过这个条件过滤出来的报文包括http请求、响应以及所有用http协议通信的报文。
过滤条件填http.request.method==GET,apply应用,过滤出所有GET请求,如下图。同理,
http.request.method==POST过滤出所有POST请求。“http.request.method==GET or http.request.method==POST”过滤所有HTTP请求报文(包含POST和GET)。
网宿科技-卓越的互联网业务平台提供商
第6页,共11页
Wireshark使用指南
选中GET请求报文,报文详情中,选中Hypertext Transfer Protocol展开,可以看到请求的URL
和user-agent等内容。
选中http报文,右键选择Follow TCP Stream,可以看到完整的http请求和响应过程。如下2
图。
网宿科技-卓越的互联网业务平台提供商
第7页,共11页
Wireshark使用指南
6. 报文过滤语法
(1)IP过滤:包括来源IP或者目标IP等于某个IP
比如:ip.srcaddr==192.168.0.208 or ip.srcaddreq 192.168.0.208 显示来源IP
ip.dstaddr==192.168.0.208 or ip.dstaddreq 192.168.0.208 显示目标IP (2)端口过滤:
比如:tcp.porteq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80 tcp.porteq 2722
tcp.porteq 80 or udp.porteq 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
网宿科技-卓越的互联网业务平台提供商
第8页,共11页
Wireshark使用指南
tcp.srcport == 80 // 只显tcp协议的来源端口80
tcp.port>= 1 and tcp.port<= 80// 过滤端口范围
(3)协议过滤:
tcp、udp、arp、icmp、http、smtp、ftp、dns、msnms、ip、ssl等等 排除ssl包,如!ssl 或者 not ssl
(4)TCP显示过滤规则:
tcp.flags显示包含TCP标志的封包。
tcp.flags.syn == 1显示包含TCP SYN标志的封包。
tcp.flags.syn == 1 and tcp.flags.ack == 0 显示包含TCP SYN并且不包含ACK标志的封包 tcp.flags.fin == 1 and tcp.flags.ack == 1 显示包含TCP FIN和ACK标志的封包。 tcp.window_size == 0 &&tcp.flags.reset != 1 (5)包长度过滤:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和 tcp.len>= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后 frame.len == 119 整个数据包长度,从eth开始到最后 (6)http模式过滤:
http.request.method == “GET” http.request.method == “POST” http.request.uri == “/img/logo-edu.gif” http contains “GET” http contains “HTTP/1.”
网宿科技-卓越的互联网业务平台提供商
第9页,共11页
Wireshark使用指南
// GET包
http.request.method == “GET” && http contains “Host: ” http.request.method == “GET” && http contains “User-Agent: ” // POST包
http.request.method == “POST” && http contains “Host: ” http.request.method == “POST” && http contains “User-Agent: ” // 响应包
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ” http contains “HTTP/1.0 200 OK” && http contains “Content-Type: ” 一定包含如下 Content-Type:
http.host==magentonotes.com http.host contains magentonotes.com
//过滤经过指定域名的http数据包,这里的host值不一定是请求中的域名 http.response.code==302 //过滤http响应状态码为302的数据包 http.response==1 //过滤所有的http响应包
http.request==1 //过滤所有的http请求,貌似也可以使用http.request http.request.method==POST //
wireshark
过滤所有请求方式为POST的http请求包,注意POST为大写 http.cookie contains guid //过滤含有指定cookie的http数据包
http.request.uri==”/online/setpoint” //过滤请求的uri,取值是域名后的部分
网宿科技-卓越的互联网业务平台提供商
第10页,共11页
Wireshark使用指南
http.request.full_uri==” http://task.browser.360.cn/online/setpoint” //过滤含域名的整个url则需要使用http.request.full_uri
http.server contains “nginx” //过滤http头中server字段含有nginx字符的数据包 http.content_type == “text/html” //过滤content_type是text/html的http响应、post包,即根据文件类型过滤http数据包
http.content_encoding == “gzip” //过滤content_encoding是gzip的http包 http.transfer_encoding == “chunked” //根据transfer_encoding过滤 http.content_length == 279
http.content_length_header == “279″ //根据content_length的数值过滤
http.server //过滤所有含有http头中含有server字段的数据包 http.request.version == “ HTTP
/1.1″
//过滤 HTTP
/1.1版本的http包,包括请求和响应
http.response.phrase == “OK” //过滤http响应中的phrase
(7)表达式:
如:!(arp.src==192.168.1.1) and !(arp.dst.proto_ipv4==192.168.1.243)
网宿科技-卓越的互联网业务平台提供商
第11页,共11页
因篇幅问题不能全部显示,请点此查看更多更全内容