首页>>科技 >>内容

dos攻击有多少种,DoS攻击种类

发布时间:2023-10-03 18:18:40编辑:温柔的背包来源:

很多朋友对dos攻击有多少种,DoS攻击种类不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

dos攻击有多少种,DoS攻击种类

DoS到底是什么?较早接触PC的同志会直接想到微软磁盘操作系统的DOS - DiskOperationSystem?不,这个DOS不是DoS就是DoS,是DenialOfService的简称,拒绝服务。

打个形象的比喻来理解DoS。

街上的餐馆为公众提供餐饮服务。如果一群流氓想要一家DoS餐厅,会有很多手段,比如霸占餐桌不买单,堵住餐厅的门让道,骚扰餐厅的服务员或厨师上班,甚至更恶劣.相应的计算机和网络系统为互联网用户提供互联网资源。如果黑客想进行DoS攻击,可想而知也有很多手段!当今最常见的DoS攻击是对计算机网络的带宽攻击和连接攻击。

带宽攻击是指巨大的流量对网络造成的影响,使得所有可用的网络资源耗尽,最终导致合法用户请求失败。连通性攻击是指大量的连接请求冲击计算机,使所有可用的操作系统资源被耗尽,最终计算机无法再处理合法用户的请求。

传统上,攻击者面临的主要问题是网络带宽。由于网络规模小、网速慢的限制,攻击者无法提出过多的请求。虽然像“死亡之ping”这样的攻击类型只需要少量的数据包就可以摧毁一个没有打补丁的UNIX系统,但是大多数DoS攻击仍然需要相当大的带宽,个人黑客很难使用高带宽资源。为了克服这个缺点,DoS攻击者开发了分布式攻击。

攻击者只是利用工具收集大量网络带宽,同时对同一目标发起大量攻击请求,这就是DDOS(分布式拒绝服务)攻击。

无论是DoS攻击还是DDoS攻击,简单来说就是黑客破坏网络服务的方式。虽然具体的实现方式千变万化,但它们都有一个共同点,那就是它们的根本目的是使受害主机或网络无法及时接收和处理外部请求,或者无法及时响应外部请求。其具体表现为:1。制作大量无用数据,对被攻击主机造成网络拥塞,使被攻击主机无法与外界正常通信。

2.利用被攻击主机在传输协议中提供服务或处理重复连接的缺陷,以高频率反复发出攻击性的重复服务请求,使被攻击主机无法及时处理其他正常请求。3.利用被攻击主机提供的服务程序或传输协议的缺陷,反复发送异常攻击数据,导致系统错误分配大量系统资源,使主机处于挂起状态甚至崩溃。

用僵尸电脑(简称僵尸电脑)进行DOS攻击,有人称之为“肉鸡”。连接互联网的电脑感染病毒后,被黑客控制,可以根据黑客的指令随时发起拒绝服务(DoS)攻击或发送垃圾邮件。通常情况下,被占领的电脑只是众多僵尸网络中的一部分,它会被用来运行一系列恶意程序或进行远程控制。

很多“僵尸电脑的主人”并没有意识到自己的系统已经“僵尸化”,就像没有独立意识的僵尸一样。

攻击流程要了解dos攻击,首先要了解TCP连接的三次握手过程。在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立连接。第一次握手:建立连接时,客户端向服务器发送一个SYN包((SYN=i))并进入SYN发送状态,等待服务器确认;

第二次握手:服务器收到SYN包时,必须确认客户的SYN (ACK=i 1)并发送一个SYN包((SYN=j)}本身,即SYN ACK包。此时服务器进入SYN_RECV状态;三次握手:客户端从服务器接收SYN ACK包,并向服务器发送确认包ACK(ACK=j 1)。这个包发出后,客户端和服务器进入建立状态,完成三次握手,客户端和服务器开始传输数据。在上述过程中,有一些重要的概念:

半连接:收到SYN包但没有收到ACK包时的连接状态称为半连接,即三次握手中的TCP连接还没有完全完成。

半连接队列(Semi-connected queue):在三次握手协议中,服务器维护一个半连接队列,为每个客户端的SYN包(SYN=i)打开一个条目,表示服务器已经收到SYN包,向客户端发送了确认,正在等待客户端的确认包。由这些条目标识的连接在服务器中处于SYN_ RECV状态。当服务器收到客户的确认包时,条目被删除,服务器进入已建立状态。Backlog参数:表示半连接队列的最大数量。

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

