DoS与DDos攻击
一、原理:
DoS(Denial of Serice)是一种拒绝服务攻击,而DDos(Distributed Denialof Service)是分布式拒绝服务攻击,可以说,DDos就是DoS的超级加强版。而欲想了解DDos,需先了解DoS。
DoS是指在B/S模式下计算机与服务器的正常通讯中,利用TCP/IP+办议的三次握手机制,计算机向服务器发送SYN且服务器向计算机回复了SYN+ACK包后,计算机不向服务器发送ACK包,导致服务器一直处于SYN-RCVD状态,从而导致服务器连接超时,拒绝了对计算机的服务,而在一秒内多次进行上述操作,就会导致服务器的资源被快速耗尽,从而无法对正常用户提供服务,甚至于服务器在开启防御策略后拒绝了所有正常用户的请求。这就叫作DoS攻击,该攻击可以使服务器资源快速耗尽乃至瘫痪。就好比一个恶霸强行进入一个火锅店,但只占座不点餐,导致火锅店无法为正常顾客提供服务。
而DDOS攻击则是指骇客组织或控制多台计算机同时向一个服务器发动DOS攻击,而这些发起攻击的计算机被称作僵尸网络(Botnet)这些计算机有可能是骇客组织自己的电脑,也有可能是感染木马后被骇客控制的计算机,甚至是骇客对其进行弱口令爆破后利用Telnet攻击控制的电脑。只要骇客向这些计算机发送预先编制好的指令,这些计算机便可以在同一时间发快DoS攻击,导致目标服务器快速瘫痪,因为DDoS攻击相当于是网络世界中的自杀式恐怖袭击。所以一但发动,服务器很难进行有效防御。所以DDOS攻击具有威力大,速度快,难防御的特点,就好比是个恶霸带着一众小弟到一家火锅店里把座位都占满却不点餐,导致火锅店无法正常营业。
但是目前大多数服务器的性能都较为优越,很多骇客发动DoS或DDOS改击时还不等服务器资源耗尽就导致自己的计算机资源耗尽,从而中断攻击。这也是为什么称DoS和DDoS攻击为“自杀式”恐怖袭击的原因。
为了防止以上尴尬局面的发生,骇客当然想到了一些办法来防止其的发生。大多数办法都是“放大攻击“的策略,而我们需先了解最原始的DoS攻击方式-Ping指令攻击。
所谓Ping指令攻击,就是应用计算机最原始的Ping指令,向指定IP发送大量超大数据包,导致目标服务器无法应答,既使应答,我们的计算机也不会发送ACK包,从而实现DoS攻击。这种方式的本质其实就是用自己的宽带换目标宽带,相当于杀敌一千,自损一千。
如何进行我们所谓的“放大攻击”呢?
一、DNS服务器,拿到了目标服务器有关信息的数据包后,将DNS查询地址改成目标服务器,也就是帮他向DNS服务器使用域名换成ip操作,直接将攻击放大了50~200倍不等。相当于你用20台电脑,就能打出4000台电脑的威力。
二、TCP洪水.服务端中有一个TCP维护表,用来记录已经记录已经经过三次握手连接的连接数据,这个数据表记录数量有上限,占满之后无法响应之后的TCP请求,但不能伪造IP,否则3次握手不成功,可以直接发了第一次TCP握物不管,然后基于重传机制服务端会一直向客户端发多次响应包直到出现超时,但这种方式勉强算是放大次击吧(仅代表我个人观点),
重点来了!三、RST洪水,在TCP协议中使用四次握手方式,我们使用RST数据(带有断开连接发起方的IP地址)强制断开连接,这样我们就能直接发送RST数据盲打,导致正常用户与服务器断开连接。这就是目前最常用的RST洪水。
我们又该如何发起DoS攻击呢?
一、手动DOS命令,命令如下(只展示核心):
ping www.xxx.com 655555
其中的“www.xxx.com”就是目标网址,而655555就是我们发送的超大数据包的大小。
二、语言脚本。
其实就是将第一种方式自动化,这里展示C语言的核心代码:
#indlude<windows.h>
#indlude<stdio>
int main(){
while(1)
system(“xxx”);//不便展示。
return main();
}
三 、借助外来工具
在 国内有前几年风靡一时的“雪花DDoS攻击器”,也有国际闻名的LO2IC颅卢瓦以及它的加强版XOZIC当然,也少不了我们万能的hping3。这里考虑到学校里的网站较多且大多数较为脆弱,不过多赘叙了。