本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/50

简单的Dos攻击-死亡之Ping

最简单的基于IP的攻击可能要数著名的死亡之ping,这种攻击主要是由于单个包的长度超过了IP协议规范所规定的包长度。产生这样的包很容易,事实上,许多操作系统都提供了称为ping的网络工具。在为Windows操作系统中开一个DOS窗口,输入ping -l 65500 目标ip -t (65500 表示数据长度上限,-t 表示不停地ping目标地址)就可达到该目的。UNIX系统也有类似情况。

通俗来说,就是对方IP内存溢出,达到使对方系统崩溃的效果

一、如何工作呢?

死亡之ping是如何工作的呢?首先是因为以太网长度有限,IP包片段被分片。当一个IP包的长度超过以太网帧的最大尺寸(以太网头部和尾部除外)时,包就会被分片,作为多个帧来发送。接收端的机器提取各个分片,并重组为一个完整的IP包。在正常情况下,IP头包含整个IP包的长度。当一个IP包被分片以后,头只包含各个分片的长度。分片并不包含整个IP包的长度信息,因此IP包一旦被分片,重组后的整个IP包的总长度只有在所在分片都接受完毕之后才能确定。

在IP协议规范中规定了一个IP包的最大尺寸,而大多数的包处理程序又假设包的长度超过这个最大尺寸这种情况是不会出现的。因此,包的重组代码所分配的内存区域也最大不超过这个最大尺寸。这样,超大的包一旦出现,包当中的额外数据就会被写入其他正常区域。这很容易导致系统进入非稳定状态,是一种典型的缓存溢出(Buffer Overflow)攻击。在防火墙一级对这种攻击进行检测是相当难的,因为每个分片包看起来都很正常。

由于使用ping工具很容易完成这种攻击,以至于它也成了这种攻击的首选武器,这也是这种攻击名字的由来。当然,还有很多程序都可以做到这一点,因此仅仅阻塞ping的使用并不能完全解决这个漏洞。预防死亡之ping的最好方法是对操作系统打补丁,使内核将不再对超过规定长度的包进行重组。

二、现象

这个问题出现在早期的Windows内,不过在接近Windows Me的时候已经见不到了。不仅已经ping不到65500以上,各大网站限制数据包传入大小来防止有人用多台电脑同时ping一个ip导致瘫痪,一般大型网站把数据包压到3000以下;而服务器或者dns一般把数据包压到10000以下来防止这个问题,超过数值会提示连接超时。

  • 不要大数据ping自己的ip地址。

  • 不要乱ping网站网址

  • 不要ping自己的IP地址

三、操作

DOS攻击之死亡之ping,俗称拒绝服务攻击,通过发送大量的无用请求数据包给服务器,耗尽服务器资源,从而无法通过正常的访问服务器资源,导致服务器崩溃。

如果多个ip通过发起对一个服务器的攻击,如果无防御措施,不管服务器内存多大,宽带多宽,CPU多快,都无法抵御这种攻击。

​ 死亡之ping代码:

​ 打开系统的命令窗口,windows电脑按win+R ,输入cmd命令后进入命令界面:

​ 输入:

ping -l 65500 目标ip -t

(65500 表示数据长度上限,-t 表示不停地ping目标地址) 这就是简单的拒绝服务攻击。

四、常见攻击与防范

SYN Flood攻击:

  问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这 种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒 -2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最 后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从 正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。

防范:

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

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

Ping of Death:

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

teardown攻击:

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

Land(LandAttack)攻击:

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

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

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/50