半连接存活时间:指半连接队列中条目存活的最长时间,即服务从收到SYN包到确认此消息无效的最长时间。该时间值是所有重传请求分组的最长等待时间的总和。有时,半连接存活时间也称为超时时间和SYN_RECV存活时间。以上三个参数对系统的TCP连接影响很大。

SYN flood攻击是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 ')-大量SYN包-攻击主机C'-SYN/ACK包-由于C '的地址无法到达,被攻击主机等待SYN包超时。攻击主机通过发送大量SYN包填充未连接队列,导致正常SYN包拒绝服务。此外,SYN flood攻击还可以通过发送大量ack包进行DoS攻击。攻击手段

拒绝服务攻击是一种恶意攻击,对网络危害极大。今天典型的DoS攻击方式有PingofDeath、TearDrop、UDPflood、SYNflood、LandAttack、IPSpoofingDoS等等。看他们是怎么实现的。Dos攻击快闪族的ping (pingofdeath)邓克伦。

ICMP(互联网控制消息协议)用于互联网上的错误处理和控制信息传输。最常见的ping程序就是这个函数。但是,在TCP/IP的RFC文档中,对数据包的最大大小有严格的限制。很多操作系统的TCP/IP协议栈规定ICMP包大小为64KB,在读取包的报头后,要根据报头中包含的信息为有效载荷生成一个缓冲区。

“PingofDeath”是一种畸形的测试ping (Packet Internet Gropper)包,声称其大小超过ICMP上限,即加载的大小超过64KB上限,导致无保护网络系统内存分配错误,导致TCP/IP协议栈崩溃,最终接收方宕机。

Teardrop攻击利用TCP/IP协议栈实现中可信IP片段中数据包报头所包含的信息来实现自己的攻击。IP片段包含指示该片段包含原始数据包的哪个片段的信息。一些TCP/IP协议栈(如servicepack4之前的NT)在接收到带有重叠偏移量的伪造片段时会崩溃。UDP洪水(UDP洪水)

UDPflood攻击:UDP(用户数据报协议)在互联网上被广泛使用。很多提供WWW、Mail等服务的设备,通常都是使用Unix的服务器,默认开启一些被黑客恶意利用的UDP服务。比如echo服务会显示每一个接收到的数据包,而chargen服务,原本是作为测试功能,在接收每一个数据包时会随机反馈一些字符。

UDPflood冒充攻击是利用这两个简单的TCP/IP服务的漏洞进行的恶意攻击。通过伪造与主机的Chargen服务的UDP连接,回复地址指向打开Echo服务的主机。通过将Chargen和Echo服务指向对方,来回传输无用的垃圾数据,在两台主机之间产生足够多的无用数据流。这种拒绝服务攻击会很快导致网络可用带宽的耗尽。

Synchronizing synchronous flooding (synthetic flood)

SYNflood攻击:我们知道当用户进行标准的TCP(传输控制协议)连接时,会有一个三次握手的过程。首先,请求服务提供商发送SYN(SynchronizeSequenceNumber)消息。在收到SYN之后,服务提供者将向请求者发回一个SYN-ACK进行确认。当请求者收到SYN-ACK时,它将再次向服务提供者发送ACK消息,从而成功建立TCP连接。

“SYNFlooding”是专门针对TCP协议栈在两台主机之间发起连接握手过程中的DoS攻击,在实现过程中只进行前两步:当服务器收到请求方的SYN-ack确认消息时,由于源地址欺骗等手段,请求方无法收到ack响应,因此服务器会在一定时间内处于等待接收请求方ACK消息的状态。

对于服务器来说,可用的TCP连接是有限的,因为它们只有有限的内存缓冲区来创建连接。如果该缓冲区充满了错误连接的初始信息,服务器将停止响应下一个连接,直到缓冲区中的连接尝试超时。

如果恶意攻击者快速、持续地发送这样的连接请求,服务器的可用TCP连接队列会被迅速阻塞,系统的可用资源会急剧减少,网络的可用带宽会迅速减少。这样下去,服务器将无法为用户提供正常的法律服务,除了少数幸运的用户,他们的请求可以在大量的虚假请求中得到回答。

Land(LandAttack)攻击在Land攻击中,黑客使用一个特制的SYN包——它的原始地址和目标地址都被设置为某个服务器地址来进行攻击。这将导致接收服务器向自己的地址发送SYN-ACK消息。因此,该地址将发回一个ack消息并创建一个空连接。每个这样的连接都将被保留,直到超时。在陆地攻击下,很多UNIX会崩溃,NT会变得极其缓慢(持续五分钟左右)。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再次发送合法数据,服务器没有这样的连接,用户被拒绝服务,只能重启建立新的连接。

