一、TCP拒绝服务攻击简述
拒绝服务(DoS)攻击即是攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为网络协议本身的安全缺陷,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把非法用户的连接复位,影响合法用户的连接。
TCP拒绝服务攻击,即利用TCP服务进行的拒绝服务攻击。
二、TCP拒绝服务攻击原理
正常情况下,TCP连接的建立需要经过三次握手的过程,即:
1:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
SYN:同步序列编号(Synchronize Sequence Numbers)
2.:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态,等待发起者的回应。
3:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.
TCP拒绝服务攻击流程
那么这个过程就有点漏洞了,如果建立者是个恶意用户,前两次握手正常进行,但在第三次握手的时候没有回应服务器,服务器这个连接就一直处于等待状态了。具体过程如下
1:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
SYN:同步序列编号(Synchronize Sequence Numbers)
2.:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态,等待发起者的回应。
3.发起者没有给目标计算机发送回应报文,这样导致服务器端一直处于等待状态,空耗资源。
三、TCP拒绝服务攻击实验
靶机: windows 7 ip:192.168.140.129
攻击机: kali ip:192.168.140.9
设置kali虚拟机和windows虚拟 网络为同一网络,测试两者是否ping通,
攻击前的windows系统,CUP使用率很小
使用命令,在kali虚拟机中对windows7虚拟机开始发起TCP拒绝攻击
sudo hping3 -q -n -a 2.2.2.3 -S -s 445 --keep -p 445 --flood 192.168.140.129
攻击之后的windows7系统,CPU使用率大幅度上升
在kali攻击中,使用wireshark中捉到的包
四、TCP拒绝服务防御方法:
1.启用 SYN Flood 攻击检测功能时,要求设置一个连接速率阈值和半开连接数量阈值,一旦发现保护主机响应的 TCP 新建连接速率超过连接速度阈值或者半开连接数量超过半开连接数量阈值,防火墙会输出发生 SYN Flood 攻击的告警日志,并且可以根据用户的配置采取以下三种措施:
阻止发往该保护主机的后续连接请求;
切断保护主机上的最老半连接会话;
向 TCP Proxy 添加受保护 IP 地址。
2.使用防火墙等安全设备防备。
声明:
本文仅限于大家技术交流和学习,严谨读者利用本博客的所有知识点进行非法操作。如果你利用文章中介绍的技术对他人造成损失,后果由您自行承担,感谢您的配合,
作者创作不容易,请大家点赞支持一下。谢谢各位读者大老爷。