专栏首页FreeBuf浅谈拒绝服务攻击的原理与防御(5) | NTP反射攻击复现

浅谈拒绝服务攻击的原理与防御(5) | NTP反射攻击复现

0×01 故事起因

前两天以为freebuf上的网友stream(年龄、性别不详)私信我说他在阿里云上的服务器被NTP攻击了,流量超过10G,希望我帮忙一起分析一下,复现一下攻击。

我这当代雷锋当然非常乐意了,于是我就和stream联系(勾搭)上了,今天我就详细讲一下我们一起复现NTP反射攻击的过程。

0×02 分析攻击数据

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

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

借助whireshark查看了一下源IP的情况,并排列了一下每个IP的发包数量,但是whireshark居然没有统计IP地址个数的地方,也可能是我没找到。

于是我就另存为到一个txt文件中,查看行号计算数量,发现总共有3307个源IP(哈哈!这可都是宝贝啊!)

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

0×03 攻击复现

原本以为知道了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

auth,sequence:

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

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

request code就是我们重点需要的monlist请求。

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

str_monlist='\x17'+'\x00'+'\x03'+'\x2a'+20*'\x00'

这是怎么回事?我发的数据包没有错啊怎么就没回复呢?在这种情况下,就要借助一下已有的一些软件帮帮忙了,在这里我们可以使用ntpdc来帮忙。

我用的是kali,上面已经安装好了这个工具,这个工具的作用就是能发出想要的ntp报文,我用它发一个ntp monlist请求先看看情况,用 ntpdc -c monlist *.*.*.* 命令查看

看抓包情况

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

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

看看攻击效果

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

0×04 结语

首先感谢一下stream大兄弟的分享,让我能认识到我的不足,同时也分享出来让大家避免同样的错误,其次就是在网络攻击上或者其他事情上要大家要细心,一些看似没啥用的00就能影响结果。

还有就是希望大家遇到攻击或者有什么新的方法多分享出来,大伙一起学习一起进步,有问题可以私信我或者加我qq 2289988238,我不一定能帮到你,但是多一个人多一份力量,我有时间的情况下一定是有问必答的。各位朋友下期再见!

本文分享自微信公众号 - FreeBuf(freebuf),作者:黑戈爾

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Splunk+蜜罐+防火墙=简易WAF

    *本文原创作者:RipZ,本文属FreeBuf原创奖励计划,未经许可禁止转载 ? 每天都会有大量的公网恶意扫描和攻击行为,在企业安全建设中,可以利用大数据来实时...

    FB客服
  • asnlookup.py:用于搜索特定组织的ASN和拥有的IP地址工具

    ASN是由互联网号码分配机构(IANA)分配给自治系统(AS)的唯一号码。 AS由IP地址块组成,这些IP地址具有明确定义的用于访问外部网络的策略,并由单个组织...

    FB客服
  • 浅谈木马如何隐藏上线IP地址

    木马也叫RAT,或者叫远程管理软件,关于如何隐藏IP地址,应该有不少人在研究,比如ROOTKIT实现文件隐藏、进程隐藏、网络连接隐藏等等。本人才疏学浅,没有深入...

    FB客服
  • 那些网络中容易出现的故障

    运维人最怕网络出故障。先抛开一些闲话不谈,网络故障从大体上来讲,有下面几种情况:

    释然
  • Object-C特性埋点

    Objective-C是一门简单的语言,95%是C。只是在语言层面上加了些关键字和语法。真正让Objective-C如此强大的是它的运行时。它很小但却很强大。它...

    Kris大鲨
  • 一个七年Java女程序员的年终总结,写给过去一年的自己第一阶段----三年第二阶段----五年

    简单先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公...

    美的让人心动
  • 【算法】常用推荐算法

    陆勤_数据人网
  • 科技公司联手打造智能家居连接标准(Security)

    亚马逊、苹果、谷歌和Zigbee联盟周三联合宣布,他们正在合作开发一种基于互联网协议的智能家庭设备连接新标准。

    吴亚芳
  • 自证法帮你识别虚假数据

    图片来自一篇微信公号文章,名叫《三亿中产不生孩子的真相》,发布者是一位大V,该文又被更大的V转发。单就我看到的两篇,就有2万多的转发量。

    叶锦鲤
  • KVM文件管理

    L宝宝聊IT

扫码关注云+社区

领取腾讯云代金券