网络封包分析软件——Wireshark抓包教程

电子说

1.2w人已加入

描述

Wireshark简介

Wireshark(前称Ethereal)是一个网络封包分析软件。 网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。 Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。 Ethereal的出现改变了这一切。 在GNUGPL通用许可证的保障范围底下,使用者可以通过免费的途径取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。 Ethereal是全世界最广泛的网络封包分析软件之一。

Wireshark抓包示例

1、下载并且安装好Wireshark后打开软件(本文以Wireshark Version 3.4.9 介绍)打开后我们可以看到,Wireshark可以自动识别出电脑上面的网卡(包括虚拟网卡),这里我们双击我们需要抓包的网卡。

Mac

2、双击进入此界面后,Wireshark已经自动开始了抓包过程,如果网卡在与其他网络设备通讯,我们就能看到如下图所示的各种网络协议报文。

Mac

3、平 www.ebyte.com

Mac

4、由于Wireshark抓取的是网卡物理层的数据,所以所有通过该网卡收发的数据都会被Wireshark抓取,这就让我们从海量数据中找到我们需要关注的网络包就如同大海捞针,但是Wireshark提供了强大的数据包过滤功能,我们就能比较轻松地找到对应的包。 比如上面我已经ping了我司官网,现在Wireshark已经抓取了两万多条报文,只要通过在过滤器输入”ip.addr == 101.37.40.78 && icmp“就能找到对应的报文。

Mac

TCP报文抓包分析示例

1、Wireshark的抓包

开启Wireshark的抓包功能后,通过电脑连接到本地搭建的回显服务器,电脑上面的客户端发送了一段数据到服务器,服务器回传到电脑上的客户端。

Mac

2、过滤报文

此时我们在Wireshark的过滤栏中输入“ip.addr == 192.168.3.6”就能过滤出网络报文中基于IP协议簇,且IP地址(源地址或目标地址)为192.168.3.6的网络报文。 如下图所示:

Mac

Wireshark在封包展示界面中根据网络协议模型,展示出了各层协议的重要信息如下图所示:

Frame: 表示物理层

Ethernet II: 数据链路层信息,包括源主机MAC,目标主机MAC与协议类型如IPV4(0x0800)

Internet Protocol Version 4: IP协议帧信息,包括源主机IP地址,目标主机IP地址等

Transmission Control Protocol: TCP协议相关信息,包括源端口与目标端口号,接收窗口大小等

Mac

Mac

3、TCP握手过程

Mac

Wireshark常用过滤器设置

1、Wireshark中的逻辑运算符

1.1 比较运算符如:== (等于)、! =(不等于) 、>(大于) 、<(小于) 、>=(大于等于) 、<=(小于等于)

ip.src == 192.168.3.6 过滤源主机IP地址或者目标主机IP地址为192.168.3.6的报文

1.2 逻辑运算符如:&&(与)、|| (或)、! (非)

ip.src == 192.168.3.6 && && tcp.srcport == 8001,则只显示报文源主机地址为192.168.3.6且源端口为为8001的报文

2、协议过滤

根据网络协议过滤报文,即在抓包过滤框中输入协议相关字段即可,包括”TCP”,”UDP””HTTP””ICMP”等。

3、MAC地址过滤

eth.addr == 382602:dd 过滤源主机MAC地址或者目标主机MAC地址为382602:dd的报文

eth.src== 382602:dd 过滤源主机MAC地址为382602:dd的报文

eth.dst== 382602:dd 过滤目标主机MAC地址为382602:dd的报文

4、ip地址过滤

Ip.addr == 192.168.3.6 过滤源主机IP地址或者目标主机IP地址为192.168.3.6的报文

Ip.src== 192.168.3.6 过滤源主机IP地址为192.168.3.6的报文

ip.dst == 192.168.3.240 过滤目标主机IP地址为192.168.3.240的报文

5、端口过滤

tcp.port==80 过滤基于TCP协议且目标端口号或源端口号为80的报文

udp.srcport == 8001 过滤基于UDP协议且端口号为8001的报文

tcp.dstport == 8001 过滤基于TCP协议且目标端口号为8001的报文

6、http模式过滤

http.request.method=="GET", 过滤基于http协议且http请求方式为”GET”的报文

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分