2014年6月20日,香港民意調查投票網站PopVote.hk遭受超大規模的DDoS攻擊,攻擊流量史上第二高。PopVote使用了CloudFlare的服務,CloudFlare是一家CDN服務供應商,在抵禦DDoS攻擊方面非常專業。從一開始CloudFlare就使用了亞馬遜的AWS雲服務,並且將谷歌的Project Shield作為第二層DDoS防禦機制。在為期10天的PopVote投票時間裡,網站遭遇了多起大規模的DDoS攻擊,DNS反射流量高達100Gb,而NTP反射流量最高到達300Gb,TCP連接請求最高達每秒一億次,在攻擊中還有HTTP洪水攻擊、HTTPS攻擊,甚至出現了新的DNS Flood攻擊,最高每秒鐘2億5千萬的DNS請求,未經放大的情況下就達到了128Gb。亞馬遜AWS因為無法應對大規模流量而停止服務,谷歌也因為流量過於龐大影響到了其它服務而被迫宣佈退出。最後在多家網絡服務商共同努力之下才勉強撐過了這段投票時間。
近幾年發生的大規模DDoS攻擊事件中,頻繁出現反射式DDoS技術,其最重要的兩個技術是殭屍網絡和流量放大。
一、 殭屍網路技術
「肉雞」這個黑客術語指的是被黑客秘密控制的主機,當「肉雞」規模達到一定程度之後就會出現不易管理的問題,為了解決管理的問題,出現了相應的網絡技術,於是就出現了殭屍網絡。
對於大規模DDoS,長期以來存在一個誤解:很多人甚至包括大量IT從業人員都覺得組建一個殭屍網絡技術要求很高、非常困難,因此大規模DDoS攻擊是很少見的。其實這個觀點是錯誤的,殭屍網絡的技術困難程度是隨著互聯網規模的增加而迅速遞減的。如今計算機的主要用戶是普通大眾,而普通大眾對安全問題基本沒有有較多瞭解。Rapid 7的首席安全官HD Moore曾經表示:「你可以使用一個默認密碼登錄幾乎一半的互聯網」,在這種現狀下構建一個大規模殭屍網絡並不是一件困難的事情。
構建殭屍網絡最核心的工作是獲取殭屍節點,這裡介紹幾種常見的黑客獲取殭屍節點的方法。
!利用搜索引擎獲取殭屍節點。僅僅利用搜索引擎就可以獲取大量現成的或者幾乎現成的殭屍節點。黑客經常使用Google Hacking技術和shodan搜索引擎獲取殭屍節點。任何一個人在搜索引擎之中搜索關鍵字「googlehacking backdoor」、「shodan backdoor」都會獲得很多這方面的資料,按照這些資料在加上基本的計算機知識就可以獲得一些殭屍節點。
!利用MetaSploit滲透遠程主機。在PopVote案例中,大量的殭屍節點都是來自於台灣,據台灣一些相關專業人士的分析,主要原因在於大多數人都沒有更新軟件補丁的習慣,而這種現象在全世界都非常普遍,這就給黑客留下了大量的可利用漏洞。MetaSploit是滲透的利器,其中集成了大量已知漏洞的exploit,即便對於根本不瞭解漏洞原理的人,也可以使用MetaSploit輕鬆實現對目標系統的入侵。
!利用Struct、Apache、Discuz等開源軟件的安全漏洞控制主機。有一些開源軟件在全世界擁有大量的用戶,因此任何針對這些開源軟件的安全漏洞都會影響到大量主機。令人難以置信的是,即便是很老的安全漏洞,依然有很多主機沒有打補丁。利用shodan、zoomeye、google可以獲得大量仍然有漏洞的主機列表,然後利用搜索引擎找到相應exploit,使用exploit即可完成對漏洞主機的控制。
!利用破解軟件、綠色軟件植入木馬。曾經風靡一時的破解版、綠色版XP系統大部分都含有root級別的後門程序,而現今網上很多破解、綠色版的軟件也都含有木馬程序。很多人在享受便利、免費的時候已經被黑客完全控制了。
!直接黑市購買殭屍網絡服務。如今黑帽黑客已經創造了一個非常巨大的地下產業鏈,在這裡幾乎可以買到一切,個人信息、數據庫、殭屍網絡…。發動一次中等規模的DDoS攻擊數千美金即可實現。
二、 流量放大技術
流量放大是DDoS中常用的技術手段,基本原理相對簡單。對於一個C/S服務,如果Server到Client的Reponse報文比Client到Server的request報文更大,則實現了流量的放大。為了在DDoS中使用放大技術還需要滿足一個條件,即Server提供的服務是基於UDP這樣的無連接協議。
如圖1所示,Server端提供某種基於UDP(理論上raw ip也可以)的服務,例如DNS、SMTP、NTP等,找到一些請求,其中Reponse報文比Request報文大,利用這些可以放大的請求,Attacker發送一個偽造源IP的Request報文,源IP偽造成受害者的IP地址,Server收到Request報文後向受害者回復「放大的」Reponse報文,這樣就實現了流量的放大。
圖 1 典型DDos流量放大
表 1列舉了一些經常用於反射型DDoS攻擊的協議及其放大倍數。
表1 常見反射性DDoS攻擊的放大倍數
三、 NTP反射式DDoS攻擊
迄今為止最大規模的DDoS攻擊來自於NTP協議反射式DDoS攻擊,本節將通過一些細節來說明如何發動NTP反射式DDoS攻擊,並著重介紹上述兩個關鍵技術。[1]
l 獲取殭屍節點
使用搜索引擎獲取殭屍節點是最便利的途徑。通過搜索,獲取了尋找web shell的google hacking關鍵字,如「intitle:」=[ 1n73ct10n privat shell ]=」」,通過google搜索該關鍵字便獲得了很多結果,隨便打開一個鏈接,得到圖 2所示的webshell。雖然現在流行用「小馬」控制web服務器(「小馬」無法通過搜索得到),但還是遺留有大量的「大馬」控制的web服務器,而其中有一些就可以通過google搜索得到。
使用shodan獲得backdoor。shodan是一個特殊的搜索引擎,和Google等搜素引擎不同的是,shodan同時抓取非80端口的信息,它可以很輕鬆得搜索到FTP、SSH、TELNET等其他服務。在google搜索引擎中搜索「shodan backdoor」會返回很多結果(也可以通過exploits.shodan.io搜索,會獲得更多準確結果)。如Cisco Linksys TCP-32764後門,它允許攻擊者繞過認證間接控制目標,這個漏洞影響範圍非常的廣,並且網上都有現成的poc[2]和exploit[3]。使用shodan搜索這個後門,如圖2所示,一共可以獲得3328個返回結果,這些結果的大部分都可以被直接利用。
另外一個D-Link的backdoor,D-Link在web管理中加入的一個後門,可以修改HTTP的User-Agent繞過web認證直接訪問路由器,同樣可以用shodan獲得745條結果,如圖3所示。
圖 2 一個搜索得到的webshell
圖 3 shodan搜索得到的Cisco Linksys後門
這些獲得的後門,經過簡單的處理就可以被黑客做成殭屍節點,從而構建殭屍網絡。當然在有的情況下控制一個目標後還需要進行提權處理,否則很多功能無法實現。
l NTP流量放大
NTP(Network Time Protocol)是一個常見的協議,用於提供時間同步服務。它是典型的基於UDP的協議,這個協議相當古老,在最初的設計中也沒有考慮到認證,所以是一個理想的黑客利用對象。
從表1我們看到NTP可以實現556.9倍的放大效果,這來自於NTP的monlist命令。NTP monlist命令用來查詢最近所有和Server通信的記錄,服務器返回最多600個通信記錄,這個倍數非常巨大,而在互聯網上有大量的NTP服務器,可以通過殭屍網絡分佈式查詢、放大。
圖 4 NTP流量放大
如圖4所示,Server端提供NTP服務,Attacker發送了一個NTP monlist Request給Server,但其源IP地址不是自己的IP地址,而是攻擊對像Target的IP地址,Server收到請求後會向Target(而不是Attacker)發送Reponse報文。由於Reponse包含了和Server的600條時間同步記錄,比Request大很多,是由很多報文組成的,因此實現了放大。
四、 結束語
DoS攻擊是非常常見的一種攻擊,根據最新的統計,2014年全球平均每小時遭受28次DoS攻擊,頻繁程度讓人瞠目。對於很多IT從業人員來說,他們認為由於技術門檻高遭受DDoS攻擊的可能性比較低,本文通過展示一些技術細節用於說明在當今的信息安全形勢下發動一次DDoS攻擊並不需要太高的技術門檻。所以,對於企業來說,合理部署安全產品,增加出口,部署CDN可在較大程度上降低DDoS攻擊造成的損失。
註釋:
[1]本節中介紹的知識僅供安全研究之用。
[2]Proof of Concept,黑客用於證明某個漏洞的利用代碼。
[3]黑客用於入侵的代碼。
留言列表