type
status
date
slug
summary
tags
category
icon
password
概述
Wireshark是一种开源的网络协议分析工具,用于捕获和分析网络通信中的数据包。它能够实时监控和解析网络中的各种协议,帮助用户深入了解网络流量的细节,排查网络故障、进行网络安全分析或调试应用程序。
主要功能包括:
- 数据包捕获:捕获通过网络接口的所有数据包,并以人类可读的方式显示。
- 协议解析:支持数百种网络协议的解析,包括 TCP/IP、HTTP、DNS、SSL/TLS 等。
- 数据过滤:可以设置捕获或显示过滤器,精确定位特定的流量或数据包。
- 实时监控和分析:能够实时查看网络流量,也可以保存捕获的数据供以后分析。
- 图形化界面:提供易于使用的图形界面,方便可视化查看和分析网络流量。
wireshark可以通过过滤器可以筛选出想要分析的内容。包括按照协议过滤、端口和主机名过滤、数据包内容过滤。
常见协议
- ARP协议ARP(Address Resolution Protocol,地址解析协议)是一种用于在IP网络中解析网络层地址(IP 地址)到链路层地址(MAC 地址)的协议。
- ICMP协议ICMP(互联网控制消息协议)是用来在网络设备之间发送控制消息的协议,主要用于诊断和报告网络错误。最常见的应用就是 ping 命令,它通过ICMP发送请求,检测目标设备是否在线以及网络延迟如何。如果网络出错,ICMP会反馈错误信息,但它不传输实际数据。
- TCP协议TCP(传输控制协议)是一种可靠的、面向连接的通信协议,确保数据在网络上完整无误地传输。它通过三次握手建立连接,并对传输的数据包进行编号和确认,确保接收方按顺序收到数据。如果有丢包或错误,TCP会自动重传。常用于网页浏览、文件传输等需要高可靠性的网络应用。
- UDP协议UDP(用户数据报协议)是一种简单、快速的通信协议,它不建立连接,也不保证数据的可靠传输或顺序。UDP直接将数据包发送给目标,不会确认是否收到,因此它更快但不可靠。常用于实时应用,如视频直播、在线游戏、语音通话等,数据丢失几率较小且速度更重要的场景。
- DNS协议DNS(域名系统协议)是用来将域名转换为IP地址的协议,因为计算机通过IP地址通信,而人类更习惯使用域名。DNS相当于互联网的“电话簿”,当你在浏览器中输入域名时,DNS会帮助找到相应的服务器IP,从而建立连接。
- HTTP协议HTTP(超文本传输协议)是用于在网络上传输网页数据的协议,浏览器和服务器通过它交换信息。它是无状态的、面向请求-响应的协议,客户端(通常是浏览器)发送请求,服务器响应请求并返回网页、图片或视频等内容。HTTP常用于网页浏览(如输入网址加载网页),它的更安全版本是HTTPS,增加了加密保护数据传输的安全性。
下载及安装
Kali Linux系统自带 Wireshark 工具,而windows 需要手动安装wireshark。
下载完之后一直点下一步安装即可。
Wireshark 界面
- 通过
ipconfig
查询
- 选择相应的网卡双击点进入,就可以看到很多的数据包
界面主要分为以下几部分:
- 菜单栏:Wireshark的标准菜单栏。
- 工具栏:常用功能的快捷图标按钮,提供快速访问菜单中经常用到的项目的功能。
- 过滤器:提供处理当前显示过滤得方法。
- Packet List面板:显示每个数据帧的摘要。这里采用表格的形式列出了当前捕获文件中的所有数据包,其中包括了数据包序号、数据包捕获的相对时间、数据包的源地址和目标地址、数据包的协议以及在数据包中找到的概况信息等。
- Packet Details面板:分析数据包的详细信息。这个面板分层次地显示了一个数据包中的内容,并且可以通过展开或是收缩来显示这个数据包中所捕获的全部内容。
- Packet Bytes面板:以十六进制和ASCII码的形式显示数据包的内容。这里显 示了一个数据包未经处理的原始样子,也就是在链路上传播时的样子。
- 状态栏:包含有专家信息、注释、包的数量和Profile。
在数据包列表中选择指定数据包,在数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息面板是最重要的,用来查看协议中的每一个字段。各行信息分别为(1)Frame: 物理层的数据帧概况(2)Ethernet II: 数据链路层以太网帧头部信息(3)Internet Protocol Version 4: 互联网层IP包头部信息(4)…………
过滤器的使用
协议过滤
点击左上角这个按钮
想抓http相关的包-------> 直接输入http或者tcp
当输入
tcp.flags.ack == 0
即代表底层握手(链接成功)当输入
tcp.flags.syn == 1
即代表底层握手(数据发送成功)所抓到也都是底层链接成功和发送成功的包。
当然 命令和命令之间也可以通过and 或者or来完成与或非的关系。
之前所讲到的所有协议包 都可以在这里过滤,比如 udp,http,tcp 等等等
IP过滤
搜下我们本地发送了那些包
ip.src_host==192.168.2.51
可以清楚的看到source来源就都是我们的主机了
搜下目标地址是百度的包 百度的IP地址是180.101.50.188
ip.dst_host == 180.101.50.188
还有一个命令 ip.addr 代表着 只有IP是xxx 就全部显现出来,不管是接收 还是发送
wireshark解析ARP协议
我们先来抓下arp的包 ,直接在过滤器中搜索ARP,并且随意打开一个包
- Hardware type(网卡类型):以太网(Ethernet)是1。我们常见的网络都是以太网
- Protocol type:查询中提供的网络地址的类型,IPv4是0x0800。
- Harware size:网卡地址长度,以太网网卡是6字节。
- Protocol size:查询中提供的网络地址的的长度,IPv4是4字节。
- Opcode:查询包值为1,响应包值为2。
- Sender MAC address:发送者的Mac地址。
- Sender IP address:发送者的IP地址。
- Target MAC address:接收者的Mac地址,指向性查询包是MAC地址表中记录的mac,广播性查询包是00:00:00:00:00:00。(注意区分ARP头和Eth头,指向性查询包Eth头的dst mac是MAC地址表中记录的mac,而广播性查询包是ff:ff:ff:ff:ff:ff)
- Target protocol address:要查询目标的mac地址的ip。
再来看一下回复包
由一个request 和一个reply 组成的一组arp包,有请求有回复组成的arp响应。
WireShark解析ICMP协议
使用Ping命令用来测试网络的可达性。从而接受ICMP的报文包
首先我们ping下自己的网关
然后找下wireshark中刚刚抓到的包
重点看下ICMP里面的内容
type:报文类型,8代表请求,0代表应答;
code:为0,表示为回显应答成功;
checksum:表示认证这个ICMP报文是否被篡改过。校验完整性。
checksum Status: 表示校验的结果,Good代表没问题。
identifier:表示标识符ID
Sequence Number: 表示序列号
Data: 具体发送到数据包,当然肯定是通过加密的。
这是请求数据,还有一组回复数据
可以看到。标示符和序列号都是一样的
wireshark 解析TCP协议
即两台电脑或者是两台机器之间的相互链接>>>中间会经历一个三次握手 四次挥手的过程。
TCP 三次握手
我们随意打开一个网页:百度 IP是180.101.50.188
如上图所示 有syn的tcp链接包
然后我们来看下TCP协议的具体的内容
封包信息:
- Frame: 物理层的数据帧概况
- Ethernet II: 数据链路层以太网帧头部信息
- Internet Protocol Version 4: 网络层IP包头部信息
- Transmission Control Protocol: 传输层TCP数据段头部信息
传输层TCP数据段信息
- 源端口:source Port: 44922
- 目的端口:Destination Port: 19999
- 序号:sequence Number: o
- 确认号:Acknowledgment number: o
- 报头长度:Header Length: 4o bytes
- 标志位:Flags: ox002 (SYN)
- 校验和:Checksum: oxac81
当然这么看肯定不太直观,还要结合这回复包去看每一条信息。所以我们可以打开流数据包来查看tcp协议报文
选择限制显示过滤器 选择百度的地址
TCP断开链接 四次挥手
既然有链接,肯定就有断开链接 天下无不散之筵席嘛,不可能一直互相连接的。
而断开链接则有另一个名词—— 四次挥手
和三次握手一样,我们直接关闭百度这个网站,
然后去wireshark中搜索180.101.50.242这个ip(由于百度的地址会改变,我们需要实时查看下百度的ip)
首先就会发起
第一步:客户端打算断开连接
第二步:服务器收到连接释放报文段(FIN报文)后,就向客户端发送ACK应答报文
第三步:服务器也打算断开连接,向客户端发送连接释放(FIN)报文段
第四步:客户端收到来自服务器的连接释放(FIN)报文段后,会向服务器发送一个ACK应答报文段,以连接释放(FIN)报文段的确认序号 ack 作为ACK应答报文段的序列号 seq,以连接释放(FIN)报文段的序列号 seq+1作为确认序号ack。
wireShark 解析HTTP协议
http的底层本质上还是TCP协议。
话不多说,直接请求百度地址。
这里百度地址不是www.baidu地址
然后打开抓包软件 搜索tcp
还可以查看具体信息
总结
总的来说,WireShark非常强大,不仅可以抓各种包,还能对局域网的某些数据进行监控抓包分析。非常强大。
- Author:Gweek
- URL:https://www.myla.eu.org/article/wireshark-use
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!