Web中间件漏洞复现合集---IIS篇

目录

前言

一、Win2003_IIS6.0环境搭建

二、PUT漏洞

1.漏洞介绍

2.漏洞复现

3.报错问题解决

4.漏洞修复方案

三、短文件名猜解

1.漏洞介绍

2.复现过程

3.漏洞修复

三、Win2008 R2_IIS环境搭建

四、远程代码执行

(一)Cve-2017-7269(0day漏洞)

1.漏洞介绍

2.漏洞复现

3.漏洞修复

(二)cve-2015-1635

1.漏洞介绍

2.漏洞复现

3.漏洞修复

五、解析漏洞

(一)目录解析

1.漏洞介绍

2.漏洞复现

(二)文件解析

1.漏洞介绍

2.漏洞复现

(三)漏洞修复


前言

        从大佬们那里学习了一下Web中间件相关漏洞,这次尝试复现IIS常见的一些漏洞,包括PUT漏洞、短文件名猜解、远端代码执行、解析漏洞等。复现也有靶场环境搭建,漏洞介绍与修复方法。

并提供一下我复现过程中使用的工具/软件:(iiswrite/iisputscanner/iis6.0exe/3389.bat)

链接:百度网盘 iis漏洞复现工具

提取码:qtqu

一、Win2003_IIS6.0环境搭建

1.安装win2003:

具体安装过程我就不写了,安装好后我的win2003的IP为192.168.111.138。

镜像包链接:百度网盘 win2003 r2 sp2镜像包

提取码:ao2w

%提供一个密钥:

DVB4Y-KF6GK-MT3XX-FW3HC-VXTB6

2.安装IIS:

2.1依次点击开始->控制面板->添加或删除程序->添加/删除Windows组件(左侧第三个)->找到应用程序服务器:

Web中间件漏洞复现合集---IIS篇_第1张图片

2.2双击打开(或点击详细信息),如图勾选:

Web中间件漏洞复现合集---IIS篇_第2张图片

2.3确定后,点击下一步安装,完成后可以在开始->管理工具->进入Internet信息服务(IIS)管理器:

Web中间件漏洞复现合集---IIS篇_第3张图片

2.4至此一个简单的IIS6.0搭建完成。

二、PUT漏洞

1.漏洞介绍

根据put协议,当我们浏览某个网站,访问某个资源时,如果网站存在这个资源,则会进行替换,若网站不存在这个资源,则会创建这个资源,所以我们可以利用put直接对网站写shell。

而IIS Server 如果在 Web 服务扩展中开启了 WebDAV ,配置了可以写入的权限,结合put协议就会造成任意文件上传漏洞。

2.漏洞复现

2.1在靶机win2003搭建好IIS服务(iis6.0),开启IIS的WebDAV功能:

Web中间件漏洞复现合集---IIS篇_第4张图片

2.2选择左侧网站->默认网站(右击)->属性->主目录,允许写入(必需)、脚本资源访问(非必需,之后解释,这里先允许):

Web中间件漏洞复现合集---IIS篇_第5张图片

2.3默认网站(右击)->权限,允许来宾用户的写入权限,IIS_WPG默认读取与运行权限即可:

Web中间件漏洞复现合集---IIS篇_第6张图片

2.4访问http://192.168.111.138(win2003),burp抓包,修改GET为OPTIONS发送,测试允许的方法。

Web中间件漏洞复现合集---IIS篇_第7张图片

2.5再使用IIS put scanner扫描一下判断是否允许put方法:

Web中间件漏洞复现合集---IIS篇_第8张图片

2.6如果这时候把WebDAV禁止,再次扫描发现PUT-NO:

Web中间件漏洞复现合集---IIS篇_第9张图片

Web中间件漏洞复现合集---IIS篇_第10张图片

2.7使用iiswrite工具进行iis put漏洞测试利用,首先使用PUT方法进行绕过,上传包含asp一句话木马的test.txt文件:

Web中间件漏洞复现合集---IIS篇_第11张图片

2.8回到靶机,发现目录下已生成相应文件:

Web中间件漏洞复现合集---IIS篇_第12张图片

2.9之后利用move方法将txt转为木马文件,执行后出现报错但依然可以发现生成了shell.asp文件:

Web中间件漏洞复现合集---IIS篇_第13张图片

Web中间件漏洞复现合集---IIS篇_第14张图片

2.10使用蚁剑进行连接,成功getshell:

Web中间件漏洞复现合集---IIS篇_第15张图片

Web中间件漏洞复现合集---IIS篇_第16张图片

3.报错问题解决

3.1如果网站属性中未允许脚本资源访问(如图),那么会在move方法修改txt文件时报错,但可以通过利用IIS目录解析漏洞中的文件解析漏洞,使脚本正常生成:

