一篇文章让你理解TCP协议,搭建TCP flood攻击实验以及了解其防御原理

目录

1、知识点回顾

 2、TCP协议

 3、TCP字段含义

4、TCP的三次握手过程 

5、释放连接的四次挥手过程

6、握手挥手七次总过程 

7、TCP的半关闭状态

8、TCP的半连接状态

 9、常见的TCP端口号

10、TCP flood攻击实验

11、防御原理


 

 

1、知识点回顾

efca7d28725a422ab75d2f99029e6bfd.png

 2、TCP协议

d6c95a243dcb46df851ad8501d38b111.png

 3、TCP字段含义

0d736f632d844bd79c0d3204330ce965.png

 8c51566d6f78444697decef04b297949.png

4、TCP的三次握手过程 

5db31679f9404cf48706fb6396fde3f4.png

 

b4694c0fe5c44898805bfe82e68b9118.png

5、释放连接的四次挥手过程

8017ff6bda1c43bcacde4de388f73932.png

6、握手挥手七次总过程 

f27346c56e5f4195830c3075e0447d75.png

7、TCP的半关闭状态

TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。这就是所谓
的半关闭。如图当四次挥手处于被动关闭的一方在收到主动关闭方的FIN时,进入CLOSE_WAIT状态,主动方收到对方的同意ACK后就进入了半关闭状态。此时,左方还可以收到右方所发送过来的数据。当右方已经没有数据可发时向对方发送FIN,等对方回复确认ACK后,这个TCP的链接便彻底关闭了。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk2ODQ0Nw==,size_16,color_FFFFFF,t_70

8、TCP的半连接状态

客户端向服务端发起连接请求,服务器第一次收到客户端的SYN之后,就会处于SYN_RCVD状态,此时双方还没有完全建立其连接,服务器会把此种状态下请求连接放到一个队列里,我们将这种队列称之为半连接队列。

0dbb21a637484d13a903b63409c45d92.png

 9、常见的TCP端口号

189d3f991f904a10a5b599b2e8cd4fc1.png

DNS服务器同步时传输需要用到TCP协议

 6e5935255afc4af196c4a9ddbd7acd44.png

10、TCP flood攻击实验

 

主机192.168.101.199192.168.101.79
kali192.168.109.129192.168.109.2
server192.168.109.130192.168.109.2

windows server搭建服务器 

ed8e5aead29a429abf42b9d1c17207d2.png

ac6e4b73cce8412785c6af92f69da2d3.png

 此时可以通过物理机访问该web

c9e1123f577b41f58a183ebe3a95d52d.png

 由于是持续性链接,所以目前没有挥手过程 4c27975118734a748092c3a344474957.png

 

检验三次握手的过程

12cb872135d24d03901e88089401f321.png

27a2b5eb90524d0e93263881a2f32f08.png 

bab857625f744f05b1306bb2c1923a4b.png 

 

 关闭网页,抓取四次挥手过程

70700de22d054ae9888638c76d4f5a41.png

 

kali命令

hping3 -c 数据包次数 -d 数据包大小 -S(只发送syn请求)-w(窗口大小)-p 80(端口) --flood --rand-source 自己的ip

 

此时追踪任意一次攻击的TCP流,前两次半连接状态后,第三次路由器回复目标不可达,然后服务器按照时间间隔进行两次重传请求,最后申请一次重新建立连接。重连不成功,交互停止

811a2e3c0dd744c3a4149290fb54c67f.png

 

此时我们发现服务器仍然可以访问(攻击的流量太小),我们可以尝试多开几个窗口同时hping3看看(如果电脑性能够好)

e64d890e1c1e41b0997c383410816a8e.png

 

11、防御原理

方法一:先和TCP代理(高防火墙的代理)建立三次握手,然后由代理转发到服务器

592550e76ef742dd92c9b94e564b3eec.png

方法二:建立TCP的源探测代理

47226e00fb974f3c84ad3162e792839a.png

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TCP SYN Flood攻击是一种常见的拒绝服务(DoS)攻击方式,攻击者通过发送大量的TCP SYN请求来消耗目标服务器的资源,导致正常用户无法访问该服务器。为了防御TCP SYN Flood攻击,可以采取以下几种方法: 1. SYN Cookie技术:当服务器收到一个TCP SYN请求时,不立即分配资源,而是根据请求的源IP地址和端口号生成一个加密的cookie,并将其发送给客户端。客户端在后续的请求中需要携带这个cookie才能建立连接。这样可以有效防止伪造的TCP SYN请求。 2. SYN Proxy:使用SYN Proxy可以将服务器的负载分散到多个代理服务器上,代理服务器负责接收和验证TCP SYN请求,并将合法的请求转发给目标服务器。这样可以减轻目标服务器的负载压力。 3. 防火墙设置:通过在防火墙上设置规则,限制对服务器的TCP SYN请求的数量和频率,可以有效减少攻击的影响。可以设置防火墙规则来限制每个IP地址的连接数或者限制每秒钟接收的TCP SYN请求的数量。 4. 流量清洗设备:流量清洗设备可以对进入服务器的流量进行实时监测和分析,识别并过滤掉恶意的TCP SYN请求,保护服务器免受攻击。 5. 负载均衡器:使用负载均衡器可以将流量分发到多个服务器上,从而分散攻击的影响。当一个服务器受到攻击时,负载均衡器可以将流量转发到其他正常的服务器上,确保服务的可用性。 6. 更新操作系统和应用程序:及时更新操作系统和应用程序的补丁可以修复已知的漏洞,提高服务器的安全性,减少受到攻击的风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coleak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值