DOS(Denial of Service,即拒绝服务)攻击

DOSDenial of Service ,即拒绝服务)攻击

本文主要介绍 DOS 的机理和常见的实施方法。要想了解 DOS 攻击得实现机理,必须对 TCP 有一定的了解。


   1 、什么是 DOS 攻击

   DOS :即 Denial Of Service ,拒绝服务的缩写,可不能认为是微软的 dos操作系统 了。好象在 5·1 的时候闹过这样的笑话。拒绝服务,就相当于必胜客在客满的时候不再让人进去一样,呵呵,你想吃馅饼,就必须在门口等吧。 DOS 攻击即让目标机器停止提供服务或资源访问。

   2 、有关 TCP 协议的东西

    TCP transmission control protocol ,传输控制协议),是用来在不可 * 的因特网上提供可 * 的、端到端的字节流通讯协议,在 RFC793 中有正式定义,还有一些解决错误的东西 RFC 1122 中有记录, RFC 1323 则有 TCP 的功能扩展。我们常见到的 TCP/IP 协议中, IP 层不保证将数据报正确传送到目的地, TCP 则从本地机器接受用户的数据流,将其分成 不超过 64K 字节的数据片段,将每个数据片段作为单独的 IP 数据包发送出去,最后在目的地机器中再组合成完整的字节流, TCP 协议必须保证可 * 性。发送和 接收方的 TCP 传输以数据段的形式 交换 据,一个数据段包括一个固定的 20 字节,加上可选部分,后面再跟上数据, TCP 协议从发送方传送一个数据段的时候,还要启动计时器,当数据段到达目的地 后,接收方还要发送回一个数据段,其中有一个确认序号,它等于希望收到的下一个数据段的顺序号,如果计时器在确认信息到达前超时了,发送方会重新发送这个 数据段。

  上面,我们总体上了解一点 TCP 协议,重要的是要熟悉 TCP 的数据头( header )。因为数据流的传输最重要的就是 header 里面的东西,至于发送的数据,只是 header 附带上的。客户端和服务端的服务响应就是同 header 里面的数据相关,两端的信息交流和 交换 是根据 header 中的内容实施的,因此,要实现 DOS ,就必须对 header 中的内容非常熟悉。

  下面是 TCP 数据段头格式。 RFC793 中的
  (请大家注意网页显示空格使下面的格式错位了)

   0 1 2 3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Source Port | Destination Port |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Sequence Number |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Acknowledgment Number |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Data | |U|A|P|R|S|F| |
   | Offset| Reserved |R|C|S|S|Y|I| Window |
   | | |G|K|H|T|N|N| |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Checksum | Urgent Pointer |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Options | Padding |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | data |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

TCP Header Format

   Source Port Destination Port : 是本地端口和目标端口
   Sequence Number Acknowledgment Number :是顺序号和确认号,确认号是希望接收的字节号。这都是 32 位的,在 TCP 流中,每个数据字节都被编号。
   Data offset : 表明 TCP 头包含多少个 32 位字,用来确定头的长度,因为头中可选字段长度是不定的。
   Reserved : 保留的 6 位,现在没用,都是 0

  接下来是 6 1 位的标志,这是两个计算机数据交流的信息标志。接收和发送断根据这些标志来确定信息流的种类。下面是一些介绍:
   URG :( Urgent Pointer field significant )紧急指针。用到的时候值为 1 ,用来处理避免 TCP 数据流中断
   ACK :( Acknowledgment field significant )置 1 时表示确认号( Acknowledgment Number )为合法,为 0 的时候表示数据段不包含确认信息,确认号被忽略。
   PSH :( Push Function ), PUSH 标志的数据,置 1 时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。
   RST :( Reset the connection )用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到 RST 位时候,通常发生了某些错误。
    SYN :( Synchronize sequence numbers )用来建立连接,在连接请求中, SYN=1 ACK=0 ,连接响应时, SYN=1 ACK=1 。即, SYN ACK 来区分 Connection Request Connection Accepted
   FIN :( No more data from sender )用来释放连接,表明发送方已经没有数据发送了。

  知道这重要的 6 个指示标志后,我们继续来。

   16 位的 WINDOW 字段:表示确认了字节后还可以发送多少字节。可以为 0 ,表示已经收到包括确认号减 1 (即已发送所有数据)在内的所有数据段。
  接下来是 16 位的 Checksum 字段,用来确保可 * 性的。
   16 位的 Urgent Pointer ,和下面的字段我们这里不解释了。不然太多了。呵呵,偷懒啊。

  我们进入比较重要的一部分: TCP 连接握手过程。这个过程简单地分为三步。

  在没有连接中,接受方(我们针对 服务器 ), 服务器 处于 LISTEN 状态,等待其他机器发送连接请求。

  第一步:客户端发送一个带 SYN 位的请求,向 服务器 表示需要连接,比如发送包假设请求序号为 10 ,那么则为: SYN=10 ACK=0 ,然后等待 服务器 的响应。

  第二步: 服务器 接收到这样的请求后,查看是否在 LISTEN 的是指定的端口,不然,就发送 RST=1 应答,拒绝建立连接。如果接收连接,那么 服务器 发送确认, SYN 服务器 的一个内码,假设为 100 ACK 位则是客户端的请求序号加 1 ,本例中发送的数据是: SYN=100 ACK=11 ,用这样的数据发送给客户端。向客户端表示, 服务器 连接已经准备好了,等待客户端的确认