Web中间件漏洞复现合集---IIS篇_第17张图片

3.2利用IIS目录解析漏洞,在shell.asp后面加上【 ;.txt】,提交数据包成功绕过,发现网站生成了一个shell.asp;.txt文件:

Web中间件漏洞复现合集---IIS篇_第18张图片

Web中间件漏洞复现合集---IIS篇_第19张图片

3.3再次通过蚁剑连接,成功上线:

Web中间件漏洞复现合集---IIS篇_第20张图片

4.漏洞修复方案

4.1.在Web 服务扩展中关闭 WebDAV;

4.2.禁用访客写入权限。

三、短文件名猜解

1.漏洞介绍

IIS的短文件名机制,用户通过特殊payload访问构造的某个存在的短文件名,会返回404,访问不存在的短文件名,返回400,故而可以暴力猜解短文件名。

它使攻击者可以获取Web根目录下的文件/文件名,造成敏感信息泄露。

更多关于短文件名的原理请参考:iis短文件名猜解一晓风的博客-CSDN博客iis短文件

2.复现过程

2.1首先在默认网站根目录下创建符合字符长度的文件bbccddee.html以及文件夹webtest_efwef:

Web中间件漏洞复现合集---IIS篇_第21张图片

2.2同时由于使用的是IIS6.0(<8.0),需要在web服务拓展里开启ASP.NET:

Web中间件漏洞复现合集---IIS篇_第22张图片

2.3打开cmd命令行,进入web目录,通过dir /x命令,查看短文件名:

Web中间件漏洞复现合集---IIS篇_第23张图片

2.4通过访问http://your-ip/*~1*/a.aspx查看返回结果,如果是404,则代表存在短文件,如果出现bad request(400)则表示不存在:

http://192.168.111.138/*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第24张图片

2.5修改访问链接,http://your-ip/XXX*~1*/a.aspx通过返回结果判断短文件名,如果是404则猜测正确。现在我们测试一下‘wa’,返回Bad Request,不存在:

http://192.168.111.138/wa*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第25张图片

2.6将‘wa’修改为‘we’,发现返回404,表示该文件名正确:

http://192.168.111.138/we*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第26张图片

2.7进而我们可以通过不断修改url判断完整的短文件名(最多6个),这里也可以通过编写脚本快速测试:

http://192.168.111.138/webtes*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第27张图片

2.8判断出了短文件名‘webtes‘后,接下来还要判断该短文件是文件还是文件夹,通过修改访问http://your-ip/*~1/a.aspx,如果返回404则表示该短文件是文件夹:

http://192.168.111.138/webtes*~1/a.aspx

Web中间件漏洞复现合集---IIS篇_第28张图片

2.9接下来我们判断另一个html文件,首先判断第一个字符,测试‘c’,发现返回bad request,代表错误:

http://192.168.111.138/c*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第29张图片

2.10修改字符为‘b’,发现返回404,则该短文件第一个字符为b:

http://192.168.111.138/b*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第30张图片

2.11继续修改为‘bbccdc’,查看返回结果为400,说明错误需要继续测试:

http://192.168.111.138/bbccdc*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第31张图片

2.12最后修改为‘bbccdd‘后返回404,成功得到短文件名:

http://192.168.111.138/bbccdd*~1*/a.aspx

Web中间件漏洞复现合集---IIS篇_第32张图片

2.13根据之前分辨文件夹的方法,得到返回结果400,所以判断该短文件不是文件夹:

http://192.168.111.138/bbccdc*~1/a.aspx

2.14确定了文件名,之后就以类似的方法判断文件后缀,修改http://your-ip/xxxxxx~1.XXX/a.aspx,逐一判断后缀字符,首先判断‘a’,发现返回400,继续尝试:

http://192.168.111.138/bbccdd*~1.a*/a.aspx

Web中间件漏洞复现合集---IIS篇_第33张图片

2.15修改到‘h’后,访问返回404,说明后缀第一个字符为h:

http://192.168.111.138/bbccdd*~1.h*/a.aspx

Web中间件漏洞复现合集---IIS篇_第34张图片

2.16确定了‘h’,我们可以简单猜测该文件是html文件,修改url为’htm‘(短文件后缀不超过3个),访问后返回404,所以该文件是html文件:

http://192.168.111.138/bbccdd*~1.htm*/a.aspx

Web中间件漏洞复现合集---IIS篇_第35张图片

2.17根据这种方法我们可以得到其他短文件,比如在put漏洞中上传的shell.asp;.txt所形成的短文件:

http://192.168.111.138/shella*~1.txt*/a.aspx

Web中间件漏洞复现合集---IIS篇_第36张图片

