一、Wireshark简介
二、安装与使用
三、抓包分析
1.初次抓包
2.捕获选项设置
3.ARP协议抓包分析
4.IP协议抓包分析
5.TCP协议抓包分析
6.UDP协议抓包分析
7.ICMP协议抓包分析
参考文献
一、Wireshark简介
Wireshark是一款世界范围最广、最好用的网络封包分析软件,功能强大,界面友好直观,操作起来非常方便。它的创始人是Gerald Combs,前身是Ethereal,作为开源项目经过众多开发者的完善它已经成为使用量最大的安全工具之一。在CTF中也经常会使用wireshark进行流量数据包分析,可以快速检测网络通讯数据,获取最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。用户将在图形界面中浏览这些数据,实时监控TCP、session等网络动态,轻松完成网络管理工作。
二、安装与使用
安装包可以去官网 下载,按照相应指示安装即可,也可参见其他安装教程安装即可;打开软件如下所示:
三、抓包分析
1.初次抓包
双击所需网关即可进行抓包;
上图中所显示的信息从上到下分布在 3 个面板中,每个面板包含的信息含义如下:
Packet List 面板:上面部分,显示 Wireshark 捕获到的所有数据包,这些数据包从 1 进行顺序编号。
Packet Details 面板:中间部分,显示一个数据包的详细内容信息,并且以层次结构进行显示。这些层次结构默认是折叠起来的,用户可以展开查看详细的内容信息。
Packet Bytes 面板:下面部分,显示一个数据包未经处理的原始样子,数据是以十六进制和 ASCII 格式进行显示。
在Packet Details面板中:
Frame:物理层的数据帧概况。
Ethernet II:数据链路层以太网帧头部信息。
Internet Protocol Version 4:互联网层IP包头部信息。
Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。
2.捕获选项设置
点击 捕获-->选项,取消勾选“在所有接口上使用混杂模式”,选择自己需要的网卡,例如WLAN,点击确定即可;进行此步骤的操作是为了方便后面的抓包分析,排除干扰项,此步骤可以根据自己需要选择做或者不做
3.ARP协议抓包分析
ARP (Address Resolution Protocol)协议,即地址解析协议。该协议的功能就是将IP地址解析成MAC地址。
首先在Wireshark中进行过滤器arp筛选;
然后在cmd中,使用ping命令,ping一个ip地址,建议ping同一局域网下的ip ,这里就ping www.douyin.com ,如下:
Wireshark中arp协议的解析:
4.IP协议抓包分析
互联网协议IP是Internet Protocol的缩写,中文缩写为“网协”。IP协议是位于OSI模型中第三层的协议,其主要目的就是使得网络间能够互联通信。前面介绍了ARP协议,该协议用在第二层处理单一网络中的通信。与其类似,第三层则负责跨网络通信的地址。在这层上工作的不止一个协议,但是最普遍的就是互联网协议(IP)。
首先在Wireshark中启动抓包;捕获IP协议包的方法有多种,打开一个网页,或者使用ping命令,这里依旧ping www.douyin.com 如下所示:
在Wireshark中已经捕获到了很多包,我们使用过滤器输入ip.addr == 112.19.197.277 进行筛选即可;
ip协议抓包分析
其中Internet Control Message Protocol 表示ICMP协议包信息。
5.TCP协议抓包分析
TCP (Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于P的传输层协议。它的主要目的是为数据提供可靠的端到端传输。TCP在RFC793中定义,在OSI模型中的第四层工作。它能够处理数据的顺序和错误恢复,并且最终保证数据能够到达其应到达的地方。但是,该协议的过程比较复杂。
TCP是面向连接的通信协议。在通信过程中,通过三次握手建立连接。通信结束后,还需要断开连接。如果在发送数据包时,没有被正确发送到目的地,将会重新发送数据包。
TCP三次握手
1.第一次握手
第一次握手建立连接时,客户端向服务器发送SYN报文(Seq=x,SYN=1),并进入SYN_SENT状态,等待服务器确认。
2.第二次握手
第二次握手实际上是分两部分来完成的,即SYN+ACK(请求和确认)报文。
(1)服务器收到了客户端的请求,向客户端回复一个确认信息(Ack=x+1)。
(2)服务器再向客户端发送一个SYN包(Seq=y)建立连接的请求,此时服务器进入SYN_RECV状态。
3.第三次握手
第三次握手客户端收到服务器的回复(SYN+ACK报文)。此时,客户端也要向服务器发送确认包(ACK)。此包发送完毕客户端和服务器进入ESTABLISHED 状态,完成三次握手。此时就可以进行数据传输了。
TCP四次挥手
进行抓包,首先启动Wireshark,如果此时没捕获到任何数据包,可以在浏览器上访问一个网站页面。如进入百度首页,点击新闻,打开页面,然后再关闭页面。Wireshark中此时会得到很多数据,利用过滤器输入http过滤。
选中一个http记录,右键—>追踪—>tcp流,即可看到一个完整的tcp三次握手。
完整的TCP三次握手如下:
TCP协议抓包包分析:
第二次与第三次握手字段与第一次基本相同,主要是Ack与Seq的值
TCP的四次挥手与三次握手分析过程进本相同,可以通过过滤器tcp.flags.fin==1寻找挥手数据包如下:
查看端口号有来有回的数据包,之后通过过滤器tcp.port==50788筛选出完整的四次挥手过程。
6.UDP协议抓包分析
UDP是User Datagram Protocol (用户数据报协议)的简称。它是OSI七层模型中一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务。
UDP协议就是一种无连接的协议。该协议用来支撑那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多客户/服务器模式的网络应用。
UDP协议的主要作用就是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8字节用来包含包头信息,剩余字节则用来包含具体的传输数据。
进行抓包,启动Wireshark,登录qq程序,或者其他方法都可以可以捕获到许多UDP包,通过过滤器输入udp进行过滤即可,分析如下:
7.ICMP协议抓包分析
ICMP (Internet Control Message Protocol,网际报文控制协议)是Internet 协议族的核心协议之一,它主要用在网络计算机的操作系统中发送出错信息。例如,提示请求的服务不可用、主机或者路由不可达。ICMP协议依靠IP协议来完成其任务,通常也是P协议的一个集成部分。ICMP协议和TCP或UDP协议的目的不同,它一般不用来在端系统之间传送数据。它通常不被用户网络程序直接使用,或者是像Ping 和 tracert这样的诊断程序。
进行抓包,启动Wireshark,通过cmd命令ping一个ip,如ping www.douyin.com。
回到Wireshark中利用过滤器输入icmp进行筛选即可,分析如下:
参考文献
Wireshark数据包分析实战详解