这时客户端接收到消息后,分析得到的信息,准备发送确认连接信号到 服务器

  第三步:客户端发送确认建立连接的消息给 服务器 。确认信息的 SYN 位是 服务器 发送的 ACK 位, ACK 位是 服务器 发送的 SYN 位加 1 。即: SYN=11 ACK=101

  这时,连接已经建立起来了。然后发送数据,。这是一个基本的请求和连接过程。需要注意的是这些标志位的关系,比如 SYN ACK

   3 服务器 的缓冲区队列( Backlog Queue

   服务器 不会在每次接收到 SYN 请求就立刻同客户端建立连接,而是为连接请求分配内存空间,建立会话,并放到一个等待队列中。如果,这个等待的队列已经满了,那么, 服务器 就不在为新的连接分配任何东西,直接丢弃新的请求。如果到了这样的地步, 服务器 就是拒绝服务了。
  如果 服务器 接收到一个 RST 位信息,那么就认为这是一个有错误的数据段,会根据客户端 IP ,把这样的连接在缓冲区队列中清除掉。这对 IP 欺骗有影响,也能被利用来做 DOS 攻击。

  上面的介绍,我们了解 TCP 协议,以及连接过程。要对 SERVER 实施拒绝服务攻击,实质上的方式就是有两个:
  
   : 迫使 服务器 的缓冲区满,不接收新的请求。
  
   : 使用 IP 欺骗,迫使 服务器 把合法用户的连接复位,影响合法用户的连接
  
  这就是 DOS 攻击实施的基本思想。具体实现有这样的方法:
  
   1 SYN FLOOD
  
  利用 服务器 的连接缓冲区( Backlog Queue ),利用特殊的程序,设置 TCP Header ,向 服务器 端不断地成倍发送只有 SYN 标志的 TCP 连接请求。当 服务器 接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。
  
  如果你的 SYN 请求超过了 服务器 能容纳的限度,缓冲区队列满,那么 服务器 就不再接收新的请求了。其他合法用户的连接都被拒绝掉。可以持续你的 SYN 请求发送,直到缓冲区中都是你的只有 SYN 标记的请求。
  
  现在有很多实施 SYN FLOOD 的工具,呵呵,自己找去吧。
  
   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 数据,使 服务器 不对合法用户服务。

3 带宽 DOS 攻击
  
  如果你的连接带宽足够大而 服务器 又不是很大,你可以发送请求,来消耗 服务器 的缓冲区消耗 服务器 的带宽。这种攻击就是人多力量大了,配合上 SYN 一起实施 DOS ,威力巨大。不过是初级 DOS 攻击。呵呵。 Ping 白宫??你发疯了啊!
  
   4 自身消耗的 DOS 攻击
  
  这是一种老式的攻击手法。说老式,是因为老式的系统有这样的自身 BUG 。比如 Win95 (winsock v1), Cisco IOS v.10.x, 和其他过时的系统。
  
  这种 DOS 攻击就是把请求客户端 IP 和端口弄成主机的 IP 端口相同,发送给主机。使得主机给自己发送 TCP 请求和连接。这种主机的 漏洞 会很快把资源消耗光。直接导致当机。这中伪装对一些身份认证系统还是威胁巨大的。
  
  上面这些实施 DOS 攻击的手段最主要的就是构造需要的 TCP 数据,充分利用 TCP 协议。这些攻击方法都是建立在 TCP 基础上的。还有其他的 DOS 攻击手段。
  
   5 塞满 服务器 的硬盘   
  通常,如果 服务器 可以没有限制地执行写操作,那么都能成为塞满硬盘造成 DOS 攻击的途径,比如: 发送垃圾邮件。一般公司的 服务器 可能把邮件 服务器 WEB服务器 都放在一起。破坏者可以发送大量的垃圾邮件,这些邮件可能都塞在一个邮件队列中或者就是坏邮件队列中,直到 邮箱 被撑破或者把硬盘塞满。   
  让日志记录满。入侵者可以构造大量的错误信息发送出来, 服务器 记录这些错误,可能就造成日志文件非常庞大,甚至会塞满硬盘。同时会让管理员痛苦地面对大量的日志,甚至就不能发现入侵者真正的入侵途径。 向匿名 FTP 塞垃圾文件。这样也可以塞满硬盘空间。   


   6 合理利用策略
  
  一般 服务器 都有关于帐户锁定的安全策略,比如,某个帐户连续 3 次登陆失败,那么这个帐号将被锁定。这点也可以被破坏者利用,他们伪装一个帐号去错误登陆,这样使得这个帐号被锁定,而正常的合法用户就不能使用这个帐号去登陆系统了。

 

【网络攻防实验】【北京航空航天大学】【实验二、拒绝服务攻击Denial of Service, DoS)和分布式拒绝服务攻击(Distributed DoS, DDoS)实验】 s参数:每次发送的连接(报文)数 sockets (默认:500)-w参数:启动的攻击函数实例数 workers (默认:10)在本次实验中,当-s参数设置为30左右、-w参数设置为10左右时,击中的GoldenEye报文数最多。拒绝服务攻击是一种强有力的网络攻击手段,它可以消耗目标主机或者服务器的计算资源,甚至导致其瘫痪,服务器无法提供服务。本次实验进行了简单的拒绝服务攻击和分布式拒绝服务攻击的演练,分析了拒绝服务攻击行为对于攻击者和受害者双方的影响。 阅读详情

