在我們的思維都朝著一個方向走的時候,忽然的轉(zhuǎn)向會讓人茅塞頓開。黑客在我眼中就是一群思維習(xí)慣不同的人,他們從不朝著同一個方向走,所以你才會被他們發(fā)現(xiàn)這么多的漏洞。一把手槍,四顆子彈,你能讓子彈同時擊中同一個目標(biāo)來達(dá)到最強(qiáng)的殺傷力嗎?當(dāng)你看完這篇文章,你會像我一樣震撼于他們的想象。 假設(shè)1枚炮彈擊中目標(biāo)的傷害為10,而4枚炮彈同時擊中目標(biāo)的傷害為200。現(xiàn)在我方只有一門火炮,4枚炮彈。此火炮每次只能發(fā)射一枚炮彈。問如何操作可以使其傷害達(dá)到200? 答案是”讓子彈多飛一會兒”,不過這個回答不是來自姜文的電影,而是源于美軍在二戰(zhàn)中提出的 MRSI (Multiple Rounds Simultaneous Impact)技術(shù),粗糙的翻譯一下就是“發(fā)射多次卻同時命中”。 我們知道炮彈飛行的時間取決于開炮時的發(fā)射仰角,比如仰角大于45度時,炮彈的飛行的長度和時間比仰角小于45度要長。那么我們就可以采用MRSI 技術(shù),以從大到小的發(fā)射仰角,連續(xù)發(fā)射4次。這樣第一次發(fā)射的炮彈飛行時間最長,最后一次發(fā)射的飛行時間最短。只要我們精確的計算好角度和發(fā)射的時間間隔,就有可能讓4枚炮彈同時擊中目標(biāo),從而造成200的傷害。 簡而言之,就是利用炮彈的飛行時間差來彌補(bǔ)發(fā)射的間隔時間。 Ryan Rasti在Temporal Lensing and its Application in Pulsing Denial-of-Service Attacks一文中提出了一種利用網(wǎng)絡(luò)延遲來增強(qiáng)DDoS攻擊效果的方法。以DNS放大攻擊為例。假設(shè)攻擊者選擇了兩個DNS 服務(wù)器(A和B)來攻擊目標(biāo), 已知A到目標(biāo)的網(wǎng)絡(luò)延遲為110毫秒,B到目標(biāo)的網(wǎng)絡(luò)延遲為40毫秒。而攻擊者到A和B的延遲忽略不計。那么攻擊者可以先給A發(fā)一個假冒的DNS請求,讓A反射目標(biāo)。略等70毫秒以后(110-40=70毫秒),攻擊者再發(fā)給B請求,讓B反射目標(biāo)。這樣,雖然攻擊者的兩個DNS請求不是同時發(fā)出的,但是反射出來的攻擊消息卻可以同時擊中目標(biāo)。如下圖所示 這么做的好處是什么呢?當(dāng)然是提高了DDoS的效率,攻擊者的發(fā)報率是1包/70毫秒,而在某個時間點卻有2個反射包擊中目標(biāo)。這相當(dāng)于巧妙的利用了網(wǎng)絡(luò)延遲而把所有的攻擊包匯聚在某一個特定的時間點上。例子中只用到了2個DNS服務(wù)器,但是在實際攻擊中,可以擴(kuò)展到n個。攻擊方式也不僅限于DNS放大攻擊,用http 代理的CC攻擊也可以。 優(yōu)化過的DDoS步驟是 [code]1.假設(shè)有n條線路(取決于具體的攻擊方法,可能有n個DNS服務(wù)器,n個http代理等等),攻擊者先測量出每條攻擊路線的延遲, 對應(yīng)記為 (L1,L2,…,Ln)。 2.從(L1,L2,…,Ln)中找出最大延遲,記為Lmax 3. 對于路線i(1≤ i ≤n),攻擊者在發(fā)送前須等待 Lmax-Li[/code] 普通的DDoS是拼命打,有多少打多少。這樣的結(jié)果是數(shù)據(jù)包擊中最終目標(biāo)的時間是平均分布的,如下圖所示 而優(yōu)化過的DDoS應(yīng)該是這樣的 然而為了成功的優(yōu)化DDoS,我們還必須得解決一個首要問題,如何測量網(wǎng)絡(luò)延遲。 對于HTTP CC類攻擊來說比較簡單,攻擊者配制好代理,對攻擊目標(biāo)發(fā)一個http請求,接收http響應(yīng),就可以得到請求往返時間,然后用這個請求往返時間來估算網(wǎng)絡(luò)延遲。當(dāng)然,在實際情況中,網(wǎng)絡(luò)延遲取決于很多因素,還需要用不同的方法降低噪音帶來的影響,比如多次測量取平均值等等。 對于DNS放大攻擊,一般用King測量法。比如攻擊者(A)打算用DNS服務(wù)器D來攻擊目標(biāo)T。然而,直接測量 A經(jīng)過D到T的網(wǎng)絡(luò)延遲 (LADT)是很難的。但是,我們可以利用DNS遞歸查詢的特性,測量出 A經(jīng)過D到T的DNS服務(wù)器 的網(wǎng)絡(luò)延遲(LADT(DNS))。方法是讓A對D發(fā)一個關(guān)于T域的DNS查詢,在這種情況下D會向T的DNS服務(wù)器遞歸查詢。從而該攻擊者可以用此DNS請求往返時間來估算LAT(DNS)。一般來說, DNS服務(wù)器都在離其他服務(wù)器很近的地方,延遲差別可以忽略不計,因此LAT ≈ LAT(DNS) 。 比如攻擊者打算利用google DNS (8.8.8.8)來攻擊test.com的web 服務(wù)器。為了優(yōu)化,攻擊者需要先知道他到8.8.8.8再到test.com web服務(wù)器的延遲。怎么計算延遲呢? 攻擊者可以給8.8.8.8發(fā)送一個DNS查詢:[隨機(jī)子域].test.com 。由于8.8.8.8 并不負(fù)責(zé)test.com子域名,它只能遞歸詢問test.com的DNS服務(wù)器。test.com的DNS服務(wù)器收到該詢問以后,會進(jìn)行本地記錄查詢。因為該子域是隨機(jī)產(chǎn)生的,所以肯定會返回找不到啦,8.8.8.8收到回答以后,會再把這一回答繼續(xù)轉(zhuǎn)發(fā)給攻擊者。這樣攻擊者就可以計算出他到8.8.8.8再到test.com DNS服務(wù)器的延遲。由于一般DNS服務(wù)器都在離WEB服務(wù)器很近的地方,因此可以推算出到8.8.8.8再到test.com web服務(wù)器的延遲。 為什么查詢的時候要使用隨機(jī)子域呢?是為了防止查詢結(jié)果被cache緩存。如果查詢結(jié)果被緩存了,那么DNS服務(wù)器就不遞歸查詢了,從而導(dǎo)致測量結(jié)果不準(zhǔn)確。 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!
掃一掃,關(guān)注站長網(wǎng)微信