学习用wireshark进行抓包分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zgj289563749/article/details/20032763

  首先,运行wireshark,打开capture interface选择有数据的网卡,点击start便开始进行抓包。我们可以在options里面对包进行过滤。

  

首先,在确保我个人电脑没有arp攻击的情况下。关闭所有可能会请求网络的文件。在点击start后在IE浏览器里面访问www.google.com.hk后抓到如下数据包。

 

  现在我们开始对抓到的包进行分析。

 

为所选取的包的结构。结构的显示是完全按照OSI的七层模型来显示的。从上至下分别是物理层,以太网层,IP层,第3层对应的内容,应用层。

 

为包结构的2进制表示。

现在,我们对抓到的包进行具体分析。

 

起始的3DNS包即对www.google.com.hk进行翻译。把它译为域名所对应的IP。这里,我电脑由于连接了路由器。地址为192.168.1.103。由这个地址向DNS服务器发送请求以返回www.google.com.hk的地址66.249.89.99

然后 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

 

第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

 第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

 第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

 

由我向服务器发送请求,服务器分析请求后,返回确认收到,我确认服务器的返回信息后,服务器开始发送我请求的数据。如下图

 

 

 

 

这些包都是服务器在向我传送数据,包括PNG,TEXT等文件。

其中的[TCP segment of a reassembled PDU]的意义是:主机响应一个查询或者命令时如果要回应很多数据(信息)而这些数据超出了TCP的最大MSS时,主机会通过发送多个数据包来传送这些数据(注意:这些包并未被分片)。对wireshark来说这些对相应同一个查询命令的数据包被标记了“TCP segment of a reassembled PDU”。wireshark根据sequence number识别多个数据包是对同一个查询数据包的响应,这些数据包ACK number是相同的,当然number的数值与查询数据包中的next sequence number也是一样的。

 

上图为抓到的最后几个包。

TCP的终止通过双方的四次握手实现。发起终止的一方执行主动关闭,响应的另一方执行被动关闭。

1. 发起方(client)更改状态为FIN_WAIT_1,关闭应用程序进程,发出一个TCP的FIN段;
2. 接收方收到FIN段,返回一个带确认序号的ACK,同时向自己对应的进程发送一个文件结束符EOF,同时更改状态为CLOSE_WAIT(server),发起方接到ACK后状态更改为FIN_WAIT_2(client);
3. 接收方关闭应用程序进程,更改状态为LAST_ACK(server),并向对方发出一个TCP的FIN段;
4. 发起方接到FIN后状态更改为TIME_WAIT(client),并发出这个FIN的ACK确认。ACK发送成功后(2MSL内)双方TCP状态变为CLOSED。

我们不难看出上面的显示的结果的意思。根据TCP协议,主动发起关闭的一方,会进入TIME_WAIT状态(TCP实现必须可靠地终止连接的两个方向(全双工关闭)),持续2*MSL(Max Segment Lifetime),缺省为240秒.

第一次挥手:客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送;
第二次挥手:服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号;
第三次挥手:服务器B关闭与客户端A的连接,发送一个FIN给客户端A;
第四次挥手:客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

但由收到的包发现并没有产生4次挥手。而出现的是如下的包

 

这可能是由于在发送完数据前我过早的关闭了浏览器。

现在任意的以一个包的结构为例对包结构进行分析。在这儿我选了如下一个DNS包。

 

 

现在对包的结构的各个部分分别分析。

第一行。结构2,发送77字节的报文,抓到77字节的报文。具体内容如下

 

 

 分别说明了,包的到达时间,抓取间隔时间,包的标号,包的大小,是否标记、忽略等。

接下来

 

以太网层。分别告知目的地和来源。这儿可以看出,destination为路由器分配的地址,source对应的address则为gemtekte_38:cb:1c

对于IP


vision4表示结构为4

报头长为20字节

无网络分区服务

标志位为0

采用UDP协议

报头检查正确。

 

用户的数据协议,从端口64455到区域端口53

Checksum0x4045表示确认失败

 

区域名系统(疑问)

Response in3表示在frame 3中响应。交换地址的16进制表示为0xf823

对于标志flags,对应英文理解就是了,这儿不做衍叙。

其它的包可以按照相同方法进行分析。

展开阅读全文

没有更多推荐了,返回首页