攻击方法具体DoS攻击方法很多,但大多都可以分为以下几类:

利用软件实现的缺陷

OOB攻击(常用工具winnuke),teardrop攻击(常用工具teardrop.cboink.cbonk.c),land攻击,IGMP碎片包攻击,jolt攻击,Cisco2600路由器IOSversion12.0(10)远程拒绝服务攻击等等,这些攻击都是利用了被攻击软件的实现上的缺陷完成DoS攻击的。

通常这些攻击工具向被攻击系统发送特定类型的一个或多个报文,这些攻击通常都是致命的,一般都是一击致死,而且很多攻击是可以伪造源地址的,所以即使通过IDS或者别的sniffer软件记录到攻击报文也不能找到谁发动的攻击,而且此类型的攻击多是特定类型的几个报文,非常短暂的少量的报文,如果伪造源IP地址的话,使追查工作几乎是不可能。

软件主流程图

那么如何造成这些攻击的?通常是软件开发过程中对某种特定类型的报文、或请求没有处理,导致软件遇到这种类型的报文运行出现异常,导致软件崩溃甚至系统崩溃。下面结合几个具体实例解释一下这种攻击的成因。

1997年5月7号有人发布了一个winnuke.c。首先建立一条到Win95/NT主机的TCP连接,然后发送TCP紧急数据,导致对端系统崩溃。139/TCP是Win95/NT系统最常见的侦听端口,所以winnuke.c使用了该端口。之所以称呼这种攻击为OOB攻击,因为MSG_OOB标志,实际应该是TCP紧急数据攻击。

原始teardrop.c只构造了两种碎片包,每次同时发送这两种UDP碎片包。如果指定发送次数,将完全重复先前所发送出去的两种碎片包。它可以伪造源ip并跨越路由器进行远程攻击,影响的系统包括Linux/WinNT/Win95。使用的方法是:

teardrop源ip目的ip-s源端口-d目的端口-n次数

比较新的一个DoS攻击是Windows的SMB实现中的DoS攻击,2002年8月发布,只要允许匿名连接的windows系统就可以进行远程攻击,强烈建议Windows用户打相应的补丁。它的方法就是先和目标系统建立一个连接,然后发送一个特定的请求,目标系统就会兰屏。发布的测试工具SMBdie.exe是图形界面工具,输入目标地址NETBIOS名称即可。

从上面的讨论可以看出,这种攻击行为威力很大,而且难于侦察。但真实情况下它的危害仅现于漏洞发布后的不长的时间段内,相关厂商会很快发布补丁修补这种漏洞。所以上面提到的几种较老的攻击在现实的环境中,通常是无效的。不过最新的攻击方法还是让我们不寒而栗,我们可以做的就是关注安全漏洞的发布,及时打上新的补丁。

如果你想偷懒的话,购买专业安全服务公司的相关服务应该是个更好的选择。

利用协议的漏洞

如果说上面那种漏洞危害的时间不是很长,那么这种攻击的生存能力却非常强。为了能够在网络上进行互通、互联,所有的软件实现都必须遵循既有的协议,而如果这种协议存在漏洞的话,所有遵循此协议的软件都会受到影响。

最经典的攻击是synflood攻击,它利用TCP/IP协议的漏洞完成攻击。通常一次TCP连接的建立包括3个步骤,客户端发送SYN包给服务器端,服务器分配一定的资源给这里连接并返回SYN/ACK包,并等待连接建立的最后的ACK包,最后客户端发送ACK报文,这样两者之间的连接建立起来,并可以通过连接传送数据了。

而攻击的过程就是疯狂发送SYN报文,而不返回ACK报文,服务器占用过多资源,而导致系统资源占用过多,没有能力响应别的操作,或者不能响应正常的网络请求。

这个攻击是经典的以小搏大的攻击,自己使用少量资源占用对方大量资源。一台P4的Linux系统大约能发到3040M的64字节的synflood报文,而一台普通的服务器20M的流量就基本没有任何响应了(包括鼠标、键盘)。而且synflood不仅可以远程进行,而且可以伪造源IP地址,给追查造成很大困难,要查找必须所有骨干网络运营商,一级一级路由器的向上查找。

TCP/IP协议结构图

对于伪造源IP的synflood攻击,除非攻击者和被攻击的系统之间所有的路由器的管理者都配合查找,否则很难追查。当前一些防火墙产品声称有抗DoS的能力,但通常他们能力有限,包括国外的硬件防火墙大多100M防火墙的抗synflood的能力只有2030Mbps(64字节syn包),这里涉及到它们对小报文的转发能力,再大的流量甚至能把防火墙打死机。