3.漏洞修复

3.1升级.net framework;

3.2修改注册表禁用短文件名功能:

快捷键Win+R打开命令窗口,输入regedit打开注册表窗口,找到路径‘HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem’,将其中的 NtfsDisabledotNameCreation这一项的值设为 1,1代表不创建短文件名格式,修改完成后,需要重启系统生效;

3.3CMD关闭NTFS 8.3文件格式的支持;

3.4将web根目录的内容拷贝到另一个位置,如c:\wwwroot到d:\wroot,然后删除原文件夹,再重命名d:\wroot到c:\wwwroot。

三、Win2008 R2_IIS环境搭建

1.安装win2008 R2

具体安装过程就不说了,很简单。安装好后的IP为192.168.111.143。

我这里提供一下镜像包:

链接:百度网盘 win2008 r2镜像包

提取码:2rhl

进入win2008安装vmware tool时会提醒你升级到sp1,否则无法安装,我这里给一下补丁网址,在虚拟机内下载安装升级补丁:

WindowsServer2008R2下载_Windows7Server2008R2SP1绿色版官方下载-华军软件园

2.安装IIS

2.1开始->管理工具->服务器管理器->点击角色->选择添加角色:

Web中间件漏洞复现合集---IIS篇_第37张图片

2.2默认下一步,在服务器角色选择Web服务器(IIS),点击下一步:

Web中间件漏洞复现合集---IIS篇_第38张图片

2.3在角色服务中勾选应用程序开发->ASP.NET,之后下一步,安装:

Web中间件漏洞复现合集---IIS篇_第39张图片

2.4安装完成后关闭界面,可以在服务器管理器中看到成功安装Web角色:

Web中间件漏洞复现合集---IIS篇_第40张图片

2.5访问界面:

Web中间件漏洞复现合集---IIS篇_第41张图片

四、远程代码执行

(一)Cve-2017-7269(0day漏洞)

1.漏洞介绍

        Windows server 2003 R2版本IIS6.0的WebDAV服务中的ScStorgPathFromUrl函数存在缓冲区溢出漏洞,远程攻击者通过以“if:

        在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,从而导致远程代码执行。

2.漏洞复现

2.1做好环境准备,打开IIS管理器,开启Web服务扩展中WebDAV功能:

Web中间件漏洞复现合集---IIS篇_第42张图片

2.2getshell:

查找并下载exp,并将其放入metasploit中:

Web中间件漏洞复现合集---IIS篇_第43张图片

2.3修改exp文件名格式,并赋予执行权限:(必须,否则msf无法检测到该exp)

Web中间件漏洞复现合集---IIS篇_第44张图片

2.4使用msf工具进行利用getshell,使用刚刚的exp,设置好sessions,执行:

Web中间件漏洞复现合集---IIS篇_第45张图片

2.5执行后成功上线,下一步开始提权:

Web中间件漏洞复现合集---IIS篇_第46张图片

2.6Ctrl+z退出shell,上传IIS6.0.exe木马程序,经测试暂无法上传,再次shell进入,在c中创建一个文件目录‘shelliis’:

Web中间件漏洞复现合集---IIS篇_第47张图片

2.7退出后重新上传,shell进入后查看文件夹,木马程序上传成功:

Web中间件漏洞复现合集---IIS篇_第48张图片

2.8通过IIS6.0.exe方式执行命令,如whoami,发现成功提权:

Web中间件漏洞复现合集---IIS篇_第49张图片

2.9通过该方法添加用户test1,设置密码为123456:

Web中间件漏洞复现合集---IIS篇_第50张图片

2.10之后赋予该用户系统管理员权限,将test1加入管理员组:

Web中间件漏洞复现合集---IIS篇_第51张图片

2.11Net user查看用户:

Web中间件漏洞复现合集---IIS篇_第52张图片

2.12攻击端开启远程桌面,首先查看靶机是否开启远程连接服务,发现3389端口未开启:

Web中间件漏洞复现合集---IIS篇_第53张图片

2.13自己编写一个开启3389端口的脚本(脚本很简单,自己可以网上找,这里我将脚本分享一下),编写好后将3389.bat上传到shelliis目录下:

##创建文档,写入以下内容,保存为.bat文件即可:

echo Windows Registry Editor Version 5.00    1>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg
echo "fDenyTSConnections"=dword:00000000    1>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]    1>>3389.reg
echo "PortNumber"=dword:00000d3d    1>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]    1>>3389.reg
echo "PortNumber"=dword:00000d3d    1>>3389.reg
regedit /s 3389.reg
del 3389.reg

Web中间件漏洞复现合集---IIS篇_第54张图片

2.14通过IIS6.0.exe程序运行3389脚本,如图为正确执行状态:

