Wireshark网络抓包工具

Wireshark工具

  • 1. Wireshark软件简介
  • 2. Wireshark下载
  • 3. Wireshark安装
  • 4. 页面介绍
  • 5. 常用功能介绍
    • 5.1 网络接口选择
    • 5.2 抓包规则设定
    • 5.3 查找目标数据包
    • 5.4 快速选择过滤数据包
    • 5.5 标记数据包
    • 5.6 合并数据包文件
    • 5.7 数据包的导出
    • 5.8 数据包分析
    • 5.9 设定过滤器
    • 5.10 统计摘要查看
    • 5.11 会话统计
    • 5.12 结束点统计
    • 5.13 流量统计曲线图
    • 5.14 数据包传送分析图
  • 6. 实用过滤表达式(针对ip、协议、端口、长度和内容)

1. Wireshark软件简介

Wireshark是网络包分析工具,可以捕获多种网络接口类型的包,甚至包括无线局域网接口网络。包分析工具的主要作用是尝试分析捕获到的数据包,并尝试显示数据包尽可能详细的信息。

Wireshark是开源软件项目,用GPL(General Public License)协议发行。可以免费在任意数量的机器上使用,不用担心授权和付费问题,所有的源代码在GPL框架下都可以免费使用。因为以上原因,人们可以很容易在Wireshark上添加新的协议,或者将其作为插件整合到自己的程序里,这种应用十分广泛。

2. Wireshark下载

  • FTP下载:
    ftp://192.168.3.222/测试软件/Wireshark-win32-1.11.2.1339076 454 .exe

  • 官方网站:
    wireshark官方网站

  • 怕麻烦或者不太方便的同学们也不用怕,笔者已经下载好了打包上传到CSDN(附赠网络测试培训文档),点击链接下载即可:
    笔者下载包(附赠网络测试培训文档)

  • (注:安装Wireshark之前必须安装WinPcap,因为Wireshark只是一个显示工具,真正实现抓包的软件是WinPcap。笔者上传的安装包包含WinPcap,所以不需要单独下载安装。)

3. Wireshark安装

  1. 打开安装程序“Wireshark-win32-1.11.2.exe”,点击
    Wireshark网络抓包工具_第1张图片
  2. 点击[Next],如图
    Wireshark网络抓包工具_第2张图片
  3. 点击[I Agree],如图
    Wireshark网络抓包工具_第3张图片
  4. 点击[Next],如图
    Wireshark网络抓包工具_第4张图片
  5. 点击[Next],如图
    Wireshark网络抓包工具_第5张图片
  6. 设置好安装路径,点击[Next],如图
    Wireshark网络抓包工具_第6张图片
  7. 如果电脑中没有安装WinPcap,在该页面中选择安装。点击[Install],开始安装Wireshark,如图
    Wireshark网络抓包工具_第7张图片
    Wireshark网络抓包工具_第8张图片
  8. 安装WinPcap,点击[Next],如图
    Wireshark网络抓包工具_第9张图片
  9. 点击[I Agree],如图
    Wireshark网络抓包工具_第10张图片
  10. 启动自启功能,点[Install],如图
    Wireshark网络抓包工具_第11张图片
  11. WinPcap安装成功,点[Finish],如图
    Wireshark网络抓包工具_第12张图片
  12. 点[Next],如图
    Wireshark网络抓包工具_第13张图片
  13. 点[Finish],完成安装,如图
    Wireshark网络抓包工具_第14张图片

注:Wireshark找不到网卡怎么办?

  • 第一种方法:
    在安全模式下启动电脑,将C:\WINDOWS\System32\drivers下的nvmini.sys删除,新建一个文本文件,命名为nvmini.sys,并将属性改为只读。nvmini.sys是一个系统驱动文件,容易感染病毒会导致Wireshark找不到网卡。退出安全模式,重新启动电脑即可。

  • 第二种方法:
    命令行执行 net start npf,如果无法打开,我的电脑->管理->设备管理器,单击查看-显示隐藏的设备,然后找到NetGroup Packet Filter Driver将驱动程序类型设为系统 ,然后重启电脑。再start一遍。(网上有资料说能看到NetGroup Packet Filter Driver是表示中毒了,按照此方法排查过可能中毒的文件夹,没找到病毒)

