当前位置:文档之家› 网络抓包协议分析

网络抓包协议分析

网络抓包协议分析

1 设计要求

1)下载并安装wireshark软件,熟悉wireshark,特别是抓包过滤器的使用方法。

2)抓包分析TCP三次握手报文。

2 设计任务

1)给出你安装的wireshark安装版本及其安装环境如操作系统(WIN/MAC)等。

2)抓包你的计算机访问主页的协议报文(注意:TCP 处理的基本单元是TCP报文、或TCP报文段,或TCP segment(分段),这些都是合适的称谓。)。

3)分析上述访问的TCP三次握手报文的主要协议参数取值情况,包括源、目的IP地址,源、目的端口,SYN、ACK标志,SN(发送序号)和AN(Acknowledge Number,确认序号),窗口值WIN,LEN等,并配合三次握手报文的抓包截图按第一次到第三次握手报文分别加以说明(注意:与SYN标志一样,ACK标志是1bit,Acknowledge Number(AN)是32bit,两者是完全不同的协议字段。后者往往也简写成ACK或Ack,特别注意上下文实际表达的实际含义。抓包软件中,一般全大写的ACK是标志位,即要么0要么1;而首字母大写的Ack是AN,即确认序号)。

4)指出上述访问的TCP三次握手中你的计算机发送的第一个报文(即第一次握手报文)的序号(也称ISN--Initial SN)是多少,是否总是为0?每次新的TCP三次握手SN的初始序号ISN是否与上一次TCP三次握手报文SN的初始序号ISN相同。请配合抓包截图加以说明。TCP三次握手后的后续所有的TCP报文(除TCP拆除连接报文)中其ACK标志是否总是标记为1?

5)说明TCP SYN 攻击的原理。

3 设计内容

3.1 Wireshark安装

安装环境:Windows 10专业版○C 2018 Microsoft Corporation.

Wireshake版本:Version 2.2.1(v2.2.1-0-ga6fbd27 from master-2.2).

3.2 抓取报文

(1)、打开Wireshake软件,选中当前正在使用的网络连接,启动抓包。

如下图:

打开浏览器,访问清华官网( ),网站响应后关闭抓包。注意:为了分析方便,浏览器中只打开清华官网一个网页,防止抓取到包的数量过多,妨碍分析。

(2)、访问清华官网属于http的GET请求,返回的网页网址为

/publish/thu2018/index.html。因此在过滤窗口中输入http进行过滤,找到相应的包。如下:

访问清华官网http协议数据包的编号为77。

返回完整的抓包界面,找到编号为77的报文。

从图中可以发现该报文前有本次连接的三次握手的数据包,说明http请求是建立在TCP连接上的。

3.3 分析三次握手

(1)、第一次握手

主机A(192.168.1.102)的59351端口请求与主机B(166.111.4.100)的80端口建立传输连接。此请求连接建立报文将TCP首部中的SYN位置1,ACK置0,发送的报文序号Seq为x=0.如图:

(2)、第二次握手

主机B(166.111.4.100)的TCP实体收到A(192.168.1.102)的连接请求后,发回连接确认信号。在报文中将TCP首部中的SYN置为1,ACK置为1,确认序号Ack为x+1 = 1,同时也为自己选择一个发送序号Seq为y=0.

(3)、第三次握手

主机A(192.168.1.102)的TCP实体收到确认的报文后,还要向B(166.111.4.100)给出确认。确认报文的ACK置1,确认序号Ack为y+1=1,连接建立。

3.4 三次握手的相关问题

(1)、指出上述访问的TCP三次握手中你的计算机发送的第一个报文(即第一次握手报文)的序号(也称ISN--Initial SN)是多少,是否总是为0?

如图所示,TCP三次握手中第一次握手的报文序号为8002H,并不总为0。

(2)、每次新的TCP三次握手SN的初始序号ISN是否与上一次TCP三次握手报文SN的初始序号ISN相同?

访问清华官网,重新抓包。

查看ISN

发现与前一次抓包的的ISN相同。

为了防止偶然因素,再此访问抓包,发现ISN仍然是8020H.

查资料发现,客户端和服务端双方在建立tcp连接时就开始初始化序列号,这个序号的范围是0 — 231−1 2^{31} - 12 31 −1之间,而且序号的生成也是随机的,通常是一个很大的数值,也就是说每个tcp连接使用的序号也是不一样的。

几次抓包都获取都获取到相同的ISN,可能是由于浏览器的数据缓存。

(3)、TCP三次握手后的后续所有的TCP报文(除TCP拆除连接报文)中其ACK 标志是否总是标记为1?

由上图可知在三次握手建立当前连接后,本次连接后续的所有报文ACK总为1.

3.4 TCP SYN 攻击原理

TCP连接建立,传输数据。

结合上图来说明SYN攻击。SYN攻击发生在TCP连接的第二个阶段,服务器确认客户端同步信息(SYN),用32位确认号(ACK)确认SYN信息。

可以提出这样一个假设,客户端(client)给服务器发syn之后就不存在了,那么第二次握手失败,服务器会根据预先设置的超时时间继续做第二次握手,时间可以假设如下:

第一轮第二次握手等待5s,过了五秒等不到客户端的第三次握手则继续第二轮第二次握手等待15s,依次迭代,直到等待时间超过某个阈值。(注:此处5s,15s均为假设值)。服务器不断的在进行第二次握手,消耗系统资源。

知道了SYN攻击的原理,那么如何进行SYN攻击?我们可以不断的发送TCP 连接请求,同时把自己隐藏好,不让服务器发现。可以伪造IP,服务器根据IP 来寻找客户端,由于IP是伪造的,所以TCP第二次握手会失败。伪造大量的IP 可以大幅度消耗系统资源。从技术的角度上说,我们可以利用原始套接字伪造大量IP,从而构造大量数据包,利用原始套接字构造IP数据与服务器进行第一次握手,服务器忙于在处理队列中的连接,从而消耗系统资源。

(1)、为什么学校的教务网站在使用高峰期会出现响应能力的问题?你有何解决建议?

学校的教务网站在使用高峰期(如选课期间)会有大量的IP同时访问服务器,发出TCP连接请求,而由于服务器的带宽和运算能力有限,无法同时响应所有的TCP连接请求,因此不能及时响应的TCP请求只能不断等待服务器空闲,然后才响应该TCP请求。同时,由于用户网页无法及时响应而导致用户不断刷新网页,又产生新的TCP连接请求,而之前的请求确依然在等待。

解决方法:可以采用负载均衡的方法,做链路负载和服务器负载,平衡网络流量,减少个别服务器和网络的负载压力,从而提高网页访问速度和系统稳定性。采用在高峰期分流的方法来减小服务器的访问量,比如让不同的年级在不同的时间进行选课。

(2)、使用HTTP协议访问网站时,在URL的最后跟随的?后的参数有何作用?

?用于分隔url和传输的数据。通过该方法,可实现两个url之间的数据交互,web服务器解析url时同时获得解析该url所需要的参数。

相关主题