DoS***工具HOIC

本文是綠盟科技安全+技術刊物中的文章,文章對拒絕服務***工具—"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


附錄


《DDoS***工具HOIC》文中一些代碼段不便複製,如果您需要查看完整內容,請點擊下載綠盟科技安全+技術刊物16期

wKioL1SX006iuJj4AAAnmSjRoPQ049.jpgwKioL1SX00_TNxAzAABHqxqNt6k569.jpg

《DDoS***工具HOIC》的相關文章請參看 2014年DDoS***事件分析


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章