常见DDOS攻击原理

1. winnuke攻击

winnuke是利用NetBIOS协议中一个OOB(Out of Band)的漏洞,也就是所谓的带外数据漏洞而进行的,它的原理是通过TCP/IP协议传递一个Urgent紧急数据包到计算机的137、138或139端口,当win95/NT收到这个数据包之后就会瞬间死机或蓝屏,不重新启动计算机就无法继续使用TCP/IP协议来访问网络。 

带外数据OOB是指TCP连接中发送的一种特殊数据,它的优先级高于一般的数据,带外数据在报头中设置了URG标志,可以不按照通常的次序进入TCP缓冲区,而是进入另外一个缓冲区,立即可以被进程读取或根据进程设置使用SIGURG信号通知进程有带外数据到来。

后来的Winnuke系列工具已经从最初对单个IP的攻击发展到可以攻击一个IP区间范围的计算机,可以检测和选择端口,并且可以进行连续攻击,还能验证攻击的效果,所以使用它可以造成某个IP地址区间的计算机全部蓝屏死机。 

此类攻击是由于利用软件开发过程中对某种特定类型的报文或请求没有处理,导致软件遇到这类型报文时运行出现异常,软件崩溃甚至系统崩溃。防范此类攻击的方法就是升级系统或给系统打补丁,也可以删除NetBIOS协议或关闭137、138、139端口。

2.Smurf攻击

Smurf攻击是一种病毒攻击,以最初发动这种攻击的程序“Smurf”来命名。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。

Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃。

3.Fraggle攻击

类似于Smurf,使用UDP应答消息而非ICMP。UDP端口7(ECHO)和端口19(Chargen)在收到UDP报文后,都会产生回应。在UDP的7号端口收到报文后,会回应收到的内容,而UDP的19号端口在收到报文后,会产生一串字符流。它们都同ICMP一样,会产生大量无用的应答报文,占满网路带宽。攻击者可以向子网广播地址发送源地址为受害网络或受害主机的UDP包,端口号用7或19.子网络启用了此功能的每个系统都会向受害者的主机做出响应,从而引发大量的包,导致受害网络的阻塞或受害主机的崩溃;子网上没有启动这些功能的系统将产生一个ICMP不可达的消息,因而仍然消耗带宽。也可将源端口改为Chargen。目的端口为ECHO,这样会自动不停地产生回应报文,其危害性更大。 
处理方法: 

检查进入防火墙的UDP报文,若目的端口号为7或19,则直接拒绝,并将攻击记录到日志,否则允许通过。

4. 死亡之ping

最简单的基于IP的攻击可能要数著名的死亡之ping,这种攻击主要是由于单个包的长度超过了IP协议规范所规定的包长度。产生这样的包很容易,事实上,许多操作系统都提供了称为ping的网络工具。在为Windows操作系统中开一个DOS窗口,输入ping -l 65500 目标ip -t (65500 表示数据长度上限,-t 表示不停地ping目标地址)就可达到该目的。UNIX系统也有类似情况。

死亡之ping是如何工作的呢?首先是因为以太网长度有限,IP包片段被分片。当一个IP包的长度超过以太网帧的最大尺寸(以太网头部和尾部除外)时,包就会被分片,作为多个帧来发送。接收端的机器提取各个分片,并重组为一个完整的IP包。在正常情况下,IP头包含整个IP包的长度。当一个IP包被分片以后,头只包含各个分片的长度。分片并不包含整个IP包的长度信息,因此IP包一旦被分片,重组后的整个IP包的总长度只有在所在分片都接受完毕之后才能确定。
在IP协议规范中规定了一个IP包的最大尺寸,而大多数的包处理程序又假设包的长度超过这个最大尺寸这种情况是不会出现的。因此,包的重组代码所分配的内存区域也最大不超过这个最大尺寸。这样,超大的包一旦出现,包当中的额外数据就会被写入其他正常区域。这很容易导致系统进入非稳定状态,是一种典型的缓存溢出(Buffer Overflow)攻击。在 防火墙一级对这种攻击进行检测是相当难的,因为每个分片包看起来都很正常。
由于使用ping工具很容易完成这种攻击,以至于它也成了这种攻击的首选武器,这也是这种攻击名字的由来。当然,还有很多程序都可以做到这一点,因此仅仅阻塞ping的使用并不能完全解决这个漏洞。预防死亡之ping的最好方法是对操作系统打补丁,使内核将不再对超过规定长度的包进行重组。

5. DNS query flood

该攻击是UDP Flood的一种变形,由于DNS服务在互联网中有着不可替代的作用,一旦DNS服务器瘫痪,影响很大。

UDP DNS Query Flood攻击采用的方法是向被攻击的服务器发送大量的域名解析请求,通常请求解析的域名是随机生成或者是网络世界上根本不存在的域名,被攻击的DNS 服务器在接收到域名解析请求的时候首先会在服务器上查找是否有对应的缓存,如果查找不到并且该域名无法直接由服务器解析的时候,DNS 服务器会向其上层DNS服务器递归查询域名信息。域名解析的过程给服务器带来了很大的负载,每秒钟域名解析请求超过一定的数量就会造成DNS服务器解析域 名超时。

根据微软的统计数据,一台DNS服务器所能承受的动态域名查询的上限是每秒钟9000个请求。而我们知道,在一台P3的PC机上可以轻易 地构造出每秒钟几万个域名解析请求,足以使一台硬件配置极高的DNS服务器瘫痪,由此可见DNS 服务器的脆弱性。同时需要注意的是,蠕虫扩散也会带来大量的域名解析请求。

6. CC攻击

CC攻击是基于应用层HTTP协议发起的DDos攻击,也被称为HTTP Flood。

CC攻击利用代理服务器向网站发送大量需要较长计算时间的URL请求,如数据库查询等,导致服务器进行大量计算而很快达到自身的处理能力而形成DOS,而攻击者一旦发送请求给代理后就主动断开连接,因为代理并不因为客户端这边连接的断开就不去连接目标服务器,因此攻击机的资源消耗相对很小,而从目标服务器看来,来自代理的请求都是合法的。



参考文档链接

https://blog.csdn.net/wdkirchhoff/article/details/45560655

http://blog.163.com/creative_1230/blog/static/297686032010113113922901/

http://blog.chinaunix.net/uid-20556054-id-3164909.html

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值