Web中间件漏洞复现合集---IIS篇_第55张图片

2.15再次netstat -an查看开放端口,发现3389端口成功开启:

Web中间件漏洞复现合集---IIS篇_第56张图片

2.16在攻击端远程连接,因为刚刚已经将test1加入管理员组,所以直接用test1用户登录:

Web中间件漏洞复现合集---IIS篇_第57张图片

2.17远程连接登录成功:

Web中间件漏洞复现合集---IIS篇_第58张图片

3.漏洞修复

禁用WebDAV,做好相关限制。

(二)cve-2015-1635

1.漏洞介绍

IIS中默认启用 内核缓存,执行与请求处理管道中缓存有关的任务。当HTTP协议堆栈(HTTP.sys)不正确地解析HTTP请求时会导致IIS远程代码执行漏洞。

安装了微软IIS 6.0以上的win 7/8/8.1/2008 R2/2012/2012 R2都受到这个漏洞的影响。

2.漏洞复现

2.1在kali上执行命令curl http://192.168.111.143 -H "Host:192.168.111.143" -H "Range:bytes=0-18446744073709551615"

Web中间件漏洞复现合集---IIS篇_第59张图片

如果返回结果为Requested Range Not Satisfiable则存在漏洞,若返回“the request has an invalid header name”,则说明该漏洞已修补。

2.2msf工具漏洞利用,开启msf后查找模块:

Web中间件漏洞复现合集---IIS篇_第60张图片

2.3使用第一个模块,设置好session,进行ddos攻击:

Web中间件漏洞复现合集---IIS篇_第61张图片

2.4攻击成功后靶机蓝屏重启:

Web中间件漏洞复现合集---IIS篇_第62张图片

2.5接下来我使用第二个模块进行内存数据爆破,但是失败了,应该是靶机IIS服务配置出现了问题:

Web中间件漏洞复现合集---IIS篇_第63张图片

2.6后续通过测试,应该是靶机IIS服务器下没有创建网页等,所以回到靶机IIS管理器->选择网站->右键添加网站->设置好一些信息:

Web中间件漏洞复现合集---IIS篇_第64张图片

2.7再次回到kali,运行,发现成功读取靶机内存信息:

Web中间件漏洞复现合集---IIS篇_第65张图片

Web中间件漏洞复现合集---IIS篇_第66张图片

3.漏洞修复

3.1请到官网下载补丁:

Microsoft 安全公告 MS15-034 - 严重 | Microsoft Learn

3.2暂时禁用IIS内核缓存,不过保险起见,直接打补丁是最好的。

五、解析漏洞

(一)目录解析

1.漏洞介绍

IIS5.x/6.0,在网站下建立文件夹的名称中带有.asp、.asa等可执行脚本文件后缀为后缀的文件夹时,其目录内的任何扩展名的文件都被IIS当作可执行文件来解析并执行。

2.漏洞复现

这里我通过墨者学院提供的靶场- 内部文件上传系统漏洞分析溯源进行复现,官方地址:内部文件上传系统漏洞分析溯源_文件上传_在线靶场_墨者学院_专注于网络安全人才培养

Web中间件漏洞复现合集---IIS篇_第67张图片

2.1启动靶场环境,上传一个test.txt文件测试,发现上传成功路径为.asp结尾:

Web中间件漏洞复现合集---IIS篇_第68张图片

2.2再次上传一个包含asp一句话木马的shell.txt文件,抓包,在upload后添加/.asp,发送:

Web中间件漏洞复现合集---IIS篇_第69张图片

2.3上传成功,并且在upload目录下创建了一个.asp文件夹,而asp一句话木马文件也保存于.asp文件夹内:

Web中间件漏洞复现合集---IIS篇_第70张图片

2.4使用蚁剑,设置好url与密码:

Web中间件漏洞复现合集---IIS篇_第71张图片

2.5成功上线:

Web中间件漏洞复现合集---IIS篇_第72张图片

(二)文件解析

1.漏洞介绍

在IIS6.0下,分号后面的不被解析,也就是说xx.asp;.jpg将被当做xx.asp解析并执行。

2.漏洞复现

在PUT漏洞中的报错问题解决中利用过,在此不表。

(或者可以参考我之前博客发的一个关于nginx文件解析漏洞靶场)

(三)漏洞修复

3.1对新建目录文件名进行过滤,不允许新建包含‘.’的文件;

3.2曲线网站后台新建目录的功能,不允许创建文件夹;

3.3限制上传的脚本执行权限,不允许执行脚本;

3.4编写正则过滤.asp/xm.jpg,通过ISApi组件过滤.

你可能感兴趣的:(教程,漏洞复现,网络安全,学习)