澳门新葡亰553311b > 新葡亰 计算机网络 > IIS PUT写权限利用演示

IIS PUT写权限利用演示
2019-12-03 15:04

今天自己的iis给人IIS PUT了,后来找到一篇关于IIS PUT攻击方法,这里我写出来希望各位站长看了之后知道如何根据此教程把自己服务器做好安全设置哦。

                                                                作者:玄魂
 

无聊日一个站的时候发现shell传上去但是403,但是运气爆棚,大荣神告诉我这个这站有iis put 写权限,果断用WVS扫一个下,扫出好多目录都有写权限。

本系列导航

先科普一下:

安全技术区 

目前大家所见到的IIS写权限利用,其实说白了是菜鸟管理员对IIS的错误配置问题(2个错误配置造成):
1.WEB服务器扩展里设置WebDAV为允许;
2.网站权限配置里开启了写入权限。

前言

至于WebDAV,看看百度百科的介绍:

   web安全实践系列主要是对《黑客大曝光——web应用安全机密与解决方案(第二版)》的内容做的实践研究和部分编程实现。所以如果您能完全理解那本书可以跳过本文章。

WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

通过前面的讨论我们已经知道了如何判断web服务器的类型信息, 这一节继续一起讨论web平台的缺陷攻击。这里说的缺陷是服务器自身的缺陷不是管理员的配置造成的缺陷。对于这种缺陷只能通过升级或者打补丁来避免。当然对于不同的服务器及存在的漏洞,我在这一节所罗列出来的都是过去时,应该都有了解决的方案。目的不是教你如何攻击web平台,而是了解什么是攻击web平台。重在介绍漏洞的原理,因为我的目的不在攻击而在技术本身。

很多微软自带的客户端工具可以发布与管理Web上的资源,就是通过WebDAV了;但是,正常的Web网站一般情况下是用不到的,因此,一般情况下根本没有必要允许WebDAV。
至于写权限,大家都明白,写权限就是允许PUT,与网站自身运行的权限无丝毫联系,如果开启了,那就是没有一点安全意识了。

正文

这个问题本质上是一个配置错误。已经出来很多年了。现在不太常见了。

 

  1. web服务扩展的webDAV扩展要开启。
  2. 主目录里的权限要给写入权限,和脚本资源访问权限(没有脚本访问权限,可以利用iis解析漏洞)。 3.匿名用户要给写权限和修改权限。

一. Iis6.0服务器名远程欺骗

图示如下:

该问题主要出现在asp或者asp.net程序想要获得应用程序所在服务器ip地址的时候。

图片 1 图片 2 图片 3

Request.ServerVariables("SERVER_NAME")或者

测试过程

使用桂林老兵的写权限利用工具和winsock expert抓包分析。 图片 4

如果服务器没有开webdav扩展,put请求返回501 not implemented ,如果开了webdav,目录没有给写入权限,返回403 forbidden,如果目录有写入权限,用户没有给写权限,返回 401 unauthorized,如果条件都满足,返回201 created,表明文件成功上传。如果文件已经存在,则更新文件,返回 200.

Request.ServerVariables["SERVER _NAME"]

利用思路

  • 上传txt,move改名为asp或者利用iis的解析漏洞。

这样的调用会返回局部环境变量中SERVER _NAME的值。如果该请求来自Internet,这个值是web服务器的ip地址。如果请求来自web服务器,该变量的值是Localhost。

一次完整攻击的日志记录

2013-06-20 03:02:30 W3SVC1 192.168.100.22 PUT /yanshi.txt - 80 - 192.168.100.33 - 201 0 0 2013-06-20 03:02:49 W3SVC1 192.168.100.22 MOVE /yanshi.txt - 80 - 192.168.100.33 - 201 0 0 2013-06-20 03:03:23 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:03:23 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:03:31 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:03:33 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:03:58 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:03:59 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:04:00 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:04:00 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0 2013-06-20 03:04:03 W3SVC1 192.168.100.22 POST /yanshi.asp - 80 - 192.168.100.33 Mozilla/5.0+(Windows;+Windows+NT+5.1;+en-US)+Firefox/3.5.0 200 0 0

先通过put方法上传文件,然后使用move方法修改文件名。之后post数据跟webshell交互。检测到put跟move方法,就可以判断为上传木马的尝试,是否成功需要看服务器返回的状态码。

 

207 Multi-Status

关于move操作的时候返回207 的问题,参考资料里有提到。解决方案就是利用iis的解析漏洞。经过一番测试发现,之所以会出现这个问题,是由于服务器的配置问题。如果目录权限没有给脚本资源访问的权限,那么会返回207 同时body里面会说明是 403 forbidden,可以通过iis的解析漏洞解决。还有一种情况是匿名用户没有文件修改权限,这是body里说明是401 unauthorized,这种情况就没有办法了。

PUT了,后来找到一篇关于IIS PUT攻击方法,这里我写出来希望各位站长看了之后知道如何根据此教程把自己服务器做好安...

对下面这个地址

http://nic.ustl.edu.cn/

我们一般的请求是

GET / HTTP/1.1

Host: nic.ustl.edu.cn

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

得到的响应是图片 5

我们也可以修改成

GET / HTTP/1.1

Host: 127.0.0.1

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3。。。。。。

得到的响应是

图片 6

两次收到信息是不同的。是不是很有意思?也许幸运的话能得到更多隐秘的信息,这个例子只想说的是对于来自internet和服务器自己的请求,iis的处理是不同的,从这个不同当中我们能获得什么呢?过多的演示我不去做,这里只简单的提一下。

(1)正常访问没有权限获得的东西也许这时你可以获得。

(2)对于同样的错误iis会返回不同的信息,你可以获得更多的细节。

在一些代码中就经常引用该变量来探测IP是否是服务器本身,这就带来了一系列的非法利用如Cookie窃取,数据转向或者其他的URL处理中.

让我们来看另一个变量——REMOTE_ADDR。这应该是确定请求来自远程还是本地的正确方法,它会告诉客户端的ip地址。

上一篇:MySQL 关于索引那点事,MySQL索引 下一篇:没有了