DoS和DDoS的概念
拒绝服务攻击(
DoS
)从
1970
年出现直到今天都依然在作祟,并给全球范围内的各大组织带来了不可估量的损失。SYN Flood
是互联网上最经典的
DDoS
攻击方式之一,最早出现于
1999
年左右,雅虎是当时最著名的受害者。SYN Flood
攻击利用了
TCP
三次握手的缺陷,能够以较小代价使目标服务器无法响应,且难以追查。
DoS
DoS
是
Denial of Service
的简称,即拒绝服务,造成
DoS
的攻击行为被称为
DoS
攻击,其目的是使计算机 或网络无法提供正常的服务。最常见的DoS
攻击有计算机网络宽带攻击和连通性攻击。
举一个简单的例子:
有一天,竞争对手某德基的老板看到某拱门生意越来越好了,非常嫉妒。于是,就安排自己的几个员工,假装过去就餐,排队点餐。轮到他们时,就问各种问题(如这个汉堡好不好吃? 什么时候做的?新不新鲜?等等),但就是不点餐,故意纠结来纠结去的,没折腾一小时以上,是不会罢休的。
于是,就导致这个服务员无法为正常客户提供点餐服务,最终停止服务。
DDos
分布式拒绝服务攻击
(
英文意思是
Distributed Denial of Service
,简称
DDoS)
是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击, 其中的攻击者可以有多个。
举一个简单的例子:
某德基的老板派了自己的几个员工过去假装就餐这件事还是无法让某拱门停止营业,又想了一个损招,
所以黑客攻防真的是道高一尺魔高一丈啊。某德基的老板雇佣了一百多社会人士到某拱门,这一百多人到了那假装要点餐,各种问,就是不点餐。由于这一百多人跟正常就餐的客户没什么区别,男女老少都有。某拱门也不好赶他们走,最终这些人把餐厅门口都堵死了,导致正常的客户无法进去,某拱门也被迫停止营业了。
![](https://img-blog.csdnimg.cn/direct/5b1a5e5b147b481895b5c2c0a54d3422.png)
SYN Flood 概念
Syn-Flood
攻击是当前网络上最为常见的
DDoS
攻击,也是最为经典的拒绝服务攻击,它利用了
TCP
协议,实现上的一个缺陷,通过向网络服务所在端口发送大量的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其他合法用户进行访问。
这种攻击早在
1996
年就被发现,但至今仍然显示出强大的生命力。很多操作系统,甚至防火墙、路由器都无法有效地防御这种攻击,而且由于它可以方便地伪造源地址,追查起来非常困难。它的数据包特征通常是,源发送了大量的SYN
包,并且缺少三次握手的最后一步握手
ACK
回复。
Syn-Flood
攻击属于
TCP
攻击中的一种,
Flood
类攻击中最常见,危害最大的是
Syn-Flood
攻击,也是历史最悠久的攻击之一。
![](https://img-blog.csdnimg.cn/direct/a2abd214697843b8bc4bd7bc9f6c1f23.png)
SYN Flood 的分类
直接攻击
直接攻击
IP
地址不被欺骗的
SYN Flood
被称为直接攻击。在这次攻击中,攻击者根本不掩盖其
IP
地址。由于攻击者使用具有真实IP
地址的单个源设备来创建攻击,因此攻击者极易受到发现和缓解的影响。为了在目标机器上创建半开状态,黑客可以防止其机器响应服务器的SYN-ACK
数据包。这通常是通过阻止除SYN数据包之外的传出数据包的防火墙规则来实现的,或者在到达恶意用户机器之前过滤任何传入的SYN-ACK数据包。实际上,这种方法很少使用(如果有的话),因为减轻是非常简单的
–
只是阻止每个恶意系统的IP
地址。
欺骗性攻击
恶意用户也可以欺骗他们发送的每个
SYN
数据包上的
IP
地址,以抑制缓解工作,使其身份更难发现。虽然数据包可能被欺骗,但这些数据包可能会被追溯到其来源。很难做这种侦探工作,但并不是不可能的,特别是如果互联网服务提供商(ISP
)愿意帮助的话。
分布式攻击(DDoS)
如果使用僵尸网络创建攻击,则将攻击溯源到源的可能性很低。对于增加的混淆级别,攻击者可能会使每个分布式设备也欺骗发送数据包的IP
地址。如果攻击者正在使用诸如未来僵尸网络的僵尸网络,他们通常不会关心被感染设备的IP
掩蔽。
通过使用
SYN Flood
攻击,恶意攻击者可以尝试在目标设备或服务中创建拒绝服务,其流量大大低于其他DDoS攻击。为了使目标周边的网络基础设施饱和,
SYN
攻击只需要比目标操作系统中可用的积压更大的体积攻击。如果攻击者能够确定积压的大小,并且在超时之前每个连接将被打开多长时间,攻击者可以定位禁用系统所需的确切参数,从而将总流量减少到最小必要量以创建拒绝服务。
SYN Flood 的复现
对445端口进行攻击
攻击机:
kali (192.168.3.75)
靶机:
winserver 2008(192.168.3.76)
保证能相互
ping
通:
![](https://img-blog.csdnimg.cn/direct/f597bd4c21264518b8e8f5fe39b20b8e.png)
![](https://img-blog.csdnimg.cn/direct/84e5ae23572647ba8c454b057bbf9871.png)
然后打开
winserver2008
的任务管理器管理器:
![](https://img-blog.csdnimg.cn/direct/f2fe0b463f8342ea865ccbde30299286.png)
注意
CUP
的占用几乎为
0
。
然后发起攻击:
hping3 -q -n -a 2.2.2.2 -S -s 53 --keep -p 445 --flood 192.168.3.76
hping3 -q -n -a
伪造源
IP -S -s
伪造源端口
--keep -p
目的端口
--flood
目的
IP
┌──(root💀kali)-[/home/kali]
└─# hping3 -q -n -a 2.2.2.2 -S -s 53 --keep -p 445 --flood 192.168.3.76
HPING 192.168.3.76 (eth0 192.168.3.76): S set, 40 headers + 0 data bytes
hping in flood mode, no replies will be shown
由于攻击过程卡住无法截图,停止攻击后可以观察:
![](https://img-blog.csdnimg.cn/direct/1e52926e5df04a2b80c2d71119c44a7e.png)
攻击成功。
23端口攻击
先在
server2008
上面开启
telnet
服务:
![](https://img-blog.csdnimg.cn/direct/ddde9add0b5b4f06a0d80264fa4048ce.png)
![](https://img-blog.csdnimg.cn/direct/35b9a7ec9c06492bb7f1e5579563871c.png)
进入服务开启
telnet
服务:
![](https://img-blog.csdnimg.cn/direct/a3e0d640749143bfac82049a48eddab3.png)
在
kaili
中测试一下:
![](https://img-blog.csdnimg.cn/direct/96e93f44976a4f268e42d5ab343cf7e6.png)
接下来开始攻击。
这里我们利用
netwox
工具来进行攻击。这个工具很强大。可以自行搜索怎么使用。
在
kali
里面如果没有那么需要先安装:
apt update
apt install -y netwox
(
Seed Ubuntu
内置了
netwox
工具)
安装后直接执行:
netwox 76 -i 192.168.3.76 -p 23
观察
winserver2008:
![](https://img-blog.csdnimg.cn/direct/cf88cd53671241b4b7a357573a74e63f.png)
抓包查看:
![](https://img-blog.csdnimg.cn/direct/4c3dcc7d4b3648a782ac1d177165332a.png)
攻击成功。
SYN Flood防御
1.
减少系统
SYN
等待时间(只能缓解攻击)
2.
对攻击源地址进行过滤拉黑(但是对于伪造精细的报文无效)
3.
修改系统
SYN-back-log
上限(只能缓解攻击)
4.
将系统
SYN
的重发次数降低(可以缓解攻击)
5.
如果是
linux
系统,可以升级内核并设置
SYN-cookies
(极大缓解攻击)
但是要明白只要被
SYN
攻击后,无论是上述哪种防护措施都不可能达到完美。我们只能尽可能减少被
SYN攻击所造成的危害,最好的就是提前做好安全准备,使用高防服务器、网站类可以用高防CDN
、游戏类可以使用无视攻击的游戏盾,都是比较好的选择。