NTP Reply Flood Attack (NTP反射型DDos攻击)

简介

NTP Reply Flood Attack NTP射型Ddos攻击)如下简称NTP_Flood是一种利用网络中NTP服务器的脆弱性(无认证,不等价数据交换,UDP协议),来进行DDos行为的攻击,本文将就此种攻击的产生缘由,利用方法等进行阐述,并使用编程语言(PythonC++)对此攻击进行实现。html

感谢NSFOCUS的大牛同事们(SCZ,周大同窗,SAI,冰雪风谷)在平常学习工做中的支持。ios

 

NTP服务器

NTP <wbr>Reply <wbr>Flood <wbr>Attack <wbr>(NTP反射型DDos攻击)原载黑防2011-06

NTP服务器【Network Time ProtocolNTP)】是用来使计算机时间同步化的一种协议,它可使计算机对其服务器或时钟源(如石英钟,GPS等等)作同步化,它能够提供高精准度的时间校订(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。算法

NTP协议

NTPNetwork Time Protocol

网络时间协议(NTP)是一种经过因特网服务于计算机时钟的同步时间协议。它提供了一种同步时间机制,能在庞大而复杂多样因特网中用光速调整时间分配。它使用的是可返回时间设计方案,其特色是:时间服务器是一种分布式子网,能自我组织操做、分层管理配置,通过有线或无线方式同步逻辑时钟达到国家标准时间。此外,经过本地路由选择运算法则及时间后台程序,服务器能够从新分配标准时间。编程

NTP 的设计带来了三种产品 — 时钟偏移、时间延迟及差量,全部这三种与指定参考时钟都是相关联的。时钟偏移表示调整本地时钟与参考时钟相一致而产生的误差数;时间延迟表示在指定时间内发送消息与参考时钟间的延时时间;差量表示了相对于参考时钟本地时钟的最大误差错误。由于大多数主机时间服务器经过其它对等时间服务器达到同步,因此这三种产品中的每一种都有两个组成部分:其一是由对等决定的部分,这部分是相对于原始标准时间的参考来源而言;其二是由主机衡量的部分,这部分是相对于对等而言。每一部分在协议中都是独立维持的,从而可使错误控制和子网自己的管理操做变得容易。它们不只提供了偏移和延迟的精密测量,并且提供了明确的最大错误范围,这样用户接口不但能够决定时间,并且能够决定时间的准确度。服务器

NTP 源于时间协议和 ICMP 时间标志消息,但其设计更强调精确度和充足性两个方面,即便是用于网络路径上包括多路网关、延迟差量及不可靠网络。当前使用的最新版是 NTPv3,它與之前的版本兼容。网络

NTP <wbr>Reply <wbr>Flood <wbr>Attack <wbr>(NTP反射型DDos攻击)原载黑防2011-06

 

l  LI:跳跃指示器,警告在当月最后一天的最终时刻插入的迫近闺秒(闺秒)。编程语言

l  VN:版本号。分布式

l  Mode:模式。该字段包括如下值:0-预留;1-对称行为;3-客户机;4-服务器;5-广播;6NTP 控制信息oop

l  Stratum:对本地时钟级别的总体识别。学习

l  Poll:有符号整数表示连续信息间的最大间隔。

l  Precision:有符号整数表示本地时钟精确度。

l  Root Delay:有符号固定点序号表示主要参考源的总延迟,很短期内的位1516间的分段点。

l  Root Dispersion:无符号固定点序号表示相对于主要参考源的正常差错,很短期内的位1516间的分段点。

l  Reference Identifier:识别特殊参考源。

l  Originate Timestamp:这是向服务器请求分离客户机的时间,采用64位时标(Timestamp)格式。

l  Receive Timestamp:这是向服务器请求到达客户机的时间,采用64位时标(Timestamp)格式。

l  Transmit Timestamp:这是向客户机答复分离服务器的时间,采用64位时标(Timestamp)格式。

l  AuthenticatorOptional):当实现了 NTP 认证模式,主要标识符和信息数字域就包括已定义的信息认证代码(MAC)信息。

NTP协议指令集

Linux上咱们可使用ntpdc来进行NTP的操做,ntpdc支持不少命令:

 # ntpdc -n -i time.org.za

ntpdc> ?

ntpdc commands:

addpeer      controlkey   fudge        keytype      quit         timeout

addrefclock  ctlstats     help         listpeers    readkeys     timerstats

addserver    debug        host         loopinfo     requestkey   traps

addtrap      delay        hostnames    memstats     reset        trustedkey

authinfo     delrestrict  ifreload     monlist      reslist      unconfig

broadcast    disable      ifstats      passwd       restrict     unrestrict

clkbug       dmpeers      iostats      peers        showpeer     untrustedkey 

 


不等价交换的DDos利用

Listpeers指令与monlist指令

 

Listpeers指令,列出目标NTP服务器的peersNTP Servers

NTP <wbr>Reply <wbr>Flood <wbr>Attack <wbr>(NTP反射型DDos攻击)原载黑防2011-06

Monlist指令,能够获取与目标NTP Server进行过同步的最后600个客户机IP。这意味着,一个很小的请求包,就能获取到大量的活动IP地址组成的连续UDPwireshark抓包以下图:

NTP <wbr>Reply <wbr>Flood <wbr>Attack <wbr>(NTP反射型DDos攻击)原载黑防2011-06

NTP <wbr>Reply <wbr>Flood <wbr>Attack <wbr>(NTP反射型DDos攻击)原载黑防2011-06
 
   

值得注意的是,截图显示的,仍然只是NTP服务器回包中很小的一部分,这次通讯实际的回包比为173,而数据量大小比为234 bytes73×482 bytes,约等于1562,计算可获得,10M的通讯流量能够获得5620M的攻击流量,也就是5G

正是因为此指令的不等价交换(1562的报酬),UDP协议的通讯模糊性(无三次握手验证),以及NTP服务器的无认证机制,使得反射型DDos攻击成为可能。


 

DDos攻击程序编写

来自国外Blogmonlist测试例子:
NTP <wbr>Reply <wbr>Flood <wbr>Attack <wbr>(NTP反射型DDos攻击)原载黑防2011-06

这个Python脚本的做用是,从指定的服务器使用monlist指令返回的IP地址列表,因为Linuxntpdc指令超时时间很短,所以不容易返回完整的列表。

使用Python进行攻击程序的开发

Python 的攻击代码由SAI编写,截图以下:
NTP <wbr>Reply <wbr>Flood <wbr>Attack <wbr>(NTP反射型DDos攻击)原载黑防2011-06

使用Winpcap进行攻击程序的开发

相关文章
相关标签/搜索