有些安全厂商认识到DoS攻击的危害,开始研发专用的抗拒绝服务产品。

由于TCP/IP协议相信报文的源地址,另一种攻击方式是反射拒绝服务攻击,另外可以利用还有广播地址,和组播协议辅助反射拒绝服务攻击效果更好。不过大多数路由器都禁止广播地址和组播协议的地址。

另一类攻击方式是使用大量符合协议的正常服务请求,由于每个请求耗费很大系统资源,导致正常服务请求不能成功。如HTTP协议是无状态协议,攻击者构造大量搜索请求,这些请求耗费大量服务器资源,导致DoS。这种方式攻击比较好处理,由于是正常请求,暴露了正常的源IP地址,禁止这些IP就可以了。

进行资源比拼

这种攻击方式属于无赖打法,我凭借着手中的资源丰富,发送大量的垃圾数据侵占完你的资源,导致DoS。比如,ICMPflood,mstreamflood,Connectionflood。为了获得比目标系统更多资源,通常攻击者会发动DDoS(DistributedDos分布式拒绝服务)攻击者控制多个攻击傀儡发动攻击,这样才能产生预期的效果。

前两类攻击是可以伪造IP地址的,追查也是非常困难,第3种攻击由于需要建立连接,可能会暴露攻击傀儡的IP地址,通过防火墙禁止这些IP就可以了。对于难于追查,禁止的攻击行为,我们只能期望专用的抗拒绝服务产品了。

DoS攻击种类DoS攻击有许多种类,主要有Land攻击、死亡之ping、泪滴、Smurf攻击及SYN洪水等。

据统计,在所有黑客攻击事件中,syn洪水攻击是最常见又最容易被利用的一种DoS攻击手法。

1.攻击原理

要理解SYN洪水攻击,首先要理解TCP连接的三次握手过程(Three-wayhandshake)。在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送SYN包((SYN=i)到服务器,并进入SYN SEND状态,等待服务器确认;

第二次握手:服务器收到SYN包,必须确认客户的SYN (ACK=i+1 ),同}Jj’自己也发送一个SYN包((SYN j)}即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN十ACK包,向服务器发送确认包ACK(ACK=j+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。

在上述过程中,还有一些重要的概念:

半连接:收到SYN包而还未收到ACK包时的连接状态称为半连接,即尚未完全完成三次握手的TCP连接。

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

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

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

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

上面三个参数对系统的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‘)-----大量SYN包----》彼攻击主机

C’《-------SYN/ACK包----被攻击主机

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

2传统算法

抵御SYN洪水攻击较常用的方法为网关防火墙法、中继防火墙法和SYNcookies。为便于叙述,将系统拓扑图简化为图4-4。图中,按网络在防火墙内侧还是外侧将其分为内网、外网(内网是受防火墙保护的)。其次,设置防火墙的SYN重传计时器。超时值必须足够小,避免backlog队列被填满;同时又要足够大保证用户的正常通讯。

(1) 网关防火墙法

网关防火墙抵御攻击的基本思想是:对于内网服务器所发的SYN/ACK包,防火墙立即发送ACK包响应。当内网服务器接到ACK包后,从backlog队列中移出此半连接,连接转为开连接,TCP连接建成。由于服务器处理开连接的能力比处理半连接大得多,这种方法能有效减轻对内网服务器的SYN攻击,能有效地让backlog队列处于未满状态,同时在重传一个未完成的连接之前可以等待更长时间。

以下为算法完整描述:

第一步,防火墙截获外网客户端发向内网服务器SYN数据包,允许其通过,抵达内网服务器。同时在连接跟踪表中记录此事件。

第二步,防火墙截获服务器发向客户端的SYN/ACK响应包,用连接跟踪表中记录的相应SYN包匹配它。

第三步,防火墙让截获的SYN/ACK继续进行(发向客户端)。同时,向内网服务器发送ACK包。这样,对服务器来说,TCP连接三次握手已经完成。系统在backlog队列中删掉此半连接。

第四步,看此TCP连接是否有效,相应产生两种解决方法。如果客户端的连接尝试是有效的,那么防火墙将接到来自客户端的ACK包,然后防火墙将它转发到服务器。服务器会忽略这个冗余的ACK包,这在TCP协议中是允许的。

如果客户端的IP地址并不存在,那么防火墙将收不到来自客户端的ACK包,重转计时器将超时。这时,防火墙重传此连接。