相关推荐

UE4_后期处理六—夜视仪、扫描线

观察下面一组蓝图节点的效果:当把角色的自定义深度通道开启:画面效果如图:这样我们就得到了一个这样的黑白蒙版。

Growthofnotes的博客 1709

【项目实战】拒绝服务Denial-of-Service (DoS)攻击

拒绝服务Denial-of-ServiceDoS攻击 - 全称为拒绝服务攻击 - 是一种网络攻击手段 - 是一种恶意的网络攻击 - 是一种使计算机或网络无法提供正常服务的攻击方式。

奶爸的编程之路,也就一周冷个三天 944

别再手动续期SSL证书了!用acme.sh配合阿里云DNS API,实现全自动HTTPS证书管理

本文详细介绍了如何使用acme.sh配合阿里云DNS API实现SSL/TLS证书的全自动管理,彻底解决手动续期带来的风险与不便。通过自动化部署流程,包括环境准备、API集成、多域名证书申请等关键步骤,帮助运维人员构建高效、可靠的HTTPS证书管理体系,显著提升安全性和运维效率。

weixin_29200485的博客 249

DoS攻击

原文DoS攻击(Denial of Service,拒绝服务攻击)通过消耗计算机的某种资源,例如计算资源、网络连接等,造成资源耗尽,导致服务端无法为合法用户提供服务或只能提供降级服务。在SDN网络的集中式架构中,控制器是天然的网络中心,负责整个网络的管理和控制工作,很容易成为DoS攻击的目标。在OpenFlow网络架构中,控制器是网络的核心,承担了整个网络的控制管理工作;控制器需要对整个网络进行不同粒度的管理,网络本身的数据传输需求会对控制层面造成不小的压力;尤其当存在恶意攻击时,控制层面甚至可能无法对合法

