常见Dos攻击


常见Dos攻击

(1)SYN Flooding(洪泛)攻击

TCP SYN泛洪是利用TCP建立连接时需要进行三次握手的过程,并结合IP源地址欺骗实现的。

攻击者将其自身的源地址伪装成一个私有地址向本地系统的TCP服务发起连接请求,本地TCP服务回复一个SYN-ACK作为响应,然而该响应发往的地址并非攻击者的地址(真实地址),而是攻击者伪装的私有地址。由于该私有地址是不存在的于本地服务器所在的网络的,所有本地系统将收不到RST消息(以结束这个半打开连接)。本地TCP服务接下来要等待接收一个ACK回应,但是该回应永远不会到来,该半打开连接会保持打开状态直至连接尝试超时,因此有限的连接资源被消耗了。攻击者连接请求的到来比TCP超时释放资源更快,利用一次又一次的连接请求淹没本地连接资源(如通过listen()创建的大小有限的连接队列等),以致本地服务无法接收更多的连接请求。

Linux操作系统中的SYN cookie模块能显著的延缓SYN泛洪造成的网络资源缺失现象:在TCP服务接收到TCP SYN包并返回SYN-ACK时,不分配一个专门的数据区,而是根据这个SYN包计算一个cookie值。cookie值是一个基于SYN中的原始序列号、源地址、目的地址、端口号、密值而产生的序列号。cookie作为将要返回的SYN-ACK的初始序列号,当客户返回一个ACK包,TCP服务在根据cookie值检查该ACK包的合法性,再分配专门的数据区进行处理接下来操作。cookie的超时时间很短暂,客户端必须在很短时间内进行应答。

防范:

1、缩短SYN Timeout时间
2、设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。
  >netstat -n -p tcp >result.txt

echo 1 > /proc/sys/net/ipv4/tcp_syncookies 命令可以打开Linux内核的SYN cookie保护功能;需要注意一些发行版需要配置内核才能打开。

(2)ICMP洪泛攻击

ICMP路由重定向炸弹
我们知道ICMP的消息类型中的类型5是告知目标系统改变内存中的路由表以获得更短的路由,以通知主机有更多的路径可用。重定向很少发源主机附近的路由器,对于连接到ISP(运营商)的住宅或商用站点来说,主机附近的路由器产生一个重定向的ICMP消息可能性非常小。如果我们主机使用静态路由且收到了重定向消息,这可能是有人在攻击我们系统,欺骗主机以转发所有流量到另一远处主机处。

(3)UDP洪泛攻击

不同于TCP,UDP是无状态的,没有任何信息被维护以指明下一个期望到来的数据包,所以UDP服务更易受这些类型攻击的影响,许多站点都禁止用所有非必要的UDP端口。

(4)Ping of Death攻击

“ping ofdeath”攻击就是我们常说的”死亡Ping”
  这种攻击通过发送大于65536字节的ICMP包使操作系统崩溃;通常不可能发送大于65536个字节的ICMP包,但可以把报文分割成片段,然后在目标主机上重组;最终会导致被攻击目标缓冲区溢出,引起拒绝服务攻击。有些时候导致telne和http服务停止,有些时候路由器重启。

(5)IP欺骗DoS攻击

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

(6)IP分片攻击

我们知道数据包从一个路由器沿路径(源计算机到目的计算机的路径)到下一个路由器时,网关路由器可能需要在它们进行传递到下一个网络前将数据包分切为更小的片段(超过MTU值会被分片),在这些片段里第一个分片会包含UDP或者TCP报头中的源端口号和目的端口号,接下来的分片并不包含。当数据包被分片时中间路由器不会重组数据包,数据包到达目的主机或邻近路由器时才会重新组装。

分片炸弹的实现是构造一种非常小的数据包导致系统或者程序崩溃的操作:比如构造一个最初的分片使得UDP或者TCP的源端口和目的端口被包含在第二个分片中。许多防火墙并不检查第一个分片之后的分片,然而第一个分片由于防火墙所要过滤的信息还未呈现,所以得以通过,那么最终所有分片都在主机中得以组装。

另外,因为中间进行分片基本上比发送更小的无需分片的数据包代价更高,所以一般会在发送在IP报头中设置了不分片标志,设置后系统会向目标主机发起连接前进行MTU发现,如果中间路由器必须对数据包进行分片那么它会丢弃数据包并赶回ICMP 3错误消息,即“需要分片”。

(7)Teardrop(泪滴)攻击

对于一些大的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数据包后,把偏移字段设置成不正确的值,这样接收端在收到这些分拆的数据包后,就不能按数据包中的偏移字段值正确组合这些拆分的数据包,但接收端会不断尝试,这样就可能致使目标计算机操作系统因资源耗尽而崩溃。

(8)Land(LandAttack)攻击

在Land攻击中,黑客利用一个特别打造的SYN包–它的原地址和目标地址都被设置成某一个服务器地址进行攻击。此举将导致接受服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时,在Land攻击下,许多UNIX将崩溃,NT变得极其缓慢(大约持续五分钟)。

(9)Smurf攻击

发送伪装的ICMP数据包,目的地址设为某个网络的广播地址,源地址设为要攻击的目的主机,使所有收到此ICMP数据包的主机都将对目的主机发出一个回应,使被攻击主机在某一段时间内收到 成千上万的数据包
防范:在cisco路由器上配置如下可以防止将包传递到广播地址上:
  Router(config-if)# no ip directed-broadcast

(10)Fraggle攻击

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

(11)WinNuke攻击

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

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

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

此类攻击是由于利用软件开发过程中对某种特定类型的报文或请求没有处理,导致软件遇到这类型报文时运行出现异常,软件崩溃甚至系统崩溃。

防范:

升级系统或给系统打补丁,也可以删除NetBIOS协议或关闭137、138、139端口。

(12)电子邮件轰炸。

电子邮件炸弹是最古老的匿名攻击之一,通过设置一台机器不断的大量的向同一地址发送电子邮件,攻击者能够耗尽接受者网络的宽带。由于这种攻击方式简单易用,也有很多发匿名邮件的工具,而且只要对方获悉你的电子邮件地址就可以进行攻击


文章作者: Daniel
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Daniel !
  目录