wireshark使用指南

wireshark 使用和数据分析

这里写图片描述

基本用法

抓包

方式:a.工具栏 b.菜单栏 c.Ctrl+I,打开后选择对应网卡

设置捕捉过滤器

在复杂的网络环境中,其他无关的报文会干扰观察和数据分析, wireshark支持各种条件的过滤方式抓包,使用方式如下图:

这里写图片描述

Capture Filter 预置了一些常用的过滤模板:

这里写图片描述

Filter name是过滤条件命名,Filter string 是过滤的语法定义。常用的过滤例子:

  • ether host 14:E6:E4:AF:1F:AE - 指定源或者目的MAC
  • ether proto 0x0806 - 自定以太头的协议类型
  • arp/ip (三层,等同ether proto 0x0800)
  • tcp/udp (四层)
  • host 192.168.1.1 - 指定源或者目的ip
  • tcp port 23 - 指定tcp源或者目的端口为23
  • port 21 - 自定tcp或者upd 源或者目的端口为21

捕捉过滤器格式详解

Protocol Direction	Host(s)	    Value	Logical Operations	Other expression

例子: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128

示例:

(host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

捕捉IP为10.4.1.12或者源IP位于网络10.6.0.0/16,目的IP的TCP端口号在200至10000之间,并且目的IP位于网络 10.0.0.0/8内的所有封包。

字段说明

Protocol(协议):

可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没指明协议类型,则默认为捕捉所有支持的协议。
注:在wireshark的HELP-Manual Pages-Wireshark Filter中查到其支持的协议。

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″等价。

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)”不等价。

显示过滤器设置

显示过滤器是将捕捉到的数据包进行一定规则的过滤后呈现出来与捕捉过滤器的语法不通,显示过滤器可以基于协议和内容两种方式进行设置.

1.协议过滤语法

语法:

Protocol.String1.String2 Comparison operator Value Logical OperationsOther expression

例子: http.request.method == “POST” or icmp.type == 1

string1和string2是可选的。

依据协议过滤时,可直接通过协议来进行过滤,也能依据协议的属性值进行过滤。

按协议进行过滤:

snmp || dns || icmp	显示SNMP或DNS或ICMP封包。

按协议的属性值进行过滤:

ip.addr == 10.1.1.1
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
ip.src == 10.230.0.0/16	显示来自10.230网段的封包。
tcp.port == 25	显示来源或目的TCP端口号为25的封包。
tcp.dstport == 25	显示目的TCP端口号为25的封包。
http.request.method == "POST"	显示post请求方式的http封包。
http.host == "tracker.1ting.com" 显示请求的域名为tracker.1ting.com的http封包。

2.内容过滤语法

深度字符串匹配

contains :Does the protocol, field or slice contain a value

tcp contains "http"	显示payload中包含"http"字符串的tcp封包。
http.request.uri contains "online"	显示请求的uri包含"online"的http封包。

特定偏移处值的过滤

tcp[20:3] == 47:45:54  /* 16进制形式,tcp头部一般是20字节,所以这个是对payload的前三个字节进行过滤 */
http.host[0:4] == "trac" 

过滤中函数的使用(upper、lower)

upper(string-field) - converts a string field to uppercase
lower(string-field) - converts a string field to lowercase

示例

upper(http.request.uri) contains "ONLINE"

wireshark过滤支持比较运算符、逻辑运算符,内容过滤时还能使用位运算。
如果过滤器的语法是正确的,表达式的背景呈绿色。如果呈红色,说明表达式有误。

显示偏好设置

Edit->Preferences 中可以对显示字段、颜色、字体、页面布局进行调整,字段调整中可以增加或者删除wireshark中一些指纹特征内容的显示。

保存和导出

保存数据包

这里写图片描述

对已经捕捉的数据包,可以基于显示过滤后的数据包单独保存,也可以根据包的行范围进行保存

导出数据包中的元件

File->Export->Object

这里写图片描述

wireshark报文样本文件

sample:

TCP抓包常见问题

通过Follow Tcp Stream找到一个session的所有报文后,复杂的网络环境或者数据包太多情况下抓到的Tcp数据包有些可能呈现出“花花绿绿”的条目,这些一般是比较可疑的,存在丢包或者乱序的可能,也有可能仅仅是捕捉过程中丢失,可疑条目只是wireshark判断的结果,实际情况还需要人工确认。

  • tcp out-of-order

大部分是网络拥塞或者通过不同的网络路径到达,导致数据包抵达顺序不一致,后包先到或者数据包丢失

  • Tcp previous segment lost

可能是丢包或者抓包丢失,需要结合“dups ack”来判断是否有丢包

  • Tcp window update

接收端窗口更新,当窗口为0是表示接收端缓冲区已满,应用层未接受,发送端收到零窗口后将停止发送数据,启动坚持定时器定期来探测发送端是否接受缓冲区已经空闲

  • Tcp dup ack

当tcp发送端收到 三个重复ack,将发起快速重传

  • Tcp retransmission

tcp发送端一定时间内未收到已发送出去的数据 ack,将重传,默认是0.2 0.4 0.8…依次逼退时间内重传

  • Tcp keep alive

一些长连接应用,在一定时间内没有数据接受,将启动保活定时器,探测对端是否已经关闭,短链接一般不开启在并发数大的情况下,可能会造成带宽浪费

TCP数据分析

IO 图形工具

io gragh工具将当前显示数据包,按时间分布展示出数据流量(Y轴bit/Tick)或者包数据量(Y轴Packets/Tick)

  • X/Y坐标可以自定义参数和粒度,点击曲线图可以快速定位到数据包
  • 可以根据多个filter的条件画出多条曲线
  • IO Graphs Y轴的高级选项中有六个可用函数:SUM, MIN, AVG, MAX, COUNT, LOAD。

sum 该函数统计事件的累加值。

count 此函数计算时间间隔内事件发生的次数。

MIN/MAX/AVG 查看数据包之间间隔时间的最大值、最小值、平均值

例1,按过滤条件展示数据包数随时间分布
这里写图片描述

例2,展示重传包和丢包数随时间分布
这里写图片描述

例3,展示包延迟时间随时间分布

峰值如果偏大,可能存在数据包延迟的情况
这里写图片描述

TCP Stream Graph

Statistics->Tcp Stream Graph -> Time Sequence Graph(Stevens/tcptrace)
tcp stream graph 可以查看tcp连接在传输过程中数据的连续性,最理想状态点拟合的曲线尽量在直线上,表示数据传输速率是均匀稳定的,中间的空白段说明这段时间没有数据传输。

这里写图片描述

引用:

Wireshark User’s Guide

一站式学习wireshark: http://blog.jobbole.com/70907/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值