ss810540895的博客 7503

java安全编码指南之:拒绝Denial of Service

DOS不是那个windows的前身,而是Denial of Service,有做过系统安全方面的小伙伴可能对这个再熟悉不过了,简单点讲,DOS就是服务型响应不过来,从而拒绝了正常的服务请求。 今天本文不是要讲怎么发起一个DOS攻击,而是讲一下怎么在java的代码层面尽量减少DOS的可能性。

程序那些事 2万+

DOSDenial of Service,即拒绝服务

 DOSDenial of Service,即拒绝服务)本文主要介绍DOS的机理和常见的实施方法,要想了解DOS攻击得实现机理,必须对TCP有一定的了解。     1、什么是DOS攻击    DOS:即Denial Of Service拒绝服务的缩写,可不能认为是微软的dos操作系统了。好象在5•1的时候闹过这样的笑话拒绝服务,就相当于必胜客在客满的时候不再让人进去一样,呵呵,你想吃馅饼

阿太 Jin 的专栏 3133

拒绝服务攻击/分布式拒绝服务攻击

拒绝服务(Denial of Service,简称DoS) 是一种简单的破坏性攻击。通常是利用传输协议下的某个弱点、系统存在的漏洞、或服务器的漏洞。对目标系统发起大规模的进攻。用超出目标处理能力的海量数据包消耗可用系统资源、宽带资源等,造成程序缓冲区溢出错误,使其他合法用户无法正常请求。最终致使网络服务瘫痪,甚至系统死机。 拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为网络协议本身的安...

wikowin的专栏 1万+

DDoS-分布式拒绝服务攻击

DoS与DDo S简介 DoSDenial of Service 拒绝服务攻击)是一种历史悠久的网络攻击手法,短时间内对目标服务器产生大量请求,使服务器链路拥塞或忙于处理攻击请求,导致服务暂时中断或停止,导致其正常用户无法访问。 DDoS(Distributed Denial of Service分布式拒绝服务攻击)将多台计算机(僵尸网络)联合起来作为攻击平台,通过远程连接对一个或多个目标发动DoS攻击。目的消耗目标服务器性能或网络带宽,从而造成服务器无法为用户正常地提供服务。 网络通信原

u012002125的博客 2631

拒绝服务攻击Denial of ServiceDoS

拒绝服务攻击Denial of ServiceDoS)是一种网络攻击方式,攻击者通过向服务器发送大量垃圾信息或干扰信息,导致服务器无法向正常用户提供服务。

MEGREZJQ的博客 1344

智能合约中的拒绝服务攻击 (Denial of Service - DoS) 详解

拒绝服务攻击DoS)是智能合约安全中的一个重要问题,攻击者通过消耗合约资源、滥用合约逻辑或阻塞合约的关键功能,可能会导致合约无法正常运作。如果这些外部合约的函数存在问题(例如,因恶意设计导致的高Gas消耗),则可能导致当前合约的执行失败,从而使合约的操作受到影响。智能合约的去中心化和不可更改特性使其特别容易受到DoS攻击,特别是当合约的逻辑存在缺陷或合约与其他合约进行交互时,攻击者可以利用这些漏洞来恶意占用资源、消耗Gas或者通过其他方式使合约停滞。函数接收一个大数组并将所有数据添加到。

2201_75798391的博客 1105

DoSDenial of Service拒绝服务) 和 DDoS(Distributed Denial of Service,分布式拒绝服务攻击原理和防范措施

DoS 攻击通常由单个攻击源发起,攻击形式相对简单,防御方法也较为直接。DDoS 攻击则是通过多个分布式攻击源来发起,攻击规模和复杂性更大,防御难度也更高,需要采用更加分布式和多层次的防御手段。防范 DDoS 攻击通常需要结合多种技术,包括流量清洗、速率限制、分布式防御服务等。而对于 DoS 攻击,则主要通过资源管理、输入过滤和负载均衡来加以防护。应对 DoS 和 DDoS 攻击不仅需要合理的技术防护手段,还需要定期的安全演练和风险评估。

qq_47742555的博客 1286

拒绝服务攻击DoS, Denial of Service

当一个服务器处理多个客户时,它决不能阻塞于只与单个客户相关相关的某个函数调用,否则可能导致服务器呗挂起,拒绝为其他客户服务。这就是“拒绝服务denial of service)型攻击”。可能解决办法:(1)使用非阻塞式I/O;(2)让每个客户由单独的线程提供服务;(3)为I/O操作设置一个超时。

