Wireshark是一个开源的网络协议分析工具,它能够捕获和分析网络数据包,并以用户友好的方式呈现这些数据包的内容。Wireshark 被广泛应用于网络故障排查、安全审计、教育及软件开发等领域。接下将讲解Wireshark的安装与简单使用。
目录
Wireshark安装步骤
首先我们先打开Wireshark的 官网 点击Get Acquainted菜单找到Download,点击进到下载界面。
进入到下载界面后,给我们提供了当前最新版本和历史版本下载的选项,这里我们选择下载最新版本,大家根据自身电脑系统进行选择下载相应的安装包,这里我拿windows举例,在最新版本中选择下载Windows 64位的安装包,单击Windows Installer(64-bit) 下载:
下载完成之后,双击下载的安装包,点击next,如下图:
点Noted之后再点击Next,如下图:
选择要安装的组件,默认下载也行,这里博主我就全选了,点Next,如下图
选择附件任务,以下是该任务的解释,根据自身需要进行勾选,博主选择如下方式安装:
Create Shortcuts:创建快捷方式
1)Wireshark Start Menu Item:Wireshark开始菜单项
2)Wireshark Desktop Icon:Wireshark桌面图标
Associate File Extensions:关联文件扩展
Associate trace file extensions with Wireshark将跟踪文件扩展名与 Wireshark 关联起来
自定义选择安装位置,推荐D盘安装即可,如下图:
Wireshark需要Npcap或WinPcap来捕获实时网络数据,默认下载即可,点击Next,如下图:
此处根据需要选择安装,这个插件还是测试版本的,本人选择安装:
USBPcap is required to capture USB traffic. Should USBPcap be installed(experimental)?
要捕获 USB 流量,需要 USBPcap。是否应该安装 USBPcap (实验)?
接下来wireshark跳转到安装界面如下图,同时弹出了一个Npcap的安装界面,第二个标题处理该安装步骤,如下图:
接下来wireshark跳转到安装界面如下图,同时弹出了一个USBPcap的安装界面,第三个标题处理该安装步骤,如下图:
上面两个工具安装完成之后,如下界面显示wireshark已经安装完成,点击Next即可,如下图:
检查电脑的文件是否保存,此步骤需要重新 Windows 系统,WireShark 才可以完全安装成功,重启后才可以使用 WireShark,选择如下重启即可,如下图:
电脑重启后至此我们的wireshark安装完成,可以继续阅读本文对wireshark使用讲解的内容。
Npcap安装步骤
点击 I Agree 同意进行下载,如下图:
根据自身情况进行如下的勾选下载,博主采取如下方式,如下图:
1)Restrict Npcap driver's access to Administrators only:仅管理员用户可以调用Npcap,一般不勾选
2)Support raw 802.11 traffic (and monitor mode) for wireless adapters:开启无线802.11报文的支持(含监控模式)
3)Install Npcap in WinPcap API-compatible Mode:兼容WinPcap模式,可勾选
下载完成点击Next,Finish即可,至此安装完成 ,如下图:
USBPcap安装步骤
两次勾选我同意协议的勾选框,然后点击Next,如下图:
默认点击Next即可,如下图:
自定义安装目录,推荐D盘,然后点击Install即可,如下图:
下载完成点击Close即可,如下图:
Wireshark使用入门
Wireshark是使用最广泛的一款「开源抓包软件」,常用来检测网络问题、攻击溯源、或者分析底层通信机制。它使用WinPCAP作为接口,直接与网卡进行数据报文交换。
Wireshark使用的环境大致分为两种,一种是电脑直连互联网的单机环境,另外一种就是应用比较多的互联网环境,也就是连接交换机的情况。其抓包原理如下:
单机情况下:Wireshark直接抓取本机网卡的网络流量。
交换机情况下:Wireshark通过端口镜像、ARP欺骗等方式获取局域网中的网络流量。
端口镜像:利用交换机的接口,将局域网的网络流量转发到指定电脑的网卡上。
ARP欺骗:交换机根据MAC地址转发数据,伪装其他终端的MAC地址,从而获取局域网的网络流量。
接下来开始正式对Wireshark工具进行使用介绍:
选择网卡:当我们打开Wireshark后就会进入到欢迎界面也称网卡选择界面,如下图有很多的网络连接,这里大多数的连接我们基本都用不到,那么我们到底应该点哪个网络连接呢?要去抓哪个网络连接的包呢?继续往下看
键盘win+r键输入cmd回车打开终端,终端输入 ipconfig 获取有关计算机当前网络连接的各种详细信息,包括 IP 地址、子网掩码、默认网关、DNS 服务器等。可以看到当前博主电脑采用的是无线局域网连接(WLANl连接),博主电脑的所有数据都会经过这个网络。
找到电脑的网络连接(WLAN连接)之后, 抓一下这个网卡的流量,双击网卡名,自动开始抓包:
如下可以看到我们已经开始自动抓包了,点击左上角的红色方块可以停止抓包:
界面介绍:以下是对wireshark界面的初步介绍:
Wireshark 的主界面包含6个部分:
1)菜单栏:用于调试、配置
2)工具栏:常用功能的快捷方式
3)过滤栏:指定过滤条件,过滤数据包
4)数据包列表:核心区域,每一行就是一个数据包
5)数据包详情:数据包的详细数据
6)数据包字节:数据包对应的字节流,二进制
基础操作:以下是wireshark常用的基础操作:
设置显示列:数据包列表是最常用的模块之一,列表中有一些默认显示的列,我们可以添加、删除、修改显示的列。
设置时间:数据包列表栏的时间这一列,默认显示格式看起来很不方便,我们可以调整时间的显示格式。
标记数据包:对于某些比较重要的数据包,可以设置成高亮显示,以达到标记的目的。
选中数据包,按 Ctrl + M 也可以实现同样的效果,按两次可以取消标记。
导出数据包:保存操作默认保存所有已经抓取的数据包。但有时候,我们只需要保存指定的数据包,这时候可以使用导出的功能。
在「导出分组界面」,选择第二个 「Selected packets only」,只保存选中的数据包。
有时候我们需要导出多个数据包,Wireshark有一个导出标记的数据包的功能,我们将需要导出的数据包都标记起来,就可以同时导出多个数据包。
在「导出分组界面」,勾选第三个 「Marked packets only」,只导出标记的数据包。
切换模式:以下是wireshark切换模式的操作:
混杂模式:混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。
普通模式:普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。如下是开启混杂模式的步骤:
点击菜单栏中的捕获按钮,点击选择:
如下有一个开启混杂模式的勾选,勾选之后,不管电脑接收到的是正确的还是错误的数据,基本上所有经过我电脑网卡的数据包都能被抓到,因为它不会去校验接收的mac地址是否合法,方便网络安全人员在做信息排查的时候的一个重要选项,对于一般网络安全人员博主建议开启混杂模式,因为我们要排查是否有非法的黑客进入进来。
勾选去掉的话就是采用普通模式,电脑只接受正确发送到网卡的数据,其他的包统统丢掉:
Wireshark过滤器使用
初学者使用wireshark时,将会得到大量的冗余数据包列表,以至于很难找到自己需要抓取的数据包部分。wireshark工具中自带了两种类型的过滤器,学会使用这两种过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。
过滤器是Wireshark的核心功能,也是我们平时使用最多的一个功能。Wireshark提供了两个过滤器:抓包过滤器 和 显示过滤器。两个过滤器的过滤思路不同。
1)抓包过滤器:重点在动作,需要的包我才抓,不需要的我就不抓。
2)显示过滤器:重点在数据的展示,包已经抓了,只是不显示出来。
在学习过滤器之前我们需要先掌握tcp三次握手的原理:
TCP 三次握手是建立 TCP 连接时使用的一种协议,用于确保通信双方能够正常交换数据。下面是 TCP 三次握手的流程:
第一步:客户端向服务端发送连接请求(SYN)
客户端(Client)首先向服务端(Server)发送一个带有 SYN(同步序列编号)标志的数据包,表示客户端想要建立连接,并选择一个初始的序列号(Sequence Number)。
第二步:服务端收到连接请求并回复(SYN + ACK)
服务端收到客户端发送的 SYN 数据包后,会回复一个带有 SYN 和 ACK 标志的数据包,表示服务端已经接受了客户端的连接请求,并选择自己的初始序列号,同时确认客户端的序列号。
第三步:客户端收到服务端的回复并发送确认(ACK)
最后,客户端再次向服务端发送一个带有 ACK 标志的数据包,表示客户端也确认了服务端的序列号。
完成了以上三个步骤,TCP 连接就建立起来了,通信双方可以开始正常地进行数据传输。
总的来说,TCP 三次握手协议确保了通信双方都能够正确地同步序列号,并确认彼此的能力和意愿进行数据传输,从而建立起可靠的连接。以下是具体流程图的实现:
抓包过滤器:使用抓包过滤器时,需要先停止抓包,设置完过滤规则后,再开始抓包。停止抓包的前提下,点击工具栏的捕获按钮,点击选项。在弹出的捕获选项界面,最下方的输入框中输入过滤语句,点击开始即可抓包。
抓包过滤器在抓包前使用,它的过滤有一个基本的语法格式,如下:
四个核心元素:类型、方向、协议 和 逻辑运算符。
1)类型Type:主机(host)、网段(net)、端口(port)
2)方向Dir:源地址(src)、目标地址(dst)
3)协议Proto:各种网络协议,比如:tcp、udp、http
4)逻辑运算符:与( && )、或( || )、非( !)
四个元素可以自由组合,比如:
src host 192.168.31.1:抓取源IP为 192.168.31.1 的数据包
tcp || udp:抓取 TCP 或者 UDP 协议的数据包
注意:抓包过滤器的输入框,会自动检测语法,绿色代表语法正确,红色代表语法错误。
对于抓包过滤器的使用,我们只需点击捕获中的选项按钮,最下方的输入框中输入过滤语句,点击开始即可抓包。
显示过滤器: 显示过滤器在抓包后或者抓包的过程中使用。
显示过滤器在抓包前使用,它的过滤有一个基本的语法格式,如下:
五个核心元素:IP、端口、协议、比较运算符和逻辑运算符。
1)IP地址:ip.addr、ip.src、ip.dst
2)端口:tcp.port、tcp.srcport、tcp.dstport
3)协议:tcp、udp、http
4)比较运算符:> < == >= <= !=
5)逻辑运算符:and、or、not、xor(有且仅有一个条件被满足)
五个核心元素可以自由组合,比如:
ip.addr == 192.168.32.121:显示IP地址为 192.168.32.121 的数据包
tcp.port == 80 :显示端口为 80 的数据包
注意:过滤栏有自动纠错功能,绿色表示语法正确,红色表示语法错误。
接下来我们通过wireshark来筛选tcp第一次握手,客户端向服务端发送连接请求的数据,在过滤栏输入过滤语句,修改后立即生效。
当然我们也可以通过如下命令过滤来判断哪些已经完成了三次握手,在TCP协议中,当一个端口要求关闭连接时,它会发送一个带有FIN标志的数据包来表示其关闭连接请求。通过在Wireshark中使用 tcp.flags.fin == 1 这个过滤器,可以只显示具有FIN标志的TCP数据包,从而方便用户分析和观察TCP连接的关闭情况。
当然我们也可以过滤出源 IP 地址或目标 IP 地址为 192.168.31.8 的数据包,通过在Wireshark中使用这个过滤器,可以只显示源 IP 地址或目标 IP 地址为 192.168.31.8 的数据包,从而方便用户针对特定主机进行网络流量分析和监控。