4. 页面介绍

  1. 启动Wireshark,打开首页,如图
    Wireshark网络抓包工具_第15张图片
  2. 点击Start,进入抓包界面,如图
    Wireshark网络抓包工具_第16张图片
  3. 进入本地抓包界面,如图
    Wireshark网络抓包工具_第17张图片
  4. Wireshark界面有5个部分:
  • 命令菜单(The Menus):位于窗口的顶部,为标准的弹出式菜单,其中File与Capture菜单项是常用的。捕获(Capture)项:接口(Interface)选择捕获数据包的网卡;选择(Options)选择过滤包的条件。
  • 数据包显示过滤区域(The Packet Display Filter Field):在这一区域中,输入协议名称或其他信息,来过滤数据包列表窗口中(及数据包头、数据包主体窗口)的信息。
  • 数据包列表窗口(The Packet List pane):将捕获到的每个数据包显示为一行,包含数据包编号(由Wireshark指定的,不是协议中的开头部分的编号)、捕获数据包的时间、数据包的源和目的地址,协议类型及数据包中的协议规范信息。协议列(Protocol)列出了本数据包发送或接受的最高层协议。
  • 数据包详细信息窗口(The Packet Details pane):按照OSI七层模型显示选择数据包的结构,不同的协议用不同的颜色表示,显示数据包的信息。对数据包列表窗口中所选择(高亮度)的数据包的详细信息(为了分析一个数据包,移动光标到数据包的那一行,单击鼠标左键)进行显示,这些信息包括:以太数据帧、包含此数据包的IP数据报文。以太网和IP层等信息显示的数量可以缩放或最小化,这只要通过单击窗口内的“+” 和“-”就可以。如果数据包通过TCP或UDP传输,TCP与UDP的详细信息就显示出来,也可以简单的缩放和最小化。
  • 数据包字节窗口(The Packet Bytes pane):显示捕获到的每一帧的所有内容,用十六进制及ASCII显示。
  1. 点击Stop the running live capture,停止抓包,如图
    Wireshark网络抓包工具_第18张图片

5. 常用功能介绍

5.1 网络接口选择

选择菜单项Capture->Interfaces,或点击“工具栏”左边第一个按钮,如图19。可以选择可用网络接口,点击“Start”按钮开始抓包,如图
Wireshark网络抓包工具_第19张图片

5.2 抓包规则设定

选择菜单项Capture->Options,或点击“工具栏”左边第二个按钮,弹出Capture Options窗口,可以对抓包规则进行详细设定,如图
在这里插入图片描述
Wireshark网络抓包工具_第20张图片
设置网卡是否为混杂捕获模式(Capture packets in promiscuous mode)

  • 在普通模式下,Wireshark捕获满足以下条件的包:含本网卡地址单播包、具有多播地址且与本网卡地址配置相吻合的数据包、广播包,其他的包一律丢弃。

  • 在混杂模式下,Wireshark除捕获上述类型的数据包外,接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。

5.3 查找目标数据包

菜单EditFind Packet,弹出查找数据包对话框,如图22。在对话框中输入要查找包的关键字或表达式就可以了,可以选择是针对过滤的包进行查找还是通过16进制值进行查找,或是通过字符串进行查找;查找到目标包以后可以通过ctrl+n组合键继续查找下一个;ctrl+b查找上一个。

常见错误:
在组合表达式中使用"!="操作符,像eth.addr,ip.addr,tcp.port,udp.port等元素可能会产生非预期效果。例如要构造表达式来排除ip地址为1.2.3.4的数据包,正确的表达式应该是 !(ip.addr == 1.2.3.4)而不是ip.addr != 1.2.3.4。
Wireshark网络抓包工具_第21张图片

5.4 快速选择过滤数据包

在数据包列表窗口中选择所需要的数据包,右键菜单选择Apply as Filter->selected,可以以选中的数据包作为过滤器,选择需要的数据包,如图
Wireshark网络抓包工具_第22张图片
另外,也可以构建过滤表达式,来过滤那些不感兴趣的数据包。Wireshark提供了简单而强大的过滤语法,可以用它们建立复杂的过滤表达式。数据包列表窗口的每个字段都可以作为比较值,通过在许多不同的比较操作建立比较过滤。应用这些作为过滤将会仅显示包含该字段的包。例如:过滤字符串:TCP,将会显示所有包含TCP协议的包。

  • 表1 过滤比较操作符
