许多文章对DoS(拒绝
服务)拒绝服务攻击已经出台,但大多数人仍然不知道什么是DOS以及它是如何实现的,本文主要
介绍了DOS的机理和常见的实现
方法。TCP / IP协议,RFC
文档已经在前一段时间仔细理解。
同时,本文的一些内容涉及到轴类文章的
翻译,要了解dos攻击的机理,就必须对tcp有一定的了解。
1。什么是DoS攻击
拒绝服务,拒绝服务的
缩写,不能被认为是微软的DOS
操作系统,它似乎在5岁时开了这样一个玩笑。1。拒绝服务相当于必胜客不再让人当他们吃饱了,哈哈,你要吃饼,你要在door.dos攻击等让
目标机器停止提供服务或资源访问。
2。关于tcp协议的一些东西
TCP(
传输控制协议,传输控制协议),是用来提供可靠的,不可靠的
网络字节流协议的端到端,在RFC793中一个正式的定义,有些事情的
解决在RFC 1122中记录
错误,RFC 1323的TCP的
功能扩展。我们常见的TCP / IP协议,IP层不保证
正确的发送数据报的目的地,TCP从
本地机器接受
用户的数据流,将其分成不超过64K字节的数据块,每个数据块作为单独的IP数据包发送出去,最后目的地联合机一个完整的字节流,TCP协议必须保证reliability.tcp发送并在数据段中的数据接收一个数据段的形式包括一个固定的20字节,加上可选的部分,按照它的数据,TCP协议从发送者发送一个数据段,并开始计时,当数据到达目的地后,接收端将发送一个数据段,其中有一个
确认号码,我希望它等于一个数据段收到的序列号,如果定时器在确认超时到达之前,发送方会重发数据段。
以上,我们有一个小的TCP协议的一个大致的了解,并熟悉TCP的数据头(header)重要。因为数据流的传输是在标题中最重要的事情,作为发送数据,它只是附在头,客户端和
服务器服务响应在表头数据相关。端之间的信息交换和交换是根据报头中的内容实现的。因此,要实现dos,我们必须非常熟悉报头中的内容。
以下是TCP数据段头format.rfc793
(请注意,Web页面
显示了将下列格式
设置为错误的
空间)
0123
0123456789 0123456789 0123456789 01
+ + + + + + + + + + + + + + + + +
源端口目标端口
+ + + + + + + + + + + + + + + + +
序列号
+ + + + + + + + + + + + + + + + +
确认号
+ + + + + + + + + + + + + + + + +
数据U P R S F
偏移保留的r i y窗口
g,n,n,n,n
+ + + + + + + + + + + + + + + + +
校验和紧急指针
+ + + + + + + + + + + + + + + + +
选择填充
+ + + + + + + + + + + + + + + + +
数据
+ + + + + + + + + + + + + + + + +
TCP报头格式
源端口和目标端口:本地端口和目标端口
序号和确认号:订单号和确认号,确认号是你要接收的字节数。这
都是32位,在TCP流中,每个数据字节都有编号。
数据偏移:表示TCP报头包含32位来确定头的长度,因为头中的可选字段长度是不确定的。
保留:6个保留。现在没用了。都是0。
其次是6位1位符号,它是两台
计算机数据交换的信息标志,接收和传输中断是基于这些标志来确定信息流的
类型:
URG:(紧急指针字段有效)急救指针。所用的时间值是1,这是用来
处理TCP数据流的避免中断
应答(确认字段有效)设置为1,表示确认号(确认号)是合法的。在0时,它表示数据段不包含确认信息,并且确认号码被忽略。
PSH:(推送功能),将标记的数据,数据段1要求在接收机可以直接发送到
应用程序,而不必等到缓冲区满时,发送。
RST:(重设
连接)用于重置由某些
原因引起的错误连接,也用于拒绝非法数据和请求。如果接收到RST位,通常会出现一些错误。
SYN(
同步序列号)用于在连接请求、SYN = 1、ACK = 0、SYN = 1、应答=1之间建立连接,也就是说,SYN和ACK用于区分连接请求和接受连接。
鳍(没有来自发送方的数据)用于释放连接,表明发送方没有发送数据。
在知道了6个重要的标志之后,我们继续。
16位窗口字段:表示在确认字节后可以发送多少字节。可能是0,表示已经接收到所有数据段,包括确认号减去1(即所有数据已发送)。
接下来,使用16位校验和字段确保可靠性。
16位紧急指针,下面的字段没有在这里解释。否则,太多了。哦,懒惰。
我们进入TCP连接握手过程中的一个更重要的部分。这个过程简单地分为三个
步骤。
在没有连接的
情况下,接收方(我们反对服务器),服务器处于侦听状态,
等待其他机器发送连接请求。
第一步是向客户端发送带有SYN比特的请求,并向服务器表示连接,例如,发送包假设请求序列号为10,然后是:SYN = 10,ACK = 0,然后等待服务器的响应。
第二步:如果服务器收到这样的请求,它会是指定的端口在听,否则,它会发送RST = 1回复和拒绝建立连接。如果接收服务器的连接,然后发送确认,同是一个代码的服务器,假设为100,ACK 1和客户端的请求数,在传输数据的情况是:SYN = 100,ACK = 11,数据发送到客户端,客户端,服务器连接准备等待客户的确认
当客户端收到
消息时,对消息进行分析,并将确认连接
信号发送给服务器。
第三步:客户端将消息发送到服务器确认连接。信息的SYN比特确认是服务器发送的ACK位,ACK位是服务器发送的SYN比特加1。即:SYN=11,ACK=101。
此时,连接已经建立,然后发送数据。这是一个基本请求和连接过程。需要注意的是这些标记之间的关系,如SYN、ACK 3。服务器的缓冲队列(积压队列)。
服务器不在同一时间在收到SYN请求的客户端连接,但连接请求分配
内存空间,建立会话,并进入等待队列。如果等待队列已满,那么服务器不分配任何新的连接和新的要求直接丢弃如果是这种情况,服务器拒绝服务。
如果服务器接收到一个RST位信息,则被认为是一个错误的数据段,该段将根据客户机IP从缓冲队列中
删除,这对IP欺骗有
影响,也可以用来进行DoS攻击。
上面的介绍,我们了解了tcp协议和连接过程,为了实现对服务器的拒绝服务攻击,本质上有两个。
首先,强制服务器的缓冲区满了,不能接收新的请求。
二是使用IP欺骗,迫使服务器重设合法用户的连接,影响合法用户的连接。
这是dos攻击实现的基本思想,该方法的具体实现是:
1、SYN洪水
通过使用服务器的积压队列,TCP头是由特殊的程序设置,而只有SYN标志的TCP连接请求被发送到服务器端反复。当服务器收到的,它被认为是一个连接请求是不成立的,然后一个会话设置这些请求和缓存队列中排队。
如果SYN请求超过服务器容量的限制,缓冲队列已满,则服务器将不再接收新请求。其他合法用户的连接被拒绝。您可以继续您的SYN请求,直到缓冲区是您唯一的SYN标记请求为止。
现在有很多
工具来实现SYN洪水。哦,你自己找吧。
2,IP欺骗DoS攻击
这种攻击利用RST位实现。假设一个合法用户(1.1.1.1)已与服务器正常连接。攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并发送了一个TCP数据段与一位服务器接收数据后,认为从1.1.1.1发送服务器连接错误,将
清理好的连接缓冲区。在这一点上,如果合法用户1.1.1.1发送合法数据,服务器已经没有这样的连接,而用户必须从新开始建立连接。
攻击时,大量IP
地址被伪造,RST数据被发送到目标,因此服务器不为合法用户服务。
3,带宽DoS攻击
如果你的连接带宽足够大时,服务器不是很大,你可以发送请求给服务器的缓冲区消耗和消耗服务器的带宽。这种攻击的人很多,结合同步实现DOS,巨大的力量,它只是一个DOS攻击。哈哈 u3002ping白宫你疯了!
4,自我消费DoS攻击
这是一个老式的攻击。旧的风格是因为过时的系统具有这样的错误。例如,Win95(Winsock V1)、思科轨道间航天器。10。x,和其他过时的系统。
此DoS攻击与请求客户端IP和端口作为主机的IP端口相同,并将其发送给主机。主机发送TCP请求和连接到自己。主机的漏洞会很快消耗资源。直接原因导致崩溃。这种伪装对某些身份认证系统是一个巨大的威胁。
实现DoS攻击的最重要手段是构造所需的TCP数据,充分利用tcp协议,这些攻击方法都是基于TCP的,还有其他DoS攻击。
5。装满服务器的
硬盘 通常,如果服务器可以无限制地
执行写操作,那么它可以是一种填充硬盘以引起DoS攻击的方法,如:
发送垃圾邮件。通用
公司的服务器可以把邮件服务器和Web服务器放在一起。破坏者可以发送大量的垃圾邮件,这些消息可能被
打包在消息队列或坏消息队列中,直到邮箱坏掉或硬盘满了。
保持日志完整。入侵者可以构建大量错误信息发送出去。服务器记录这些错误,这可能导致日志
文件庞大,甚至是硬盘,同时也会让
管理员面临大量的
登录痛苦,甚至找不到入侵者真正的入侵。
匿名FTP
插件垃圾文件。这也可以填补硬盘空间。
6,合理利用战略
一般服务器有一个帐户锁定的
安全策略,例如,一个帐户将被锁定为
连续3次
故障。这也可以被驱逐舰使用。他们伪装帐户出错,因此帐户被锁定,合法用户不能使用此帐户登录。