linux系统、网络编程和分布式计算 2438

#2025年OWASP TOP 10# 一文搞懂什么是Denial of Service (DoS) Attacks拒绝服务DoS攻击!!!

拒绝服务Denial of Service,简称DoS攻击是一种常见的网络安全威胁,其目的是通过各种手段使目标计算机或网络无法提供正常的服务或资源访问,从而使目标系统服务系统停止响应甚至崩溃。这种攻击会导致资源的匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果3。攻击类型拒绝服务DoS)分布式拒绝服务(DDoS攻击方式一对一攻击多对一攻击(分布式)攻击源单个攻击源多个攻击源(僵尸网络)攻击效果相对有限显著且难以防御防御难度较低。

soc的博客 1402

区块链安全常见的攻击分析——拒绝服务攻击 (Denial of Service-DOS)King合约【11】

在合约游戏中,新玩家通过发送比当前 King 更多的代币来成为新的 King,同时合约会将原 King 的代币退回。如果原 King 是一个合约地址,并且合约没有实现 receive 或 fallback 函数来接收代币,退回代币的 call 操作会失败,从而导致整个合约无法继续运行,游戏中断。

weixin_43458715的博客 1253

DoS拒绝服务攻击Denial of Service Attack介绍(通过消耗目标系统资源,使合法用户无法正常访问服务)流量型攻击Volume-based协议攻击Protocol Attack

DoS拒绝服务攻击)是一种通过消耗目标系统资源,使合法用户无法正常访问服务的攻击方式。👉 简单理解就是:攻击者不是“入侵系统”,而是“把系统挤爆”。用资源消耗击垮服务可用性核心:资源耗尽类型:流量型 / 协议型 / 应用层升级版:DDoS(分布式)防御:多层次 + 架构设计。

Dontla的博客 543

DoSDenial of Service拒绝服务攻击)的核心目标是 **“破坏可用性”**——即通过消耗目标系统的核心资源(带宽、CPU、内存、连接数等)

### 三、易混淆攻击类型对比(避免选型错误) | 攻击类型 | 核心目的 | 典型手段 | |----------------|-----------------------------------|-----------------------------------| | **DoS攻击** | 使目标无法提供正常服务(破坏可用性) | SYN洪水、UDP洪水、漏洞崩溃攻击 |

[Blog][Domain] programb.blog.csdn.net 105

php+dos攻击程序,php DOS攻击实现代码(附如何防范)

index.php$ip = $_SERVER['REMOTE_ADDR'];?>PHP DoS, Coded by EXEYour IP: (Don't DoS yourself nub)IP:Time:Port:After initiating the DoS attack, please wait while the browser loads.function.php//=====...

weixin_33376046的博客 157

网络安全随笔() | SYN Flood攻击

SYN攻击Dos攻击之一,注意此处的Dos 指的是Denial of Service,简写DOS。新人千万别以为是dos操作系统。下面上干货。 有关tcp的介绍,已经在 互联网协议解析() | TCP 与UDP  中进行了全面的介绍。如果有需要的话,还是可以看看的。我们再回顾一下 TCP的三次握手。 在建立链接前,服务器已经开启,等待来自客户端(无论浏览器还是app等,此处把用户侧都称之为...

tyltr的博客 659

lisp语言用Delaunay三角网法求土石方量

程序说明:本程序为lisp语言编写的AutoCAD二次开发程序,包括lisp源程序代码和程序测试图。本程序适合AutoCAD二次开发初学者学习之用,代码比较简单,所用函数也都是基本的函数,并且程序中包含详细注释。适合大学测绘、采矿等工科类学生学习使用。本程序程序功能:三角网法土石计算,采用“插点法”构建Delaunay三角网,并求出土石方总体积。说明:插点法构建Delaunay三角网程序来自AutoDesk讨论组。

上一篇: SyncML协议简述
下一篇: linux gzip 命令详解
powerclark
博客等级 码龄22年 12粉丝 130原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值