当前位置:主页>科 研>学术交流>

IIS WebDAV安全配置

  WebDAV是一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法。

  使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

  IIS实现Webdav是采用的其两种接口CGI、ISAPI的ISAPI接口。

  但因为其没有采用影射的方式,所以IIS的主程序w3svc.dll本身包含了Webdav的信息。

  其识别出是Webdav的请求后就调用Webdav的处理模块httpext.dll。

  对于常见几种请求方法GET、HEAD、POST等,因为常见一些映射都支持。

  所以不能以请求方法作为Webdav请求的判断,w3svc.dll就根据请求头的字段识别。

  如果请求头里面包含Translate:、If:、Lock-Token:中的一种,就认为是Webdav的请求。

  Translate:就是那个Translate:f的泄露源代码的一个请求头,其实设置别的两个也是一样的。

  可能很多IDS是没有这点知识的。W3svc.dll还内置了几个别的请求方法TRACK、TRACE等。

  TRACK就是用于调试错误的,如果收到这样的请求头,w3svc.dll会原样返回请求数据。

  相当于我们常见的ping.exe。

  IIS对TRACK请求没有进行LOG记录,这点我们可以用于来获得banner。

  对于IIS将优于大家习惯使用的HEAD。

  如果上面的请求方法没匹配,那么w3svc.dll就会认为是Webdav的请求,交给httpext.dll处理了。

  这些请求包含Webdav支持的PROPFIND、PROPPATCH、MKCOL、DELETE、PUT、COPY、MOVE、LOCK、UNLOCK等。

  0x01 配置

  为了安全上的考虑,IIS默认并不会启动WebDAV的功能,因此必须另外来激活它。

  通过启动“IIS管理器”,展开本地计算机,选择“Web服务扩展”,选择“允许”的途径来启动WebDAV功能。

  开启WebDAV之后,IIS就支持PROPFIND、PROPPATCH、MKCOL、DELETE、PUT、COPY、MOVE、LOCK、UNLOCK等方法了。

  当IIS中的配置允许写入的时候就可以直接PUT文件上去,由此可能引发非常严重的安全问题,强烈建议禁制

  当开启了WebDAV后,IIS中又配置了目录可写,便会产生很严重的问题。 wooyun上由此配置产生的问题很多,并且有老外黑了一群中国政府站有一部分就是由于此配置。 危害巨大,操作简单,直接批量扫描,上传shell。

  WooYun: 闪动科技webserver配置不当可取shell

  WooYun: 瑞达信息安全产业股份有限公司IIS写入漏洞

  WooYun: 海航webdav漏洞导致服务器沦陷

  WooYun: 阿里某邮件系统服务器配置不当

  WooYun: 国家某局某文件系统存在严重安全问题

  WooYun: 国内某大型风电工控系统应用配置失误

  0x03 查找存在问题的服务器

  对服务器发送OPTION包:

  OPTIONS / HTTP/1.1

  Host: www.test.com

  返回响应头如下:

  HTTP/1.1 200 OK

  Server: Microsoft-IIS/6.0

  X-Powered-By: ASP.NET

  MS-Author-Via: DAV

  Content-Length: 0

  Accept-Ranges: none

  DASL:

  DAV: 1, 2

  Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH

  Allow: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK

  Cache-Control: private

  当ALLOW中包含如上方法时,可以确定服务器开启了WebDAV。

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

  PUT /test.txt HTTP/1.1

  Host: www.test.com

  Content-Length: 23

  启用了“WebDAV”扩展,并且复选了“写入”,就可以写入txt文件了。要想使用MOVE命令将其更名为脚本文件后缀,必须还复选上“脚本资源访问”。

  但是发现利用IIS的解析漏洞,可以MOVE成test.asp;.jpg,然后就可以当做shell来执行了

  MOVE /test.txt HTTP/1.1

  Host: www.test.com

  Destination: /Article/UploadPic/2013-7/201371910405176.jpg

  有一个开源的DAV管理工具,使用工具直接查看:

  http://www.davexplorer.org/download.html

  0x03 修复方案

  1 禁用WebDAV。

  通常情况下网站不需要支持额外的方法,右键WebDAV,点击禁用即可。

  2 如果要使用WebDAV的话,加上权限验证。

  如果选取“脚本资源访问”,则用户将具备修改WebADV文件夹内的脚本文说明件(scriptfile)的功能。

  除了此处的虚拟目录权限外,还需要视NTFS权限,才可以决定用户是否有权限来访问WebDAV文件夹内的文件。

  WebDAV文件夹的NTFS权限给予用户适当的NTFS权限。

  首先请设置让Everyone组只有“读取”的权限,然后再针对个别用户给予“写入”的权限,例如我们给予用户“User”写入的权限。

  选择验证用户身份的方法启动“IIS管理器”,然后右击WebDAV虚拟目录,选择“属性”→“目录安全性”,单击“身份验证和访问控制”处的编辑按钮。

  不要选取“启用匿名访问”,以免招致攻击。选择安全的验证方法,选择“集成Windows身份验证”。

(责任编辑:)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部