Task3: SYN Flooding Attack
①SYN泛洪攻擊工作原理
SYN泛洪是一種DoS攻擊的形式,攻擊者向受害者的TCP端口發送許多SYN請求,但是這些攻擊者並無意完成3次握手的過程,攻擊者使用虛假的IP地址或不繼續該過程。通過這種攻擊,攻擊者可以淹沒受害者的這些被用於 半開放式連接 的隊列,即,連接已經完成SYN,SYN-ACK,但沒有完成最後的ACK。當這個隊列已滿時,受害者不能再完成任何連接。下圖(Figure 1)說明了攻擊。
注:實驗過程中遇到的問題或者必要知識點的儲備如下
(1)必要的命令
檢查系統隊列大小設置:
# sysctl -q net.ipv4.tcp_max_syn_backlog
檢查隊列的使用情況:
# netstat -na | grep tcp
禁止/啓用SYN Cookie:
# sysctl -w net.ipv4.tcp_syncookies=0
# sysctl -w net.ipv4.tcp_syncookies=1
(2)SYN Cookie工作原理
SYN Cookie是對TCP服務器端的三次握手協議作一些修改,專門用來防範SYN Flood攻擊的一種手段。其原理是,在TCP服務器收到TCP SYN包並返回TCP SYN+ACK包時,不分配一個專門的數據區,而是根據這個SYN包計算出一個cookie值。在收到TCP ACK包時,TCP服務器再根據那個cookie值檢查這個TCP ACK包的合法性。如果合法,再分配專門的數據區進行處理未來的TCP連接。
(3)如何構造SYN報文
使用netwox 76號指令。
netwox 76 --dst-ip 192.168.175.140 --dst-port 80
netwox 76 --dst-ip 192.168.175.140 --dst-port 23
上面兩條指令,攻擊者使用隨機的虛假IP分別向victim(192.168.175.140)的80端口和23端口發送大量SYN請求。
②過程演示
attackers :Machine1(192.168.175.139)
victim :Machine2(192.168.175.140)
observer :Machine3(192.168.175.141)
(1)攻擊前 victim 用於 半開放式連接 隊列的使用情況
(3)attack向victim的23端口發送大量SYN請求。(Telnet服務默認端口號:23)
(4)攻擊後 victim 用於 半開放式連接 隊列的使用情況
(5)observer使用telnet命令請求遠程登錄victim,登陸失敗
(6)在victim開啓SYN Cookie的情況下,SYN Flood攻擊無效。
具體原因,在前面的SYN Cookie工作原理可解釋。