0x01 前言
渗透过程中会遇到各种中间件,某些中间件版本存在远程执行、任意文件上传等漏洞。本文对IIS相关漏洞进行整理,方便我们在渗透过程中快速查阅IIS漏洞。文章粗略浅显,适合刚入行的新手观看。
0x02 目录
IIS6.0 PUT漏洞
IIS6.0 远程代码执行漏洞 CVE-2017-7269
IIS6.0 解析漏洞
IIS7.0/7.5 解析漏洞
IIS短文件名漏洞
IIS对应windows系统版本:
Windows Server 2000 —— IIS 5.0
Windows XP SP1 —— IIS 5.1
Windows XP SP2,SP3 —— IIS 5.1
Windows Server 2003,XP porfessional —— IIS 6.0
Windows Vista Ultimate —— IIS 7.0
Windows 7 —— IIS 7,IIS 7.5
Windows Server 2008 SP2,SP3 —— IIS 7.0
Windows Server 2008 R2,部分Windows 7 —— IIS 7.5
Windows Server 2008 SP2,SP3 —— IIS 7.0
Windows Server 2012,Windows 8 —— IIS 8.0
Windows Server 2012 R2 —— IIS 8.5
windows Server 2016,Windows10 —— IIS 10
0x03 IIS6.0 PUT漏洞
漏洞原理
IIS6.0 server在web服务扩展中开启了WebDAV(Web-based Distributed Authoring and Versioning)。WebDAV是一种HTTP1.1的扩展协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,如PUT,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。可以像在操作本地文件夹一样操作服务器上的文件夹,该扩展也存在缺陷,利用PUT方法可直接向服务器上传恶意文件,控制服务器。
环境搭建
windows server 2003 安装IIS6.0:
开启WebDAV服务:
网站目录允许来宾用户写入:
漏洞复现
这里我们使用IISPutScanner工具进行复现。
首先使用工具扫描目标地址:
发现存在IIS6.0 PUT漏洞,右键选择上传文件:
数据包格式选择PUT,选择asp一句话木马,点击提交数据包:
然后数据包格式选择MOVE,再次点击提交数据包,此时可得到webshell路径:
使用菜刀连接我们的webshell:
成功获得服务器权限。
修复方案
- 关闭WebDAV服务扩展
- 关闭IIS来宾用户写入权限
0x04 IIS6.0 远程代码执行漏洞 CVE-2017-7269
漏洞原理
在Windows Server 2003的IIS6.0的WebDAV服务的ScStoragePathFromUrl函数存在缓存区溢出漏洞,攻击者通过一个以"If: <http://"
开始的较长header头的PROPFIND请求执行任意代码,控制目标主机。