0
点赞
收藏
分享

微信扫一扫

室友打团太吵?一条命令让它卡死

SYN Flood


TCP协议通过三次握手建立连接,如果我只做第一次握手,向你发送一个SYN请求,后边就不管了,你就要在半连接队列里维护我的这个连接,并每隔一段时间向我我返回ACK确认,直到这个连接超时。
如果我向你发送大量的SYN请求,你就要维护大量的半连接队列并不停的返回ACK确认,当半连接队列溢出或资源耗尽时,你的电脑就卡死了,这一招叫 SYN Flood 或者 SYN泛洪。

如果不了解ARP协议,请先看我的另一篇文章 TCP协议详解

1、hping3实现SYN Flood

攻方:Kali + hping3
冤大头:Win7

1.1、主机探测

用Kali自带的Nmap扫描当前网段的存活主机 nmap -sP 192.168.126.0/24

比如我的IP是 192.168.126.131,那我就扫 192.168.126.0/24 这个网段。

在这里插入图片描述

从扫描结果可以判断出来,192.168.126.130 就是这次试验的倒霉蛋了。

到Win7上验证一下IP。

在这里插入图片描述

1.2、扫描端口

用Nmap扫描倒霉蛋开放的端口 nmap 192.168.126.130

在这里插入图片描述

从扫描结果中选择一个端口,这里选445。

1.3、泛洪、卡死!

使用Kali自带的hping3工具,执行 hping3 -S -p 445 --flood 192.168.126.130

-s是使用SYN,-p指定端口,--flood是尽快发包不显示回复,后面的IP是冤大头的地址。

Win7很快就会卡死,我这里任务管理器都点不动了。

在这里插入图片描述

Ctrl + c停止命令后,可以看到CPU使用记录里,刚才已经顶到头了。

在这里插入图片描述

2、SYN Flood原理分析

SYN Flood 通过发送大量SYN请求,使目标维护大量半连接队列,从而消耗资源。也就是只进行前两次握手,到达下图中SYN-RCVD状态时就停住了。所以被攻击者会出现大量SYN-RCVD状态的半连接。
在这里插入图片描述

实验中,使用了目标的445端口,未执行时,先看冤大头的445端口,没有什么连接。

在这里插入图片描述

Kali执行几秒钟后停掉,再看冤大头,出现了一大堆SYN_RCVD状态的半连接,这时候冤大头就已经汗流浃背了。

在这里插入图片描述

3、SYN Flood防御

防御SYN可以优化系统配置,比如修改SYN timeout,降低半连接队列的超时时间。
或者设置SYN cookie,短时间内收到重复发SYN请求的主机,就丢弃这个主机的报文。
或者用防火墙,防火墙替服务器接收客户端的SYN请求,等TCP连接建立成功后再跟服务器建立连接,防火墙的性能通常比较好,可以替服务器承担很多压力。

举报

相关推荐

0 条评论