本文是綠盟科技安全+技術刊物中的文章,文章對拒絕服務攻擊工具—"High Orbit Ion Cannon" 的技術性分析。HOIC 是一款用RealBasic 開發可移植的多平臺拒絕服務攻擊工具,該工具雖然對使用者的水平有較高要求,需要了解HTTP 協議本身,但由于在DDoS 攻擊來源中具有一定代表性,有必要對其分析并加以防范。本文嘗試通過技術性分析,探討相應的防范措施。
目前針對企業的互聯網攻擊日趨頻繁,且攻擊形式不斷更新,但最常見的形式還是DDoS。綠盟科技威脅響應中心,通過對安全事件的分析了解到,很多攻擊者都采用了一種稱為“High Orbit Ion Cannon”的工具,這種工具可以引發拒絕服務攻擊。
作為應對措施之一,行業中常見的形式是建立威脅響應機制,以提供及時且行之有效的攻擊防護分析及建議。本文著重分析了這個工具,并探討了防范措施,從而避免或降低危害及損失。
概述
HOIC(The high orbit ion cannon)是一款基于HTTP 協議開源的DDOS 攻擊工具,可用于內部網絡或者外部服務器的安全性和穩定性的測試等等。HOIC 具有以下特點:
高速多線程的HTTP 洪水攻擊。
一次可同時洪水攻擊高達256 個網站。
內置腳本系統,允許自行修改設置腳本,用來阻撓DDoS 攻擊的防御措施,并增加DOS 輸出。
簡單且易于使用的界面。
可移植到Linux/ Mac。
能夠選擇攻擊的線程數。
可設置三種攻擊強度:低,中,高。
用REALbasic 這種極其書面的語言寫成,簡單易修改。
關鍵功能界面
TARGETS 這里是參數的設定,包括強度和腳本的選擇。實際上URL 這里可以不輸入任何東西,直接在擴展名為.hoic 的攻擊腳本中指定多個目標URL,這樣更靈活。如果URL 處保持為空,在后續操作中會有一個警示信息出現,直接確定,不必理會它。
列表為已經添加的攻擊目標URL 信息、強度等級、腳本信息和狀態。“THREADS”為線程數量,“可以在THREADS”處點擊左右鍵頭調整并發線程數,建議有幾個CPU 或有幾個核,就設幾個并發線程數,多了沒有意義。此處程序實現上有BUG,沒有檢查線程數的下限,比如可以下調至-1,此時沒有任何攻擊報文發送出去,因為流程根本不會到達下面那個for 循環內部:
表1
Dim i as integer
for i = 0 to Val( edtThreads.Text )-1
threads.Append( New attackThread )
threads( threads.Ubound ).Run
Next
目標列表顯示攻擊目標信息,“OUTPUT”顯示攻擊流量數據,OUTPUT 處的字節數對應全局變量TotalBytesSent,是動態遞增的。
關鍵功能對應源碼
點擊”FIRE THE LAZER”之后,程序會啟動線程框指定個數的線程用來攻擊服務器,并且啟動tmTurbo 控制器,用來不斷通過腳本來更新Headers。
表2 代碼段省略
attackThread // 循環遍歷列表中的所有目標主機,然后根據全局變量powerFactor( 對應LOW、MEDIUM 和HIGH) 的不同以不同的兩次攻擊報文之間的休眠時間發送攻擊數據包,并且不斷在主界面同步顯示發送的流量。
表3 代碼段省略
HOIC 本身只是一個DoS 框架程序,真正的DoS 攻擊行為通過擴展名為.hoic 的攻擊腳本指定,離開這些.hoic 文件,HOIC本身什么也干不了。.hoic 腳本文件必須與
HOIC 主程序位于同一目錄,否則會找不到。腳本也是用RealBasic 寫成,通過Generic函數可以看到程序會以RbScript 類來執行腳本文件,腳本文件可以影響到程序內的變
量值。例如程序調用下面腳本后,所發送的攻擊數據包就會根據我們自定義的腳本中需要構建的HTTP 請求數據塊配置上附帶的信息,進行攻擊。服務器會根據自定義的數
據塊信息把程序發送的數據包識別為正常的數據包。
下面這些都是HOIC 主程序預定義并使用的全局變量,可以在.hoic 腳本中直接使用: Headers 、PostBuffer、powerFactor、URL、UsePost
表4 代碼段省略
Hoic2.1(dev) 作者由于呼吁大家攻擊一個司法網站,發布此版本時提供了新腳本。
此腳本在多個數據塊中隨機調用Array 中的信息,可以用來降低攻擊被檢測的可能性,提高攻擊效果。
表5 代碼段省略
HOIC 2.1(dev) 版隨包自帶了四個.hoic文件:
DutchFreedom.hoic
GenericBoost.hoic
user-agent-test.hoic
visa_stress.hoic
DutchFreedom.hoic 是用來攻擊http://www.om.nl/ 司法網站的,為LOIC 出氣。GenericBoost.hoic 相當于一個.hoic模板, 黑客們可以在此基礎上編寫自己的.hoic 文件。
user-agent-test.hoic 用來演示通過.hoic 指定"User-Agent"。
visa_stress.hoic,顧名思義,在攻擊http://visa.via.infonow.net/。
黑客可以建立一個網站向外發布各種.hoic文件,別人只要下載黑客編寫的.hoic文件并加載到HOIC 中,就可以進行相應的DoS 攻擊,甚至不用輸入目標URL。如果用戶設置添加的攻擊URL 與腳本中指定的目標URL 不一樣,此時發起攻擊后,會先去訪問用戶設置添加的攻擊URL,提交6 次同樣的HTTP 請求,然后再去DoS 腳本中設定的地址,會抑制前述對話框中用戶輸入的URL 從此不再攻擊用戶自己設置的URL。這個設計不知是HOIC 作者有意為之還是無心插柳,總之結果很險惡,因為DutchFreedom.hoic 正是自己指定了目標URL,并且還是隨hoic.zip 自帶的。很多小白們使用HOIC 進行DoS 攻擊,指定DutchFreedom.hoic,他們最終都參與攻擊http://www.om.nl/,而不是攻擊他們自己輸入的目標URL。
HOIC 的作者水平比LOIC 的作者水平高,至少是個比較熟練的RealBasic 程序員,程序BUG 較少。HOIC 對使用者的水平有較高要求,需要了解HTTP 協議本身,如果不提供現成的.hoic 文件,很多使用者可能完全無法有效使用HOIC 進行DoS 攻擊。而高水平的黑客們可以通過提供現成的.hoic 文件利用各種小白們一起DoS 指定目標。
與同類流行工具的對比及特點
本工具與同類拒絕服務攻擊工具的區別和特點在于可允許用戶定義目標主機的URL、攻擊強度和自定義攻擊腳本。當用戶點擊TURBO 按鈕后, 程序會間隔時間不斷地調用用戶自定義腳本來生成自定義Headers。當用戶點擊FIRE THELAZERS 之后,程序會啟動N 個線程用來攻擊目標主機,在攻擊過程中會根據用戶選擇的攻擊強度的不同,以不同的時間間隔發送數據報,并且在界面上同步發送的數據包的流量。
可使用用戶自定義Headers 來產生偽造的Header,比如自行添加修改sessionID 或cookie 信息可以對某些設置過濾或阻隔的站點同樣進行有效攻擊。優點是靈活多變,攻擊的數據包都是正常的數據包,攻擊請求都是有效的、無法拒絕的請求。缺點是不能攻擊其他服務端口,此軟件不支持代理,無法改變攻擊來源使用真實IP 進行攻擊,但可通過第三方軟件實現代理偽造攻擊來源。仍然需要大量、分散的主機在同一時間集中進行攻擊效果才更顯著。
軟件在網絡上流量特征
攻擊來源只有一臺主機,此主機發出大量的數據包,占用了大量流量,非常異常。
這臺主機發包的目標主機只有一個,同時其發包的時間間隔極短,是典型的網絡攻擊行為。
攻擊采用的是合法協議,均是通過HTTP 協議攻擊目標主機固定端口,80 端口。
此種攻擊和正常訪問網站是一樣的,只是瞬間訪問量增加幾十倍甚至上百倍。
軟件歷史沿革
The high orbit ion cannon Current Release: 2.1(dev)—2010/12/10
The high orbit ion cannon Current Release: 1.0—2010/12/09
下一篇:剔除系統啟動項暗藏威脅