当前位置 主页 > 服务器问题 > Linux/apache问题 >

    远程分析win2003 IIS安全设置

    栏目:Linux/apache问题 时间:2019-11-05 10:23

    提起微软公司IIS web服务器的安全问题,很多人立刻就会联想到那些为人们所称颂的致命漏洞: UNICODE , CGI 解析, .ida,idq, .Printer远程溢出等. 这些伟大的漏洞恐怕是我等scriptskidding的最爱了,利用他们可以很轻松的拿到较高的系统权限。但是这篇文章并非是讨论这些致命的漏洞的,只是比较详细的介绍了如何远程判断IIS 服务器的各种设置,如目录权限,认证方法等等,文中有些东西已经很老了,但是新的东西还是值得一看的。 希望本文能够起到一个抛砖引玉的作用。好了,废话少说,Go~!


    win2003 IIS安全设置远程确定目录权限


    让我们打开一个IIS服务器来看看。在IIS 服务管理器中,选择一个目录,看他的属性

    在目录属性项有有这么一些选项(日志访问和索引此资源不计):

    脚本资源访问: 对网站的脚本可以读取原文件。

    读取       读取目录里面的静态资源。

    写入       用户可以建立以及删除资源

    目录浏览     用户可以浏览目录内容。


    win2003 IIS安全设置应用程序设置的执行许可中有三个选项:

      无         只能访问静态页面

    纯脚本       只允许允许脚本 如ASP脚本

    脚本和可执行程序  可以访问和执行各种文件类型

    那么,如何确定服务器上面的这些开关设置呢? 别着急,一个一个来。


    执行权限


    如何确定某个目录是否开了执行权限呢?很简单,向服务器发送一个下面得请求: 

    http://iis-server/dir/no-such-file.dll

    /dir/为要判断得目录,no-such-file.dll是随便取得一个名字,服务器上面没有这个文件。

    服务器对我们得请求会返回一个信息。如果返回的是一个500错误:

    HTTP 500 - 内部服务器错误 (Internal Server error)

    那么就说明这个目录的执行权限是开着的。 对于服务器,能不开执行权限的就不要开。特别是虚拟目录的执行权限,大家想一想UNICODE和二次解码漏洞的利用过程就明白了。

    如果服务器返回的是一个 404 错误:

    HTTP 404 - 未找到文件

    那么就说明这个目录的执行权限没有开。


    写权限


    win2003 IIS安全设置测试一个目录对于web用户是否具有写权限,采用如下方法:

    telnet 到服务器的web端口(80)并发送一个如下请求:

    PUT /dir/my_file.txt HTTP/1.1

    Host: iis-server

    Content-Length: 10 <enter><enter>

    这时服务器会返回一个100( 继续)的信息:

    HTTP/1.1 100 Continue

    Server: Microsoft-IIS/5.0

    Date: Thu, 28 Feb 2002 15:56:00 GMT

    接着,我们输入10个字母:

    AAAAAAAAAA

    送出这个请求后,看服务器的返回信息,如果是一个 201 Created响应:

    HTTP/1.1 201 Created

    Server: Microsoft-IIS/5.0

    Date: Thu, 28 Feb 2002 15:56:08 GMT

    Location: http://iis-server/dir/my_file.txt

    Content-Length: 0

    Allow: OPTIONS, TRACE, GET, HEAD, Delete, PUT, COPY, MOVE, PROPFIND,

    PROPPATCH, SEARCH, LOCK, UNLOCK

    那么就说明这个目录的写权限是开着的,反之,如果返回的是一个 403 错误,那么写权限就是