下载与安装
wireshark是一款免费的数据包分析软件,可以通过访问官方网站进行下载安装,支持windows、linux、macos等多种平台(还可以下载源码)。
wireshark功能强大,安装方便,掌握了wirshark的使用方法不但可以在学习中帮我们更直观深入得了解网络协议的工作原理,更能在以后的工作中帮助我们披荆斩棘排除故障,另外如果对usb、蓝牙抓包也感兴趣的小伙伴可以在安装时勾选上全部的可选安装软件,以获得更丰富的功能。
抓包原理
Wireshark使用的环境大致分为两种,一种是电脑直连互联网的单机环境,另外一种就是应用比较多的互联网环境,也就是连接交换机的情况。
「单机情况」下,Wireshark直接抓取本机网卡的网络流量;
「交换机情况」下,Wireshark通过端口镜像、ARP欺骗等方式获取局域网中的网络流量。
- 端口镜像:利用交换机的接口,将局域网的网络流量转发到指定电脑的网卡上。
- ARP欺骗:交换机根据MAC地址转发数据,伪装其他终端的MAC地址,从而获取局域网的网络流量。
开始抓包
安装完成软件后,我们开始学习如何进行抓包操作。
1.选择网卡
打开软件后,映入眼帘的是“网卡选择界面”,图中以太网是本地网卡,我这里比较多是因为安装了vmware本地虚机和其他设置造成的,如果是有本地无线网卡,则会在列表中看到WLAN项。
我们双击网卡名,进行抓包,我这里是“以太网”。
2.停止抓包
根据需要,在一定时间后,点击左上角的“红色方块”按钮,可以停止抓包。
3.保存数据
点击右上角的“文件”---选择“保存”,可以将抓包数据保存到本地硬盘。
UI布局介绍
1.菜单栏:用于常用的调试、配置等;
2.工具栏:各种工具、指令的快捷按钮;
3.过滤指令栏:制定过滤条件,过滤数据包;
4.数据包列表:主要内容显示区,每一行就是一个数据包;
5.数据包详情:数据包的详细数据显示;
6.数据包字节:对应数据包的字节流和二进制。
解读数据包列表
依次介绍一下:
NO,表示序号,表示列表中第几个捕获的数据包;
time,相对捕获时间
source,数据包的原地址IP;
destination,数据包的目的地址IP;
protocol,解析出数据包的协议类型;
info,是摘要的数据包信息。
根据显示的列表内容,我们可以点击某一个数据包,从下方的详情区域中进行查看分析,这里我们选择一个http数据包来举例。
点开数据包可以发现,里面有几个折叠信息,其中越靠近上面的越接近物理层,反之越靠下越接近应用层,依次点开,我们就能找到我们需要的信息。
我们首先展开物理层信息,可以看到物理接口的相关信息、帧长度,以及是否被丢弃的状态。
接下来是第二层的信息,包括以太网帧封装类型、源MAC地址和目标MAC地址,因为wireshark是一个自带分析功能的抓包工具,他可以帮我们标出相关有用的字段,比如下图中就标出了mac地址是一个单播地址(mac地址的第8位为单播/组播位,0位单播,1为组播),也可以通过下面的十六进制区找到对应字段分析。
再往下是第三层,包括了IP版本(ipv4),头部长度、DS Field、头部校验和、源目IP地址、TTL字段等。
再往下就是传输层信息,这里比较关注的信息主要有传输层的协议、源目的端口、段的大小、序列号(seq Number)以及标志位信息、payload大小等。下图包中信息,传输层协议tcp,源端口80,符合http包特征,tcp段长度53byte,标志位ACK置位(这里如果要找谁的ACK,可以将seq号-1进行查找,就可以找到ACK是对哪个数据包进行的回复)