SYN攻擊
xxx.xx.xxx.xxx機器上用netstat –n –p tcp命令查看,可以發現很多SYN_RECEIVED串連。
而且都是發生在80連接埠上,而且無法正常訪問80連接埠上的服務。其他的網路連接、服務都是
正常的。正常情況下不應該出現大量SYN_RECEIVED狀態的TCP串連。例外這些串連的來源地址
都是有一定的規律。根據經驗可以確定是有惡意者對xxx.xx.xxx.xxx進行D.o.S(Denial of
Service)攻擊。
執行netstat命令結果如下:
Active Connections
Proto Local Address Foreign Address State
TCP 127.0.0.1:1025 127.0.0.1:1033 ESTABLISHED
TCP 127.0.0.1:1033 127.0.0.1:1025 ESTABLISHED
TCP xxx.xx.xxx.xxx:80 1.129.155.213:56048 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 8.71.96.232:18544 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 17.95.29.168:33072 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 33.212.238.226:29024 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 33.250.131.21:46336 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 41.254.157.63:26688 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 44.6.143.72:14352 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 44.233.0.83:2368 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 46.172.194.36:60560 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 52.141.107.180:34048 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 58.92.189.37:59680 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 147.24.54.140:42160 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 150.41.8.196:50864 SYN_RECEIVED
........................
........................
TCP xxx.xx.xxx.xxx:80 157.176.98.17:49712 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 165.217.228.103:18416 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 171.191.13.61:64656 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 174.45.224.245:30896 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 181.118.121.182:23984 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 191.3.0.46:2864 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 196.235.126.62:57024 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 208.104.144.7:50912 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 209.232.143.50:57248 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 214.14.49.76:50496 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 223.71.101.172:62528 SYN_RECEIVED
........................
........................
攻擊方式的分析:
通過對netstat命令結果的分析。可以知道這是利用TCP的脆弱性進行攻擊的。簡單說就是攻
擊者偽造一個假的IP包,發送到目標攻擊的機器,浪費目標機器上的TCP資源,從而是目標機
器無法為正常訪問者提供服務的一種攻擊。
現今很多Internt的服務都是建立在TCP串連上面的,包括Telnet ,WWW, Email。當一台機器
(我們稱它為用戶端)企圖跟一個台提供服務的機器(我們稱它為服務端)建立TCP串連時,
它們必須先按次序交換通訊好幾次,這樣TCP串連才能建立起來。
開始用戶端會發送一個帶SYN標記的包到服務端;
服務端收到這樣帶SYN標記的包後,會發送一個帶SYN-ACK標記的包到用戶端作為確認;
當用戶端收到服務端帶SYN-ACK標記的包後 ,會向服務端發送一個帶ACK標記的包。
完成了這幾個步驟(如),它們的TCP串連就建立起來了,可以進行資料通訊。
用戶端 服務端
SYN →
← SYN-ACK
ACK →
攻擊者就是利用TCP串連的建立需要這樣的過程的特點,作為攻擊的手段。
他們(攻擊者)偽造一個IP包,其中裡麵包含一個SYN標記和假的源IP地址,發送到目標機器
(受攻擊的機器)。
目標機器(受攻擊的機器)收到攻擊者發送過來的偽造的IP包,會嘗試向IP包裡面記錄的源
IP地址發送一個帶SYN-ACK標記的包到源IP地址的機器上。
由於攻擊者發送過來的IP包裡麵包含的源IP地址為偽造的,所以目標機器(受攻擊的機器)
根本無法成功發送帶SYN-ACK標記的包到偽造的源IP地址的機器上。造成目標機器(受攻擊的
機器)的等待,嘗試再串連。
因為目標機器(受攻擊的機器)的等待是需要佔用系統一定的資源的。如果這樣的串連到了
一定的數目,系統沒有更多的資源來為新的串連作出響應,那麼TCP串連就無法建立,換而言
之,就是無法提供正常的服務。
而這些等待的資源會在一定的時間(Time Out)後被釋放。而Windows NT的預設設定第一次為
3秒的逾時,嘗試5次,每次嘗試的逾時時間為前一次的兩倍。如下表:
花費時間(秒) 累計花費時間(秒)
第一次,失敗 3 3
嘗試第1次,失敗 6 9
嘗試第2次,失敗 12 21
嘗試第3次,失敗 24 45
嘗試第4次,失敗 48 93
嘗試第5次,失敗 96 189
從上表,我們可以看到,如果是Windows NT預設的設定,那麼一個這樣攻擊,將會把響應的
資源佔用189秒,189秒後系統才會自動釋放。如果這樣的串連數目到了一定程度之後,系統
就無法提供正常的服務了。