分布式拒绝服务攻击教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DoS&DDoSDoS即DenialOfService,拒绝服务的缩写。在介绍DoS之前,首先,先说明为什么需要有Dos这一网络“拒绝服务”制式。准备知识1.TCP协议总述TCP(transmissioncontrolprotocol,传输控制协议)。TCP报文段是在运输层抽象的端到端逻辑中传送。这种信道采用全双工信道,即在TCP连接的任何一方都能够发送与接收数据。发送端的应用进和按照自己产生的数据的规律,不断地将数据块陆续写入到TCP的发送缓存中。TCP再从发送缓存中取出一定数量的数据,将其组成TCP报文段依次传送给下层(IP层以下),然后发送出去。2.TCP的报文首部由于TCP/IP的协议体系结构采用的是分层次结构,即上层的服务数据信息对于本层是相对独立的,一般情况下,本层的协议只提取出上层信息的相关服务信息部分后,就不在关心信息本身的内容,只作为本层的数据信息部分,所以,对于每一个网络协议,我们更关心的是这个协议所对应的协议的首部是怎么组成的。TCP的报文段首部SourcePortDestinationPortSequenceNumberAcknowledgmentNumberDataoffsetReservedURGACKPSHRSTSYNFINWINDOWChecksumUrgentPointerOptionPadding这里只说明几个与Dos相关的协议字段:①SourcePort和DestinationPort:是本地端口和目标端口②SequenceNumber和AcknowledgmentNumber:是顺序号和确认号,确认号是希望接收的字节号。这都是32位的,在TCP流中,每个数据字节都被编号。③Dataoffset:表明TCP头包含多少个32位字,用来确定首部的长度,因为首部中可选字段(Option)长度是不定的。④URG:(UrgentPointerfieldsignificant)紧急指针。用到的时候值为1,用来处理避免TCP数据流中断。⑤ACK:(Acknowledgmentfieldsignificant)置1时表示确认号(AcknowledgmentNumber)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。⑥PSH:(PushFunction),PUSH标志的数据,置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。⑦RST:(Resettheconnection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。⑧SYN:(Synchronizesequencenumbers)用来建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1。即,SYN和ACK来区分ConnectionRequest和ConnectionAccepted。⑨FIN:(Nomoredatafromsender)用来释放连接,表明发送方已经没有数据发送了。⑩16位的WINDOW字段:表示确认了字节后还可以发送多少字节。可以为0,表示已经收到包括确认号减1(即已发送所有数据)在内的所有数据段。3.“三次握手”(three-wayhandshake)运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。连接建立过程中要解决以下三个问题:①要使每一方能够确知对方的存在。②要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。③能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。TCP的连接和建立都是采用客户服务器(C/S)方式。主动发起连接建立的应用进和叫做客户(client),而被动等待连接建立的应用进程叫做服务器(server)。第一次握手:主机B(客户)发送一个带SYN位的请求,向服务器表示需要连接,比如发送包假设请求序号为10,那么则为:SYN=10,ACK=0,然后待服务器的响应。第二次握手:主机A(服务器)接收到这样的请求后,查看是否在LISTEN的是指定的端口,不然,就发送RST=1应答,拒绝建立连接。如果接收连接,那么主机A发送确认,SYN为主机A的一个内部序号,假设为100,ACK位则是主机B的请求序号加1,本例中发送的数据是:SYN=100,ACK=11,用这样的数据发送给主机B。向客户端表示,主机A连接已经准备好了,等待主机B的确认这时主机B接收到消息后,分析得到的信息,准备发送确认连接信号到主机A第三次握手:主机B发送确认建立连接的消息给主机A。确认信息的SYN位是主机A发送的ACK位,ACK位是主机A发送的SYN位加1。即:SYN=11,ACK=101。这时,连接已经建立起来了。然后发送数据。之所以要介绍TCP的认证机制,就是因为DoS主要就是利用TCP的“三次握手认证”机制,进行攻击的。什么是DOS攻击DOS:即DenialOfService,拒绝服务的缩写,DOS攻击即攻击者想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。比如:*试图FLOOD服务器,阻止合法的网络通讯*破坏两个机器间的连接,阻止访问服务*阻止特殊用户访问服务*破坏服务器的服务或者导致服务器死机正是因为TCP是一种面向连接的协议,所以它采用了多种服务机制来保证连接的可靠性,如:流量控制、拥塞控制,一旦出现数据流量过大所产生的拥塞就会使服务器拒绝客户提出的连接请求。正是因为TCP的这种拒绝机制,给Dos有了可乘之机。试想,如果有客户大量的向服务器扔送无用的数据报文段,使服务器因为数据流的过多,而拒绝了超过了它上限值的以外的数据。从而导致其它真正的想使用服务器的客户被拒之门外,就会造成不必要的浪费。这也就是Dos的核心内容了。步骤A:首先,攻击者利用自己的控制机找到一个跳板机,向跳板机发出受害机的命令参数。至于发了哪些命令参数将在Dos的编辑过程做解释。步骤B:跳板机收到控制机的命令后,向受害机大量发送无用数据报文段,使得受害机疲于应付那些无数数据。跳板机的作用:如果控制机与受害机直接相连,设想,如果这时受害机已经查出是是哪一台机子发出的Dos时,就会把黑客自己的身份暴露。那如果在受害机察觉以前把控制机的“脚印”全部删除不就可以了?如果你只想攻击受害机一次,那么有无跳板机都可,但如果你想多次攻击受害机,那么你每次都要把自己控制机上的“脚印”删除的干净(包括相关的原代码),这样当你下次要想再攻击受害机时,等于是要重新再建立攻击过程。如果中间有一个跳板机,那么你只需要如在跳板机上的“脚印”删除即可,这样受害机当查到跳板机时,线索就断开了。所以有一个跳板机的作用会使黑客自己本身更加安全。通常DOS攻击是作为入侵者入侵他人系统的一种方法,很少单独使用。入侵的思路就是:目标机发送大量无用的数据,使目标机疲于对付这些无用数据,而造成系统的迟钝缓慢,这就犹如“一心不能两用”一样,这样,入侵者就可以在潮水般的攻击中混骗过入侵检测系统。入侵的方法由以下几种:1、SYN洪水攻击利用服务器的连接缓冲区(BacklogQueue),利用特殊的程序,设置TCP的Header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。如果你的SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了。其他合法用户的连接都被拒绝掉。可以持续你的SYN请求发送,直到缓冲区中都是你的只有SYN标记的请求。这种方法的好处就在于,不用事先去探测别人的IP,直截了当的去占领缓冲区,方法比较简单,但是由于利用的是自己的IP,所以身份比较容易暴露,在使用这种攻击思路时,对自己的主机的隐蔽性一定要做好,最简单的方法就是多使用几台傀儡机,但是在入侵后,对傀儡机的痕迹清扫也随之变得复杂而麻锁。2、IP欺骗DOS攻击这种攻击利用RST位来实现。假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。这种方法的好像就是不易被主机发现,但是缺点就在于要事先知道该主机的一个合法用户的IP地址,有时还要知道IP地址对应的端口号。而在大部分的合法客户的IP地址都是随机的,所以如果每次都想用同一个用户的IP很难做到,所以每次都要进行IP合法用户探询。3、带宽DOS攻击如果你的连接带宽足够大而服务器又不是很大,你可以发送请求,来消耗服务器的缓冲区消耗服务器的带宽。这种攻击就是人多力量大了,配合上SYN一起实施DOS,威力巨大。这种方法是比较初级DOS攻击,显然并不试用于攻击大型的服务器。随着宽带的不断提高,与计算机的越来越好,使得计算机有足够的能力来对付这种攻击,这种方法已经开始不试用了。4、自身消耗的DOS攻击这种DOS攻击就是把请求客户端IP和端口弄成主机的IP端口相同,发送给主机。使得主机给自己发送TCP请求和连接。这种主机的漏洞会很快把资源消耗光。直接导致死机。这中伪装对一些身份认证系统还是威胁巨大的。这种攻击的方式,它的伪装比较好,俗话说“最危险的地方就是最安全的地方”,也正是因为入侵者利用的服务机自身的IP,使得服务器自身很难找到入侵者是谁,这种攻击的方法最终都是因为“死锁”而造成死机的。上面这些实施DOS攻击的手段最主要的就是构造需要的TCP数据,充分利用TCP协议。这些攻击方法都是建立在TCP基础上的。还有其他的DOS攻击手段。5、塞满服务器的硬盘通常,如果服务器可以没有限制地执行写操作,那么都能成为塞满硬盘造成DOS攻击的途径,比如:发送垃圾邮件。一般公司的服务器可能把邮件服务器和WEB服务器都放在一起。破坏者可以发送大量的垃圾邮件,这些邮件可能都塞在一个邮件队列中或者就是坏邮件队列中,直到邮箱被撑破或者把硬盘塞满。让日志记录满。入侵者可以构造大量的错误信息发送出来,服务器记录这些错误,可能就造成日志文件非常庞大,甚至会塞满硬盘。同时会让管理员痛苦地面对大量的日志,甚至就不能发现入侵者真正的入侵途径。向匿名FTP塞垃圾文件。这样也可以塞满硬盘空间。总之,拒绝服务一般都是通过过载而导致服务器死机的,而过载一般是因为请求到达了极限。DDoS简介DDoS的中文名叫分布式拒绝服务攻击,俗称洪水攻击DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。这时侯分布式的拒绝服务攻击手段(DDoS)就应运而生了。在理解了DoS攻击的基础上,理解DDoS的原理并不难。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,入侵者占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功