*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
IIS
IIS从1.0-10.0之间共有12个版本,1.0-4.0已基本退出市场,6.0-10.0居多。IIS7.5、IIS8.5以及IIS10.0、IIS6.0是目前使用最多的版本.
IIS版本对应的Windows系统版本如下:
IIS6.x渗透
准备环境:Windows server 2003 IP:192.168.173.194
接下来先搭环境
双击这里,进去之后点确定,默认选中的那三个,接着点击确定
点击下一步之后,出现了报错,这代表操作系统无法找到可用的iis6.0安装包,这里把现有的iis6.0安装包拖到虚拟机中即可,点击确定进到下一步
点击浏览,点击到上传的安装包目录下后,会自动选择到那个文件,默认点确定
然后依然有报错,重复刚刚的步骤,直到出现完成的页面,即为环境部署成功,此时管理工具中会生成iis管理器,双击打开如图所示。
此时可见计算机80端口已经打开
这里写了个asp页面测试一下,发现一直访问不了
网上搜了一下得知Windows Server 2003 安装完 IIS 6后,还需要单独开启对于 ASP 的支持,选择允许即可。
IIS写权限漏洞,该漏洞的前提有三个1.开启了WebDAV 2.默认网站属性开启写入状态(其中红框里面必选,这里踩过雷,所以强调一下) 3.权限开启允许来宾访问写入,然后关闭项目重新启动;
此时再开一个Windows7的环境搭IIS7.x IP:192.168.173.196
此时查看2003虚拟机是否存在写入权限的漏洞,我们需要两个工具。
因为win2003的WebDAV已经开启,此时在win7上用IISPutScanner扫描2003的虚拟机是可以扫描出该机存在写入权限的,如果win2003未开启WebDAV,则put处会显示为NO。
接下来使用iiswrite工具,进行写入操作;
在桌面新建文件,写入一句话,并在工具中选中这个文件,不要忘记修改域名和请求文件,这里我们放入IP即可,点击提交数据包;
2003机子上已成功写入1.txt;
点击move,相当于修改1.txt名为shell.asp;
此时用蚁剑或者菜刀连接,如图所示,成功进入;
到此,文件写入漏洞即复现完,满足上面三个条件即可成功写入,因此防御的方法也同样可以得知:关闭WebDAV或者关闭写权限即可;
文件解析漏洞 条件:ii6.0的服务器开启Active Server Pages服务拓展;iis10.0和iis8.5都有可能产生这个漏洞,属于PHP版本解析漏洞
*.asp;.jpg 像这种畸形文件名在“;”后面的直接被忽略,也就是说当成 *.asp文件执行。
接下来演示一遍,首先在Win2003目录下创建一个asp文件;
这时对asp文件更改后缀名,会发现它依然可以访问,这里对文件直接复制粘贴更改后缀;
这里拿上文的shell脚本来测试一波,对其更改后缀名,蚁剑也可成功上线;
iis目录解析:以*.asp命名的文件夹里的文件都将会被当成ASP文件执行。
演示一下 首先在网站目录下建一个.asp的文件夹;
并在里面拉一个写有一句话木马的图片,此时访问仍然可以正常解析,蚁剑也可连接;
iis6除了会将扩展名为.asp的文件解析成asp文件之外,还默认会将.asa、.cdx、.cer解析成asp;这里可以从默认网站属性->主目录->配置中可以看出,他们均是调用的asp.dll进行的解析(畸形解析)
iis短文件漏洞:此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。
iis短文件名的特征:
目前IIS支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种,经千里目实验室验证,IIS 8.0、IIS 8.5和IIS 10.0的短文件名称均可以通过OPTIONS和TRACE方法被猜测成功。
iis8.0以下的版本复现条件是需要开启asp.net支持;
新建一个zcc.aspx,写入一句话,能看到它也是一个短文件;
这时可以对文件名进行一级级爆破,文件名存在即返回404,不存在会返回400或者bad request页面;此漏洞只能确定前六个字符,太长或者存在特殊字符会很难猜解;
这里存在爆破的exp,需要在python2环境下使用,这里在window7环境中安装好python环境和Java7,安装步骤就不放了;
工具链接:https://github.com/irsdl/IIS-ShortName-Scanner
下载好工具后,双击run.bat,输入要爆破的网址,默认回车,即可进行爆破;
修复改漏洞的方式:1) CMD关闭NTFS 8.3文件格式的支持
举例:(1代表关闭,0代表开启)
Windows Server 2008 R2:
查询是否开启短文件名功能:fsutil 8dot3name query
关闭该功能:fsutil 8dot3name set 1
Windows Server 2003:
关闭该功能:fsutil behavior set disable8dot3 1
不同系统关闭命令稍有区别,该功能默认是开启的,对于大多数用户来说无需开启。
2) 修改注册表禁用短文件名功能
快捷键Win+R打开命令窗口,输入regedit打开注册表窗口找到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将其中的 NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创建短文件名格式
修改完成后,需要重启系统生效
注:此方法只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失。
以下两种方法仅适用于缓解GET方法,其他方法依旧可以猜解。
3) 关闭Web服务扩展- ASP.NET
4) 升级netFramework至4.0以上版本
RCE-CVE-2017-7269 IIS6.0远程代码执行漏洞复现
条件:Windows 2003的IIS6.0开启WebDAV服务;
exp下载链接:https://github.com/edwardz246003/IIS_exploit/blob/master/exploit.py
修改exp之后运行,可看到win2003任务管理器开启了calc.exe进程,这里因为是网络权限打开,所以桌面看不见:
从利用条件也不难看出,此漏洞的防御措施为关闭WebDAV服务即可;
接下来实现一下如何利用此漏洞上线对方电脑
测试环境:攻击机:kali 192.168.173.199 靶机还是win2003
exp下载链接:https://github.com/zcgonvh/cve-2017-7269
注意模块的命名名称,下载之后将其名字中的横线改成下划线;并将其放入kali攻击机器的/usr/share/metasploit-framework/modules/exploits/windows/iis目录下;
可以看见已经写入,直接执行;
这里发现失败了;看师傅文档发现靶机这里默认网站->属性,ip分配这里默认的未分配,即非默认绑定,而该exp只适合默认绑定和默认路径的情况下使用,这里对其进行更改,改完重启系统,重新运行exp,可成功执行,不过这里可以看出是一个低权限用户;
这里可以使用pr.exe进行提权,利用meterpreter上传pr.exe;
进到shell界面,发现成功上传了pr.exe,然后创建用户并加入管理员组;
可看见成功创建了zcc用户并加入administrator组。
来源:freebuf.com 2021-05-31 01:24:51 by: zcczcc
请登录后发表评论
注册