jolt2.c是什么?
jolt2.c是在一個死循環中不停的發送一個ICMP/UDP的IP碎片,可以使Windows系統的機器死鎖。我們測試了沒打SP的Windows 2000,CPU利用率會立即上升到100%,鼠標無法移動。
我們用Snort分別抓取采用ICMP和UDP協議發送的數據包。
發送的ICMP包:
01/07-15:33:26.974096 192.168.0.9 -> 192.168.0.1
ICMP TTL:255 TOS:0x0 ID:1109 IpLen:20 DgmLen:29
Frag Offset: 0x1FFE Frag Size: 0x9
08 00 00 00 00 00 00 00 00 .........
發送的UDP包:
01/10-14:21:00.298282 192.168.0.9 -> 192.168.0.1
UDP TTL:255 TOS:0x0 ID:1109 IpLen:20 DgmLen:29
Frag Offset: 0x1FFE Frag Size: 0x9
04 D3 04 D2 00 09 00 00 61 ........a
從上面的結果可以看出:
◆分片標志位MF=0,說明是最后一個分片。
◆偏移量為0x1FFE,計算重組后的長度為 (0x1FFE *8) + 29 = 65549 >65535,溢出。
◆IP包的ID為1109,可以作為IDS檢測的一個特征。
◆ICMP包:
類型為8、代碼為0,是Echo Request;
校驗和為0x0000,程序沒有計算校驗,所以確切的說這個ICMP包是非法的。
◆UDP包:
目的端口由用戶在命令參數中指定;
源端口是目的端口和1235進行OR的結果;
校驗和為0x0000,和ICMP的一樣,沒有計算,非法的UDP。
凈荷部分只有一個字符‘a‘。
jolt2.c應該可以偽造源IP地址,但是源程序中并沒有把用戶試圖偽裝的IP地址賦值給src_addr,不知道是不是故意的。
jolt2的影響相當大,通過不停的發送這個偏移量很大的數據包,不僅死鎖未打補丁的Windows系統,同時也大大增加了網絡流量。曾經有人利用jolt2模擬網絡流量,測試IDS在高負載流量下的攻擊檢測效率,就是利用這個特性。
【編輯推薦】