由于WindowsNT/2000操作系统的普及率和市场占有率比较高,所以很容易使它成为很多黑客攻击的目标。目前,WindowsNT/2000最主要的漏洞有Unicode漏洞、.ida/.idq缓冲区溢出漏洞、MicrosoftIISCGI文件名错误解码漏洞、MSADCSRDS弱点漏洞、FrontPage服务器扩展和.Printer漏洞等等。下面笔者将对这些漏洞的原理、危害程度、检测和解决办法分别进行介绍。
一、Unicode漏洞
1.漏洞危害
在Unicode字符解码时,IIS4.0/5.0存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当用户用IIS打开文件时,如果该文件名包含Unicode字符,系统会对其进行解码。如果用户提供一些特殊的编码,将导致IIS错误地打开或者执行某些Web根目录以外的文件。未经授权的用户可能会利用IUSR_machinename账号的上下文空间访问任何已知的文件。该账号在默认情况下属于Everyone和Users组的成员,因此任何与Web根目录在同一逻辑驱动器上的能被这些用户组访问的文件都可能被删除、修改或执行。通过此漏洞,您可查看文件内容、建立文件夹、删除文件、拷贝文件且改名、显示目标主机当前的环境变量、把某个文件夹内的全部文件一次性拷贝到另外的文件夹去、把某个文件夹移动到指定的目录和显示某一路径下相同文件类型的文件内容等等。
2.漏洞成因
Unicode漏洞的成因可大致归结为:从中文WindowsIIS4.0+SP6开始,还影响中文Windows2000+IIS5.0、中文Windows2000+IIS5.0+SP1。台湾繁体中文也同样存在这样的漏洞。它们利用扩展Unicode字符(如利用“../”取代“/”和“\”)进行目录遍历漏洞。据了解,在WindowsNT中编码为%c1%9c,在Windows2000英文版中编码为%c0%af。
3.漏洞检测
首先,对网络内IP地址为*.*.*.*的WindowsNT/2000主机,您可以在IE地址栏输入http://*.*.*.*/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir(其中%c1%1c为Windows2000漏洞编码,在不同的操作系统中,您可使用不同的漏洞编码),如漏洞存在,您还可以将Dir换成Set和Mkdir等命令。
其次,您要检测网络中某IP段的Unicode漏洞情况,可使用有如Red.exe、SuperScan、RangeScan扫描器、Unicode扫描程序Uni2.pl及流光Fluxay4.7和SSS等扫描软件来检测。
4.解决方法
若网络内存在Unicode漏洞,可采取如下方法进行补救:
(1)限制网络用户访问和调用CMD命令的权限;
(2)若没必要使用SCRIPTS和MSADC目录,删除或改名;
(3)安装WindowsNT系统时不要使用默认WINNT路径,您可以改为其他的文件夹,如C:\mywindowsnt;