Syn Flood攻击是利用TCP/IP协议的什么漏洞
在社会发展不断提速的今天,协议与我们的生活息息相关,签订协议后则有法可依,有据可寻。那么协议怎么写才能发挥它最大的作用呢?以下是为大家整理的Syn Flood攻击是利用TCP/IP协议的什么漏洞,希望对大家有所帮助。
答:客户端通过发送在TCP报头中SYN标志置位的数据分段到服务端来请求建立连接。通常情况下,服务端会按照IP报头中的来源地址来返回SYN/ACK置位的数据包给客户端,客户端再返回ACK到服务端来完成一个完整的连接(Figure-1)。
在攻击发生时,客户端的来源IP地址是经过伪造的(spoofed),现行的IP路由机制仅检查目的IP地址并进行转发,该IP包到达目的主机后返回路径无法通过路由达到的,于是目的主机无法通过TCP三次握手建立连接。在此期间因为TCP缓存队列已经填满,而拒绝新的连接请求。目的主机一直尝试直至超时(大约75秒)。这就是该攻击类型的基本机制。
发动攻击的主机只要发送较少的,来源地址经过伪装而且无法通过路由达到的SYN连接请求至目标主机提供TCP服务的端口,将目的主机的TCP缓存队列填满,就可以实施一次成功的攻击。实际情况下,发动攻击时往往是持续且高速的。
SYN Flood攻击
1、攻击原理
SYN Flood是拒绝服务攻击的一种,所谓拒绝服务攻击,即想办法让目标机器停止提供服务
这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式
如果一个计算机系统崩溃或其带宽耗尽或其硬盘被填满,导致其不能提供正常的服务,就构成拒绝服务
TCP的三次握手
由客户端向服务器发送一个包含SYN标志的数据包,表明请求与服务器进行通信,此时同服务器建立了第一次握手
服务器会返回一个SYN+ACK的报文,表示客户端的请求被接受,此时同服务器建立了第二次握手
最后客户端在发送一个确认报文ACK,此时同服务器建立了第三次握手,TCP连接成功
如果发生了SYN Flood攻击,攻击者会在短时间内伪造并不存在的IP地址,向服务器不断的`发送SYN包,并且建立第一次握手,服务器则会回复ACK确认报文,建立第二次握手,在进行第三次握手时,服务器等待攻击者的确认,但此时攻击者并不会回复,服务器就会不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,其他客户的正常的SYN请求不能被接收,目标系统运行缓慢,造成网络拥堵。
2、SYN Flood攻击简单示例
同一局域网下
攻击者:Kali Linux IP:192.168.220.136
被攻击者:Windows XP IP:192.168.220.142
1)查看两虚拟机的IP地址,判断是否在同一网段下
Kali Linux:ifconfig
Windows XP:ipconfig
2)测试连通性(用ping指令)
3)在Windows XP上打开任务管理器——性能(监控CPU的利用率)
4)开始SYN Flood攻击
Kali Linux:hping3 -q -n -a 伪造源IP地址 -S -s 53 --keep -p 445 --flood 目标IP地址
5)查看结果
查看Windows XP 的任务管理器,发现在被攻击的同时,很快Windows XP的性能使用率就已达到100%(居高不下)
表明攻击成功
6)wireshark抓包观察
可以发现有大量的源地址为伪造地址(1.1.1.1)的TCP包
目的主机处理不过来,以致于资源逐步被耗尽,最终导致系统崩溃。
转载请注明出处学习一生 » Syn Flood攻击是利用TCP/IP协议的什么漏洞