简单的DOS攻击之死亡之ping详解

DOS攻击之死亡之ping详解,dos攻击,俗称拒绝服务攻击,经过发送大量的无用请求数据包给服务器,耗尽服务器资源,从而没法经过正常的访问服务器资源,致使服务器崩溃。windows

        若是多个ip经过发起对一个服务器的攻击,若是无防护措施,无论服务器内存多大,宽带多宽,CPU多快,都没法抵御这种攻击。缓存

        死亡之ping代码:安全

        打开系统的命令窗口,windows电脑按win+R ,输入cmd命令后进入命令界面:服务器

        输入: ping -l 65500 目标ip -t (65500 表示数据长度上限,-t 表示不停地ping目标地址) 这就是简单的拒绝服务攻击。网络

  1. ping -65500 192.168.1.1 -t

ping.png

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

常见攻击与防范工具

SYN Flood攻击:
  问题就出在TCP链接的三次握手中,假设一个用户向服务器发送了SYN报文后忽然死机或掉线,那么服务器在发出SYN+ACK应答报文后是没法收到客户端的ACK报文的(第三次握手没法完成),这 种状况下服务器端通常会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的链接,这段时间的长度咱们称为SYN Timeout,通常来讲这个时间是分钟的数量级(大约为30秒 -2分钟);一个用户出现异常致使服务器的一个线程等待1分钟并非什么很大的问题,但若是有一个恶意的攻击者大量模拟这种状况,服务器端将为了维护一个很是大的半链接列表而消耗很是多的资源----数以万计的半链接,即便是简单的保存并遍历也会消耗很是多的CPU时间和内存,况且还要不断对这个列表中的IP进行SYN+ACK的重试。实际上若是服务器的TCP/IP栈不够强大,最 后的结果每每是堆栈溢出崩溃---即便服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP链接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率很是之小),此时从 正常客户的角度看来,服务器失去响应,这种状况咱们称做:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
  防范:
  第一种是缩短SYN Timeout时间
  第二种方法是设置SYN Cookie,就是给每个请求链接的IP地址分配一个Cookie,若是短期内连续受到某个IP的重复SYN报文,就认定是受到了攻击,之后从这个IP地址来的包会被一律丢弃。
  >netstat -n -p tcp >result.txtspa

Smurf攻击:
  发送假装的ICMP数据包,目的地址设为某个网络的广播地址,源地址设为要攻击的目的主机,使全部收到此ICMP数据包的主机都将对目的主机发出一个回应,使被攻击主机在某一段时间内收到 成千上万的数据包
  防范:
  在cisco路由器上配置以下能够防止将包传递到广播地址上:
  Router(config-if)# no ip directed-broadcast
Ping of Death:
  "ping ofdeath"攻击就是咱们常说的"死亡Ping"
  这种攻击经过发送大于65536字节的ICMP包使操做系统崩溃;一般不可能发送大于65536个字节的ICMP包,但能够把报文分割成片断,而后在目标主机上重组;最终会致使被攻击目标缓冲区溢出,引发拒绝服务攻击。有些时候致使telne和http服务中止,有些时候路由器重启。
teardown攻击:
  对于一些大的IP数据包,每每须要对其进行拆分传送,这是为了迎合链路层的MTU(最大传输单元)的要求。好比,一个6 000字节的IP包,在MTU为2 000的链路上传输的时候,就须要分红3个IP 包。在IP报头中有一个偏移字段和一个拆分标志(MF)。若是MF标志设置为1,则表示这个IP包是一个大IP包的片断,其中偏移字段指出了这个片断在整个IP包中的位置。例如,对一个6 000字 节的IP包进行拆分(MTU为2 000),则3个片断中偏移字段的值依次为0,2000,4 000。这样接收端在所有接收完IP数据包后,就能够根据这些信息从新组装这几个分次接收的拆分IP包。在这 里就有一个安全漏洞能够利用了,就是若是黑客们在截取IP数据包后,把偏移字段设置成不正确的值,这样接收端在收到这些分拆的数据包后,就不能按数据包中的偏移字段值正确组合这些拆分的数据包,但接收端会不断尝试,这样就可能导致目标计算机操做系统因资源耗尽而崩溃。
Land(LandAttack)攻击:
在Land攻击中,黑客利用一个特别打造的SYN包--它的原地址和目标地址都被设置成某一个服务器地址进行攻击。此举将致使接受服务器向它本身的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并建立一个空链接,每个这样的链接都将保留直到超时,在Land攻击下,许多UNIX将崩溃,NT变得极其缓慢(大约持续五分钟)。操作系统

IP欺骗:
这种攻击利用TCP协议栈的RST位来实现,使用IP欺骗,迫使服务器把合法用户的链接复位,影响合法用户的链接。假设有一个合法用户(100.100.100.100)已经同服务器建了正常的链接,攻击者构造攻击的TCP数据,假装本身的IP为100.100.100.100,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从100.100.100.100发送的链接有错误,就会清空缓冲区中已创建好的链接。这时,合法用户100.100.100.100再发送合法数据,服务器就已经没有这样的链接了,该用户就被拒绝服务而只能从新开始创建新的链接。线程

相关文章
相关标签/搜索