名称 符号 范例
相等 == ip.addr==10.0.0.5
不相等 != ip.addr!=10.0.0.5
包长度大于 > frame.pkt_len>10
包长度小于 < frame.pkt_len<128
包长度大于等于 >= frame.pkt_len ge 0x100
包长度小于等于 <= frame.pkt_len <= 0x20
  • 表2 过滤逻辑操作符
名称 符号 范例
&& ip.src192.168.0.0/16 and ip.dst192.168.0.0/16
l l ip.addr==10.0.0.5 or icmp
! not tcp

5.5 标记数据包

为了方便查找与操作,可以将感兴趣的包做上标记以便迅速找到,选中某个包,然后点击右键菜单,选择“Mark packet”就可以了,如图
Wireshark网络抓包工具_第23张图片

5.6 合并数据包文件

有时候需要将多个捕获文件合并到一起。例如:如果对多个接口同时进行捕获,合并就非常有用。可以使用如下方法合并捕获文件:

  • File->Merge,弹出合并捕获文件对话框,如图25。通过该对话框可以选择需要合并的文件,与当前打开的数据包文件进行合并。
    可以通过以下三种方式合并:将数据包插入已存在文件前、按时间顺序合并文件、追加包到当前文件。

  • 使用拖放功能,将多个文件同时拖放到主窗口。Wireshark会创建一个临时文件尝试对拖放的文件按时间顺序进行合并。如果只拖放一个文件,Wireshark只是简单地替换已经打开的文件。

Wireshark网络抓包工具_第24张图片

5.7 数据包的导出

file->Export,弹出导出数据包对话框,如图26。在该对话框中,可以选择要导出文件存放的路径。导出与保存的区别:用户通过导出可以自主选择要导出哪个数据包,而保存是保存当前软件捕获的所有数据包,不能对保存的具体数据包进行选择。有三种导出方式:导出所有的数据包;导出在数据包列表中选择的数据包;导出标记的数据包;导出第一个标记到最后一个标记的数据包;选择数据包的范围(如5,10,11-20)导出数据包。如果选择的范围内,有忽略的数据包,还可以选择移除忽略的数据包。
Wireshark网络抓包工具_第25张图片

5.8 数据包分析

菜单Analyze->Expert Infos菜单项,或者点击下图中左下角的按钮

  • 按钮为“红色”:捕获的数据包达到了Error类型;
  • 按钮为“黄色”:捕获的数据包达到了Warning类型;
  • 按钮为“绿色”:捕获的数据包类型达到了Notes类型;
  • 按钮为“蓝色”:捕获的数据包类型达到Chats类型)。
  1. 可以查看Wireshark对捕获的数据包的分析,如图
    Wireshark网络抓包工具_第26张图片

  2. 弹出具体信息窗口,共有80条信息,如图

Wireshark网络抓包工具_第27张图片

  1. 抓包结果的存放地址,丢包率查看,如图

Wireshark网络抓包工具_第28张图片

5.9 设定过滤器

Analyze->Display Filter,弹出过滤器列表,可以编辑过滤数据包依据的规则,修改可以通过先删除再添加实现,如图
Wireshark网络抓包工具_第29张图片
创建过滤宏
Analyze->Display Filter Macros,是用来创建复杂显示过滤器的快捷方式的工具。

5.10 统计摘要查看

Statistics->Summary,弹出下面的窗口,如图33_1,33_2。统计摘要主要包括当前网络数据包文件的一些基本信息。比如文件名、文件大小、第一个包和最后一个包的时间戳、网络传输的相关统计等。如果设置了显示过滤,统计信息会显示成两列。Captured列显示过滤前的信息,Displayed列显示过滤后对应的信息。

Wireshark网络抓包工具_第30张图片

Wireshark网络抓包工具_第31张图片

5.11 会话统计

