jolt2.c是什么?
jolt2.c是在一個(gè)死循環(huán)中不停的發(fā)送一個(gè)ICMP/UDP的IP碎片,可以使Windows系統(tǒng)的機(jī)器死鎖。我們測(cè)試了沒(méi)打SP的Windows 2000,CPU利用率會(huì)立即上升到100%,鼠標(biāo)無(wú)法移動(dòng)。
我們用Snort分別抓取采用ICMP和UDP協(xié)議發(fā)送的數(shù)據(jù)包。
發(fā)送的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 .........
發(fā)送的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
從上面的結(jié)果可以看出:
◆分片標(biāo)志位MF=0,說(shuō)明是最后一個(gè)分片。
◆偏移量為0x1FFE,計(jì)算重組后的長(zhǎng)度為 (0x1FFE *8) + 29 = 65549 >65535,溢出。
◆IP包的ID為1109,可以作為IDS檢測(cè)的一個(gè)特征。
◆ICMP包:
類型為8、代碼為0,是Echo Request;
校驗(yàn)和為0x0000,程序沒(méi)有計(jì)算校驗(yàn),所以確切的說(shuō)這個(gè)ICMP包是非法的。
◆UDP包:
目的端口由用戶在命令參數(shù)中指定;
源端口是目的端口和1235進(jìn)行OR的結(jié)果;
校驗(yàn)和為0x0000,和ICMP的一樣,沒(méi)有計(jì)算,非法的UDP。
凈荷部分只有一個(gè)字符‘a‘。
jolt2.c應(yīng)該可以偽造源IP地址,但是源程序中并沒(méi)有把用戶試圖偽裝的IP地址賦值給src_addr,不知道是不是故意的。
jolt2的影響相當(dāng)大,通過(guò)不停的發(fā)送這個(gè)偏移量很大的數(shù)據(jù)包,不僅死鎖未打補(bǔ)丁的Windows系統(tǒng),同時(shí)也大大增加了網(wǎng)絡(luò)流量。曾經(jīng)有人利用jolt2模擬網(wǎng)絡(luò)流量,測(cè)試IDS在高負(fù)載流量下的攻擊檢測(cè)效率,就是利用這個(gè)特性。
【編輯推薦】