简单的Dos攻击-死亡之Ping相关推荐

  1. Java实现简单的DoS攻击

    转载自:https://article.itxueyuan.com/pqoRP 叙述 因需要模拟DoS攻击,所以搞了个模拟DoS攻击. 代码 import java.net.HttpURLConnec ...

  2. 死亡之Ping(Ping of Death)攻击

    由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产 ...

  3. linux服务器防端口扫描,linux下防止syn***,端口扫描和死亡之ping

    http://downloads.sourceforge.net ... les-v0.0.3-3.tar.gz下载以后安装: tar zxvf arptables-v0.0.3-3.tar.gz c ...

  4. 【安全测试】DOS攻击:ping攻击

    一.Ping攻击介绍 Ping攻击就是不断向指定的IP地址发送不接收回复的数据包,目标主机都需要耗费一定的系统资源进行应答回复,这种攻击通过发送大于65536字节的ICMP包使操作系统崩溃. 通常不可 ...

  5. DOS攻击之详解--转载

    源地址没有找到,间接引用地址:http://wushank.blog.51cto.com/3489095/1156004 DoS到底是什么?接触PC机较早的同志会直接想到微软磁盘操作系统的DOS--D ...

  6. 【Dos】常见的Dos攻击

    文章目录 1.Dos攻击 2.常见的Dos攻击 2.1 TCP SYN泛洪 2.2 UDP泛洪 2.3 ping泛洪 2.4 缓冲区溢出 2.5 ICMP路由重定向炸弹 2.6 分片炸弹 1.Dos攻 ...

  7. DoS攻击和DDoS攻击

    介绍 Dos攻击 DoS是Denial of Service的简称,即拒绝服务.单一的DoS攻击一般是采用一对一方式的,通过制造并发送大流量无用数据,造成通往被攻击主机的网络拥塞,耗尽其服务资源,致使 ...

  8. DOS攻击(denial-of-service)与防范

    什么是网络层DoS攻击 什么是 网络层DoS攻击 IP碎片攻击(IP fragment attack)是常见的网络层DoS.当IP数据包的长度大于数据链路层的MTU(maxmium transmiss ...

  9. dos攻击与ddos攻击的区别

    ①DOS攻击: DOS:中文名称是拒绝服务,一切能引起DOS行为的攻击都被称为dos攻击.该攻击的效果是使得计算机或网络无法提供正常的服务.常见的DOS攻击有针对计算机网络带宽和连通性的攻击. DOS ...

  10. TCP协议三次握手连接四次握手断开和DOS攻击

    转载: http://hi.baidu.com/xgdcisco/blog/item/60da65f70fd8145d342acc28.html: http://blog.csdn.net/losty ...

最新文章

  1. curl模拟post请求
  2. python逐步回归筛选变量_利用python实现逐步回归
  3. 如何在 Outlook 中使用外出时的助理程序
  4. 勒索病毒傀儡进程脱壳
  5. Android官方开发文档Training系列课程中文版:OpenGL绘图之图形定义
  6. java老年代_Java新生代老年代的划分及回收算法
  7. 自学了三天的SeaJs学习,解决了前端的一些问题,与小伙伴们一起分享一下!...
  8. 如何用jsp和mysql实现简单的登陆功能
  9. 计算机原理视频罗克露优酷,计算机组成原理42讲 电子科技大学 罗克露
  10. mysql front 连接类型,MySQL-Front如何连接数据库
  11. Synonyms——中文近义词工具【含源码解析与改进】
  12. IMU与GPS传感器ESKF融合定位(转载)
  13. 电脑风扇狂转,声音巨大是什么原因?
  14. unix编程艺术读书笔记
  15. LNMP架构动态网页
  16. 《Spring实战》读书笔记-第5章 构建Spring Web应用程序
  17. 全智通A+常见问题汇总解答—A+—配件仓库—维修领料—修改领料单后,明细不存在
  18. Android 基于google Zxing实现二维码 条形码扫描,仿微信二维码扫描效果
  19. 【NILM】非入侵式负荷分解模块nilmtk安装教程
  20. InnoDB存储引擎--InnoDB存储引擎

热门文章

  1. 怎么复制PDF文件页面?用什么方法操作
  2. ubuntuv20启动界面美化_小米任务栏美化软件下载-小米任务栏美化官方版软件下载v1.0...
  3. pcs7组态虚拟机中的服务器,PCS7冗余服务器配置
  4. pcs7组态虚拟机中的服务器,pcs7组态虚拟机中的服务器(ECS700无法连接到组态服务器)...
  5. CentOS7 部署黑客帝国代码雨
  6. ob测试过程问题记录
  7. 计算机网络谢希仁第七版课后习题答案
  8. Flash CS4运行时提示:Java运行时环境初始化时出现错误。您可能需要重新安装 Flash。解决方案
  9. 计算机四级数据库教程,全国计算机等级考试四级教程—数据库工程师[借鉴].pdf...
  10. java+redis实现腾讯云短信SDK3.0验证+过期时间验证