一个网络会话,指的是两个特定端点之间发生的通信。例如,一个IP会话是两个IP地址间的所有通信。

Statistics->Conversations,弹出会话统计信息窗口,如图。在该窗口中,每个支持的协议,都显示为一个选项卡。选项标签显示被捕获端点数目(例如:“Ethernet:30”表示有30个Ethernet端点被捕获到)。如果某个协议没有端点被捕获到,选项标签显示为灰色。列表中每行显示单个端点的统计信息。

Wireshark网络抓包工具_第32张图片

5.12 结束点统计

从Statistics->Endpoints,打开数据包传送中按结束点统计的信息窗口,如图。
按照协议显示结束点的数据包的个数

Wireshark网络抓包工具_第33张图片
会话统计与结束点统计的区别:会话统计是以数据包的接收发送端点进行的统计,结束统计是分别以数据包的两个端点为统计方式,进行的统计。

5.13 流量统计曲线图

从Statistics->IO Graphs,弹出流量统计信息窗口,如图。

Wireshark根据用户配置生成曲线图。
用户可以对一下内容进行设置:

  • Graphs
    • Graph 1-5: 开启1-5图表(默认仅开启graph 1)
    • Color: 图表的颜色(不可修改)
    • Filter: 指定显示过滤器
    • Style: 图表样式(Line/Impulse/FBar)
  • X Axis
    • Tick interval 设置X轴的每格代表的时间(10/1/0.1/0.01/0.001 seconds)
    • Pixels per tick 设置X轴每格占用像素 (10/5/2/1 pixels)
  • Y Axis
    • Unit y轴的单位(Packets/Tick, Bytes/Tick, Bits/Tick, Advanced…)
    • Scale Y轴单位的刻度(10,20,50,100,200,500,…)

Wireshark网络抓包工具_第34张图片

5.14 数据包传送分析图

Statistics->Graph Analysis,弹出数据包传送的分析图,如图。

左侧一列为时间列,右侧一列是数据包的传送。从这里可以查看原地址和目标地址之间发送的数据包。
Wireshark网络抓包工具_第35张图片

6. 实用过滤表达式(针对ip、协议、端口、长度和内容)

首先说几个最常用的关键字,“eq” 和 “==”等同,可以使用 “and” 表示并且,“or”表示或者。“!" 和 "not” 都表示取反。

  1. 针对wireshark最常用的自然是针对IP地址的过滤。其中有几种情况且
  • 对源地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包。
    表达式为:ip.src == 192.168.0.1

  • 对目的地址为192.168.0.1的包的过滤,即抓取目的地址满足要求的包。
    表达式为:ip.dst == 192.168.0.1

  • 对源或者目的地址为192.168.0.1的包的过滤,即抓取满足源或者目的地址的ip地址是192.168.0.1的包。
    表达式为:ip.addr == 192.168.0.1,
    或者 ip.src == 192.168.0.1 or ip.dst == 192.168.0.1

  • 要排除以上的数据包,我们只需要将其用括号囊括,然后使用 “!” 即可。
    表达式为:!(表达式)

  1. 针对协议的过滤
  • 仅仅需要捕获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可。
    表达式为:http

  • 需要捕获多种协议的数据包,也只需对协议进行逻辑组合即可。
    表达式为:http or telnet (多种协议加上逻辑符号的组合即可)

  • 排除某种协议的数据包
    表达式为:not arp !tcp

  1. 针对端口的过滤(视协议而定)
  • 捕获某一端口的数据包
    表达式为:tcp.port == 80
  • 捕获多端口的数据包,可以使用and来连接,下面是捕获高端口的表达式
    表达式为:udp.port >= 2048
  1. 针对长度和内容的过滤
  • 针对长度的过虑(这里的长度指定的是数据段的长度)
    表达式为:udp.length < 30 http.content_length <=20

  • 针对数据包内容的过滤
    表达式为:http.request.uri matches “vipscu” (匹配http请求中含有vipscu字段的请求信息)

通过以上的最基本的功能的学习,如果随意发挥,可以灵活应用,就基本上算是入门了。

你可能感兴趣的:(工具使用技巧,#,网络相关,知识梳理,wireshark,网络协议,软件测试,网络接口,经验分享)