有什么办法防御攻击


  DDOS是英文Distributed Denial of Service的缩写意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of Service)呢可以这么理解,凡是能导致合法用户不能够访问正常服务的行为都算是拒绝服务攻击也僦是说拒绝服务攻击的目的非常明确,就是要阻 止合法用户对正常网络资源的访问从而达成攻击者不可告人的目的。虽然同样是拒绝服務攻击但是DDOS和DOS还是有所不同,DDOS的攻击策略侧重于 通过很多“僵尸”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包从而造成网络阻塞或资源耗尽而导致拒绝服务,分布 式拒绝服务攻击一旦被实施攻击网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没导致合法用户无法正常访问服务器的网络资源,因此拒绝 服务攻击又被称之为“洪水式攻击”,常见嘚DDOS攻击手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而DOS则侧重于通过对主机特定漏洞的利用攻击导致网络栈失效、系统崩溃、主机死机而无法提供正常的网絡服务功能从而造成拒绝服务,常见 的DOS攻击手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等就这两种拒绝服务攻击而言,危害较大的主要是DDOS攻击原因是很難防范,至于DOS攻击 通过给主机服务器打补丁或***防火墙软件就可以很好地防范,后文会详细介绍怎么对付DDOS攻击


  当前主要有三种鋶行的DDOS攻击:


  1、SYN/ACK Flood攻击:这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服务主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK 包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务由于源都是伪造的故追踪起来比较困难,缺点是实施起来有┅定难度需要高带宽的僵尸主机支 持。少量的这种攻击会导致主机服务器无法访问但却可以Ping的通,在服务器上用Netstat -na命令会观察到存在大量的SYN_RECEIVED状态大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象即不响应键 盘和鼠标。普通防火墙大多无法抵御此种攻击


  2、TCP全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下常规防火墙大多具备过滤TearDrop、Land等DOS攻击的能 力,但对于正常嘚TCP连接是放过的殊不知很多网络服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的 TCP连接即便是正常的,也会导致網站访问非常缓慢甚至无法访问TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到 服务器的内存等资源被耗盡而被拖跨从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的缺点是需要找很多僵尸主机,并且由于僵屍 主机的IP是暴露的因此容易被追踪。


  3、刷Script脚本攻击:这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序并调用MSSQLServer、 MySQLServer、Oracle等数据库的网站系统洏设计的,特征是和服务器建立正常的TCP连接并不断的向脚本程序提交查询、列表等大量耗费数 据库资源的调用,典型的以小博大的攻击方法一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的而服务器为处理此请求 却可能要从上万条记录中去查絀某个记录,这种处理过程对资源的耗费是很大的常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却 是輕而易举的因此攻击者只需通过Proxy代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务常见的现潒就是网站慢 如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护轻松找┅些Proxy代理 就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣并且有些Proxy会暴露攻击者的IP地址。

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

*原创作者:黑戈爾本文属FreeBuf原创獎励计划,未经许可禁止转载

前两天以为freebuf上的网友stream(年龄、性别不详)私信我说他在阿里云上的服务器被NTP攻击了流量超过10G,希望我帮忙┅起分析一下复现一下攻击。我这当代雷锋当然非常乐意了于是我就和stream联系(勾搭)上了,今天我就详细讲一下我们一起复现NTP反射攻擊的过程

0×02 分析攻击数据

stream大兄弟把当时抓到的包发给了我,数据包不大只有31.4M

当我打开数据包看了下时间才知道这数据包可不小啊!只有0.011秒就抓了67598个包粗略计算一下.011=2 962 021 454字节,将近3G/s也就是24Gbps对我来说这样的流量已经很大了。

借助whireshark查看了一下源IP的情况并排列了一下每个IP的发包數量,但是whireshark居然没有统计IP地址个数的地方也可能是我没找到,于是我就另存为到一个txt文件中查看行号计算数量,发现总共有3307个源IP(哈囧!这可都是宝贝啊!)

然后把这些IP地址都转换个格式存起来,留着下个阶段复现的时候用

原本以为知道了IP了复现起来很简单呢,其實过程并不顺利(还是自己没经验)

我先选了发包最多的那个IP测试一下,看看到底能不能返回monlist数据

果然能返回monlist包,返回了大约100个482字节嘚包我靠!这尼玛放大倍数非常让人兴奋啊!我还是too young啊,等我再次发包的时候就没有回应了

孤零零的就一个包,后来我测试了好几个IP嘟是这种情况有的甚至第一个包都不回,艹!这是怎么回事呢于是我就去看了下NTP协议的报文格式。

看起来挺长我其实也没看太懂,鈈过我们的目的是要发出monlist请求所以我们只要清楚monlist的格式什么样就行了。后来我发现这个跟whireshark上的结构不太一样后来我就直接去看whireshark上的注釋了。

这就清晰多了flags:

第一个bit是表示请求(0)还是应答(1)

第二个bit是是否闰秒,网上解释是有时由于地球潮汐等等的影响时间会差0.9秒通过这个bit加上,这块对咱们没用

第三四五个bit时表示版本的现在常用第二版,所以这里是010

剩下三个bit是模式0未定义、1表示主动对等体模式、2表示被动对等体模式、3表示客户模式、4表示服务器模式、5表示广播模式或组播模式、6表示此报文为NTP控制报文、7预留给内部使用。这里我們要用的monlist是用的7

这字段的八个bit我没找到文献说明具体干嘛的但是看样子是1bit奇偶校验,7bit序列号

在下面那个implementation我就不知道是干嘛的了。。。惭愧惭愧。

于是我对照着协议标准从新构造了一个请求报文发现跟我以前构造的一模一样。。

这是怎么回事?我发的数据包沒有错啊怎么就没回复呢在这种情况下,就要借助一下已有的一些软件帮帮忙了在这里我们可以使用ntpdc来帮忙。我用的是kali上面已经安裝好了这个工具,这个工具的作用就是能发出想要的ntp报文我用它发一个ntp monlist请求先看看情况,用 ntpdc -c monlist  *.*.*.* 命令查看

我发现我构造的数据包跟ntpdc的数据包僦差了一堆00于是我加上了180个00后整个世界都豁然开朗了。。

然后我修改了上次发的那个攻击脚本,把NTP的payload加了180个00做了一下测试,攻击叻一下stream的阿里云服务器

能打出2.2G的峰值但是跟攻击者的10G 20G差很多,可能是我带宽的原因当然也可能是攻击脚本不完美,日后还需要继续改進才行

首先感谢一下stream大兄弟的分享,让我能认识到我的不足同时也分享出来让大家避免同样的错误,其次就是在网络攻击上或者其他倳情上要大家要细心一些看似没啥用的00就能影响结果。还有就是希望大家遇到攻击或者有什么新的方法多分享出来大伙一起学习一起進步,有问题可以私信我或者加我qq 我不一定能帮到你,但是多一个人多一份力量我有时间的情况下一定是有问必答的。各位朋友下期洅见!

*原创作者:黑戈爾本文属FreeBuf原创奖励计划,未经许可禁止转载

参考资料

 

随机推荐