(2) 中继防火墙法

中继防火墙抵御攻击的思想是:防火墙在向内网服务器发SYN包之前,首先完成与外网的三次握手连接,从而消除SYN洪水攻击的成立条件。

以下为算法完整描述:

第一步,防火墙截获外网客户端发向内网服务器SYN数据包。

第二步,防火墙并不直接向内网发SYN数据包,而是代替内网服务器向外网发SYNIACK数据包。

第三步,只有接到外网的ACK包,防火墙向内网发SYN包。

第四步,服务器应答SYN/ACK包。

第五步,防火墙应答ACK包。

(3) 分析

首先分析算法的性能,可以看出:为了提高效率,上述算法使用了状态检测等机制(可通过本系统的基本模块层得以实现)

对于非SYN包(CSYN/ACK及ACK包),如果在连线跟踪信息表未查找到相应项,则还要匹配规则库,而匹配规则库需比较诸多项(如IP地址、端口号等),花费较大,这会降低防火墙的流量。另外,在中继防火墙算法中,由于使用了SYN包代理,增加了防火墙的负荷,也会降低防火墙的流量。

其次,当攻击主机发ACK包,而不是SYN包,算法将出现安全漏洞。一般地,TCP连接从SYN包开始,一旦SYN包匹配规则库,此连接将被加到连接跟踪表中,并且系统给其60s延时。之后,当接到ACK包时,此连接延时突然加大到3600s。如果,TCP连接从ACK包开始,同时此连接未在连接跟踪表中注册,ACK包会匹配规则库。如匹配成功,此连接将被加到连接跟踪表中,同时其延时被设置为3600s。

即使系统无响应,此连接也不会终止。如果攻击者发大量的ACK包,就会使半连接队列填满,导致无法建立其它TCP连接。此类攻击来自于内网。因为,来自于外网的ACK包攻击,服务器会很快发RST包终止此连接(SOs》。而对于内网的外发包,其限制规则的严格性要小的多。一旦攻击者在某时间段内从内网发大量ACK包,并且速度高于防火墙处理速度,很容易造成系统瘫痪。

(4) SYN cookies

Linux支持SYN cookies,它通过修改TCP协议的序列号生成方法来加强抵御SYN洪水攻击能力。在TCP协议中,当收到客户端的SYN请求时,服务器需要回复SYN-SACK包给客户端,客户端也要发送确认包给服务器。

通常,服务器的初始序列号由服务器按照一定的规律计算得到或采用随机数,但在SYN cookies中,服务器的初始序列号是通过对客户端IP地址、客户端端口、服务器IP地址和服务器端口以及其他一些安全数值等要素进行hash运算,加密得到的,称之为cookie。

当服务器遭受SYN攻击使得backlog队列满时,服务器并不拒绝新的SYN请求,而是回复cookie(回复包的SYN序列号)给客户端,如果收到客户端的ACK包,服务器将客户端的ACK序列号减去1得到。cookie比较值,并将上述要素进行一次hash运算,看看是否等于此cookie。如果相等,直接完成三次握手(注意:此时并不用查看此连接是否属于backlog队列)。

(5)land攻击

land 攻击是一种使用相同的源和目的主机和端口发送数据包到某台机器的攻击。结果通常使存在漏洞的机器崩溃。

在Land攻击中,一个特别打造的SYN包中的原地址和目标地址都被设置成某一个服务器地址,这时将导致接受服务器向它自己的地址发送SYN一ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的连接都将保留直到超时掉。对Land攻击反应不同,许多UNIX实现将崩溃,而Windows NT 会变的极其缓慢(大约持续五分钟)。

(6)死亡之Ping

(ping of death)

对目标IP不停地Ping探测从而致使目标主机网络瘫痪。常见工具有蜗牛炸弹、AhBomb等。

由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机。

防御:现在所有的标准TCP/IP实现都已实现对付超大尺寸的包,并且大多数防火墙能够自动过滤这些攻击,包括:从windows 98之后的windows NT(service pack 3之后),Solaris、和Mac OS都具有抵抗一般ping of death攻击的能力。此外,对防火墙进行配置,阻断ICMP以及任何未知协议,都讲防止此类攻击。

ping -t(无限ping) -l(长度) 65500 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)

(7)泪滴

teardrop)

泪滴攻击利用那些在TCP/IP堆栈实现中信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指示该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括servicepack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。

防御:服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们

(8)Smurf攻击

Smurf攻击是以最初发动这种攻击的程序名“Smurf”来命名的。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。

更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃。

以上知识分享希望能够帮助到大家!