2003蠕蟲王”(Worm.NetKiller2003),其危害遠遠超過曾經肆虐一時的紅色代碼病毒。
感染該蠕蟲病毒後網絡帶寬被大量占用,導致網絡癱瘓,該蠕蟲是利用SQL SERVER 2000 的解析端口1434的緩沖區溢出漏洞,對其網絡進行攻擊。由於“2003蠕蟲王”具有極強的傳播能力,目前在亞洲、美洲、澳大利亞等地迅速傳播,已經造成了全球性的網絡災害。由於1月25日正值周末,其造成的惡果首先表現為公用互聯網絡的癱瘓,預計在今後幾天繼續呈迅速蔓延之勢。
2003蠕蟲病毒是一個極為罕見的具有極其短小病毒體卻具有極強傳播性的蠕蟲病毒。該蠕蟲利用Microsoft SQL Server 2000緩沖區溢出漏洞進行傳播,詳細傳播過程如下:
該病毒入侵未受保護的機器後,取得三個Win32 API地址,GetTickCount、socket、sendto,接著病毒使用GetTickCount獲得一個隨機數,進入一個死循環繼續傳播。在該循環中蠕蟲使用獲得的隨機數生成一個隨機的ip地址,然後將自身代碼發送至1434端口(Microsoft SQL Server開放端口),該蠕蟲傳播速度極快,其使用廣播數據包方式發送自身代碼,每次均攻擊子網中所有255台可能存在機器。 易受攻擊的機器類型為所有安裝有Microsoft SQL Server 2000的NT系列服務器,包括WinNT/Win2000/WinXP等。所幸該蠕蟲並未感染或者傳播文件形式病毒體,純粹在內存中進行蔓延。 病毒體內存在字符串“h.dllhel32hkernQhounthickChGet”、“Qh32.dhws2_f”、“etQhsockf”、“toQhsend”。 該病毒利用的安全漏洞於2002年七月被發現並在隨後的MS SQL Server2000補丁包中得到修正。
蠕蟲病毒的特征
該蠕蟲攻擊安裝有Microsoft SQL 的NT系列服務器,該病毒嘗試探測被攻擊機器的1434/udp端口,如果探測成功,則發送376個字節的蠕蟲代碼。1434/udp端口為 Microsoft SQL開放端口。該端口在未打補丁的SQL Server平台上存在緩沖區溢出漏洞,使蠕蟲的後續代碼能夠得以機
會在被攻擊機器上運行進一步傳播。
該蠕蟲入侵MS SQL Server系統,運行於MS SQL Server 2000主程序sqlservr.exe應用程序進程空間,而MS SQL Server 2000擁有最高級別System權限,因而該蠕蟲也獲得System級別權限。 受攻擊系統:未安裝MS SQL Server2000 SP3的系統
而由於該蠕蟲並沒有對自身是否已經侵入系統的判定,因而該蠕蟲造成的危害是顯然的,不停的嘗試入侵將會造成拒絕服務式攻擊,從而導致被攻擊機器停止服務癱瘓。
該蠕蟲由被攻擊機器中的sqlsort.dll存在的緩沖區溢出漏洞進行攻擊,獲得控制權。隨後分別從kernel32以及 ws2_32.dll中獲得GetTickCount函數和socket以及sendto函數地址。緊接著調用 gettickcount函數,利用其返回值產生一個隨機數種子,並用此種子產生一個IP地址作為攻擊對象;隨後創建一個UDP socket,將自身代碼發送到目的被攻擊機器的1434端口,隨後進入一個無限循環中,重復上述產生隨機數計算ip地址,發動攻擊一系列動作。
感染蠕蟲病毒後的解決方法
建議所有運行Microsoft SQL Server 2000和近期發現網絡訪問異常的用戶按照以下解決方案操作:
1、阻塞外部對內和內部對外的UDP/1434端口的訪問。
如果該步驟實現有困難可使用邊界防火牆或者路由器上或系統中的TCP-IP篩選來阻塞對本機UDP/1434端口的訪問。
2、找到被感染的主機
在邊界路由器(或者防火牆)上進行檢查,也可啟動網絡監視程序(譬如Sniffer Pro)進行檢查,找到網絡中往目的端口為UDP/1434發送大量數據的主機,這些主機極為可能感染了該蠕蟲。
如果不能確定,則認為所有運行Microsoft SQL Server 2000 而沒有安裝補丁程序的機器都是被感染的機器。
可以使用端口掃描程序對UDP/1434端口進行掃描來找到運行Microsoft SQL Server 2000的主機,但是由於UDP端口掃描並不准確,可以掃描TCP/1433端口找到運行SQL Server的主機。但需要注意的是,只有SQL Server 2000才會受到此蠕蟲的感染。
3、拔掉被感染主機的網線。
4、重新啟動所有被感染機器,以清除內存中的蠕蟲。關閉SQL Server服務以防止再次被蠕蟲感染。
5、插上被感染機器的網線
注意:如果由於某種原因無法從網絡下載補丁進行安裝,因此可以在其他未被感染的主機上下載補丁,刻錄在光盤或者保存在其他移動介質上,然後再到被感染的主機上進行安裝。