2003年1月25日,互联网上出现一种新型高危蠕虫病毒——“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、插上被感染机器的网线 注意:如果由于某种原因无法从网络下载补丁进行安装,因此可以在其他未被感染的主机上下载补丁,刻录在光盘或者保存在其他移动介质上,然后再到被感染的主机上进行安装。 |