目錄
關於tcp協議的參考鏈接:
1. 拒絕服務攻擊
拒絕服務攻擊(英文爲Denial of Service)通常簡稱爲DOS攻擊,其目的是使目標計算機或服務器等IT基礎設施無法正常提供服務,從網絡安全的角度來說,DOS攻擊是一種針對目標網絡服務的攻擊,最常見的攻擊方式就是發送大量惡意的數據流量使目標服務器的網絡帶寬資源耗盡,無法對用戶提供正常的訪問服務。
2. TCP SYN Flooding攻擊
拒絕服務攻擊的方式多種多樣,針對目標網絡服務的攻擊也只是拒絕服務攻擊裏的一小部分,TCP SYN Flooding攻擊是一種針對目標網絡服務的攻擊,跟ARP欺騙攻擊有些類似,它利用了傳輸層TCP協議在設計上的缺陷。
客戶端和服務器正常通信時的TCP三次握手過程中,客戶端會首先發送一個SYN報文,服務器收到SYN報文會回覆一個SYN+ACK報文,客戶端收到SYN+ACK報文會回覆一個ACK報文,至此雙方建立TCP連接完成。
TCP SYN Flooding攻擊過程利用了TCP協議三次握手來實現,關鍵就在於服務器發送的SYN+ACK報文。服務器收到客戶端發送的SYN報文會回覆一個SYN+ACK報文,期待對方回覆一個ACK報文,表示TCP連接進入到了半打開狀態並設置一個計時器計時,在這段時間期間服務器需要分配一定的系統資源來維護TCP連接,如果因爲網絡延遲等問題服務器始終無法收到最後的ACK報文,計時器就會超時並重傳SYN+ACK報文直到TCP規定的重傳次數纔會釋放這個TCP連接。
當惡意攻擊者假冒客戶端僞造IP向目標服務器發送大量惡意的TCP請求報文,這意味着服務器需要分配大量的系統資源,如果在計時器這段時間期間,大量的系統資源被假冒的客戶端佔用而沒有利用,最終的結果是服務器的系統資源往往被耗盡,忙於處理來自攻擊者僞造的TCP連接請求,而無暇顧及來自真正的客戶端的TCP連接請求。
3. TCP SYN Flooding安全測試
本次TCP SYN Flooding安全測試的環境爲:一個是kali linux,另一個是windows。將採用kali linux中的hping3工具進行TCP SYN Flooding安全測試,使用wireshark抓包工具進行抓包分析。
Hping3工具中-S選項表示採用SYN半連接方法,--flood 儘可能快的發送數據包,--rand-source 表示僞造IP地址,-p用於指定目標主機的端口號
開啓wireshark進行抓包分析,點擊統計-->流量圖,使用wireshark的流量圖功能生成TCP流量圖標進行分析:
從上圖中可以看到有大量僞造的IP地址向192.168.111.140發送了TCP SYN報文,因此我們可以懷疑這應該是TCP SYN Flooding攻擊。
點擊wireshark工具的統計-->端點,進一步分析:
從wireshark工具中看到hping3工具發起TCP SYN Flooding攻擊總共發了15萬多個TCP報文,從Address字段中可以得出分別是不同IP地址發送的,且每個ip地址只發送了一個TCP報文(即SYN報文),由此我們可以確定這些不正常的TCP數據包是惡意攻擊者僞造的。