首页 > 编程知识 正文

DOS命令终止ping,dos攻击防止

时间:2023-05-05 15:09:23 阅读:115580 作者:3782

DoS是服务的Denial of Service的简称,拒绝服务和引起DoS的攻击行为称为DoS攻击,目的是防止计算机和网络提供正常的服务。 最常见的DoS攻击包括计算机网络带宽攻击和连接性攻击。 DoS攻击是指故意攻击网络协议所实现的缺陷,以及以野蛮手段残忍地耗尽攻击对象的资源,导致目标计算机和网络无法提供正常的服务和资源访问, 目标系统的服务系统旨在停止响应或崩溃,此攻击不包括对目标服务器或目标网络设备的入侵。 这些服务资源包括网络带宽、文件系统容量、开放进程或允许的连接。 这样的攻击会导致资源不足,无论计算机的处理速度、内存容量、网络带宽的速度多么快,都无法避免该攻击带来的结果。

什么是DoS? 接触电脑快的同志会直接想到微软磁盘操作系统的dos——diskoperationsystem吗? 不,这个DoS不是其他DoS。 DoS是DenialOfService,是拒绝服务的缩写。

通过形象的比喻理解DoS。 街头餐厅为群众提供餐饮服务,超市自行车要DoS餐厅的,占座不结账,堵餐厅门口不让路,骚扰餐厅服务员和厨师不能工作, 或者更糟……可以想象,这样的计算机和网络系统是为互联网用户提供互联网资源的,黑客进行DoS攻击的情况也有同样多的手段。 当今最常见的DoS攻击包括对计算机网络的带宽攻击和连接性攻击。 带宽攻击是指以非常大的通信量撞击网络,消耗所有可用的网络资源,最终导致合法用户请求无法通过。 连接性攻击是指大量连接请求与计算机发生冲突,占用了所有可用的操作系统资源,最终导致计算机无法处理合法用户的请求。

传统上,攻击者面临的主要问题是网络带宽,由于小网络规模和慢网络速度的限制,攻击者不能提出过多的要求。 攻击类型(如“深度试通”)允许少量数据包破坏未修补的UNIX系统,但大多数DoS攻击需要相当高的带宽,个人黑客很难使用高带宽资源为了克服这个缺点,DoS攻击者开发了分散型攻击。 攻击者使用工具聚集很多网络带宽,同时对同一目标发出大量攻击请求的就是分布式DDOS (distributeddenialofservice )攻击。

无论是DoS攻击还是DDoS攻击,简单来看,都只是破坏网络服务的黑客方式。 具体实现方式千变万化,但有共同之处。 也就是说,其根本目的是受害主机和网络不能立即接收和处理外部请求,或者不能立即响应外部请求。 其具体表现方法如下。

1 )制作大量流量无用的数据,引起被攻击主机的网络拥塞,防止被攻击主机正常与外部通信。

2 )利用被攻击主机提供服务或在传输协议上处理重复连接的缺陷,重复攻击性重复服务请求,防止被攻击主机立即处理其他正常请求。

3 )利用被攻击主机提供的服务程序和传输协议本身实现缺陷,通过重复发送畸形的攻击数据,导致系统错误地分配大量系统资源,导致主机挂起和冻结。

使用僵尸电脑进行DOS攻击

僵尸电脑(Zombiecomputer )叫“僵尸电脑(zombie )”,有些人叫“肉鸡”,上网的电脑感染病毒后,被黑客控制,总是黑客通常,被劫持的计算机是僵尸网络中的许多环节,用于运行一系列恶意程序和远程控制程序。 很多“僵尸电脑所有者”没有意识到自己的系统被“僵尸化”,就像没有自律意识的僵尸一样。

攻击流程要理解dos攻击,首先必须理解TCP连接的三次握手过程(Three-wayhandshake )。 在TCP/IP协议中,TCP协议提供可靠的连接服务,通过三次握手建立一个连接。

当第一个握手:建立连接时,客户端将SYN数据包((SYN=i ) )发送到服务器,进入同步状态,等待服务器确认。

第二次握手:服务器接收SYN数据包,并始终检查客户的SYN(ack=I1 ),同时发送SYN数据包(SYN=j )。 此时,服务器处于SYN_RECV状态。 [1]

第三次握手:客户端从服务器接收SYN ACK包,并向服务器发送确认包ack。 (ack=j1 )此数据包发送完成,客户端和服务器进入ESTABLISHED状态,第三次握手完成,客户端和服务器开始传输数据。

在上述过程中,有几个重要的概念:

当半连接:接收到SYN包但尚未接收到ACK包时的连接状态称为半连接。 这意味着三次握手的TCP连接未完全完成。

gn="left">    半连接队列:在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包(SYN=i )开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于SYN_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。

Backlog参数:表示半连接队列的最大容纳数目。 

    SYN-ACK重传次数:服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息、从半连接队列中删除。注意,每次重传等待的时间不一定相同。 

    半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时也称半连接存活时间为Timeout时间、SYN_RECV存活时间。[1] 

上面三个参数对系统的TCP连接状况有很大影响。 

    SYN洪水攻击属于DoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从图4-3可看到,服务器接收到连接请求(SYN=i )将此信息加入未连接队列,并发送请求包给客户端( SYN=j,ACK=i+1 ),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。过程如下:

攻击主机C(地址伪装后为C&apos)-----大量SYN包---->被攻击主机 

C&apos<-------SYN/ACK包----被攻击主机,由于C&apos地址不可达,被攻击主机等待SYN包超时。攻击主机通过发大量SYN包填满未连接队列,导致正常SYN包被拒绝服务。另外,SYN洪水攻击还可以通过发大量ACK包进行DoS攻击。

   

常见攻击与防范

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.txt

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再发送合法数据,服务器就已经没有这样的连接了,该用户就被拒绝服务而只能重新开始建立新的连接。

 

 


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。