IIS短文件名漏洞

简介

  • IIS简介
    Internet Information Services(IIS,以前称为Internet Information Server)互联网信息服务是Microsoft公司提供的可扩展Web服务器,支持HTTP,HTTP/2,HTTPS,FTP,FTPS,SMTP和NNTP等。起初用于Windows NT系列,随后内置在Windows 2000、Windows XP Professional、Windows Server 2003和后续版本一起发行,但在Windows XP Home版本上并没有IIS。IIS目前只适用于Windows系统,不适用于其他操作系统
    在这里插入图片描述
  • IIS漏洞
    近十五载的IIS相关漏洞,中、高危漏洞共计39个,其中15年爆发的(MS15-034)HTTP.sys 远程执行代码漏洞和16年的(MS16-016)WebDAV 特权提升漏洞影响范围尤其广泛
    在这里插入图片描述
  • IIS短文件
    此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(〜)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息
    影响版本
IIS 1.0,Windows NT 3.51  
IIS 3.0,Windows NT 4.0 Service Pack 2  
IIS 4.0,Windows NT 4.0选项包 
IIS 5.0,Windows 2000  
IIS 5.1,Windows XP Professional和Windows XP Media Center Edition  
IIS 6.0,Windows Server 2003和Windows XP Professional x64 Edition  
IIS 7.0,Windows Server 2008和Windows Vista  
IIS 7.5,Windows 7(远程启用<customErrors>或没有web.config)
IIS 7.5,Windows 2008(经典管道模式)
注意:IIS使用.Net Framework 4时不受影响

以上受影响范围主要是针对HTTP GET方法,且需要同时安装ASP.NET应用程序。该漏洞发现者在2014年再次披露:在测试IIS 7.5(Windows 2008 R2)和IIS 8.0(Windows 2012)过程中,当使用OPTIONS来代替GET 方法时,如果请求中的短文件名是存在的,IIS就会返回一个不一样的错误信息。利用这种特点,攻击者就可以在最新的IIS版本中,实现基于短文件名的文件或目录扫描了
目前IIS支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种,经千里目实验室验证,IIS 8.0、IIS 8.5和IIS 10.0的短文件名称均可以通过OPTIONS和TRACE方法被猜测成功。所以上述受影响版本需要再加上如下版本:

IIS 8.0,Windows 8, Windows Server 2012
IIS 8.5,Windows 8.1,Windows Server 2012 R2
IIS 10.0,Windows 10, Windows Server 2016

实验

1.短文件规则:
查看当前文件夹的段文件:在cmd中 执行dir /x
在这里插入图片描述
1、只显示前6位的字符,后续字符用~1代替。其中数字1是可以递增。如果存在文件名类似的文件,则前面的6个字符是相同的,后面的数字进行递增
在这里插入图片描述
2.后缀名最长只有3位,超过3位的会生成短文件名,且后缀多余的部分会截断
在这里插入图片描述
3.所有小写字母均转换成大写的字母
4.长文件名中包含多个”.”的时候,以文件最后一个”.”作为短文件名的后缀
在这里插入图片描述
5.长文件名前缀/文件夹名字符长度符合0-9和A-Z、a-z范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件
在这里插入图片描述

2.测试环境:
windows server 2003 r2,开启webdav服务和net服务
在这里插入图片描述
例如猜解,IIS10T~1.HTM ←→ IIS10test.html
在这里插入图片描述
1)猜测短文件名
在这里插入图片描述

漏洞利用

1、猜测文件全名
  通过IIS短文件漏洞猜测出来的短文件名称,需要继续猜测出全名才可以在IIS上进行访问(即IIS由于安全原因不支持短文件名访问)
1.通过对目标网站或同类型网站进行爬虫,爬出建立一个字典库,再与得到的短文件名来猜剩下的字符 ;
2.利用fuzzdb(一个应用程序模糊测试(fuzzing)数据库)来猜解;
3.结合OWASP的dirbuster(一款路径及网页暴力破解的工具)
3、短文件特性软件(Apache、Wordpress):
例如,backup_20180101.sql,其短文件是BACKUP~1.SQL
4、绕过Basic and Windows认证 / 后台
在某些IIS服务器配置下,可以绕过Basic and Windows认证,猜解出认证目录下的文件。举例,如果需要访问一个开启认证的目录下文件时,比如这个目录是“AuthNeeded”,那么可以通过如下方式访问:

/AuthNeeded::$Index_Allocation/*~1*/.aspx   或者
/AuthNeeded:$I30:$Index_Allocation/*~1*/.aspx

局限性

1、此漏洞只能确定前6个字符,如果后面的字符太长、包含特殊字符,很难猜解
2、如果文件名本身小于9位(无短文件名)也是无法猜解的
3、如果文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配
在这里插入图片描述
4、如果文件夹名前6位字符带点“.”,扫描程序会认为是文件而不是文件夹,最终出现误报
5、不支持中文文件名,包括中文文件和中文文件夹。一个中文相当于两个英文字符,故超过4个中文字会产生短文件名,但是IIS不支持中文猜测

修复建议

1、cmd关闭NTFS 8.3文件格式的支持:
2、修改注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将其中的 NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创建短文件名格式
此方法只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失
以下两种方法仅适用于缓解GET 方法,其他方法依旧可以猜解
3、关闭Web服务扩展- ASP.NET
4、升级netFramework至4.0以上版本

参考链接

CSDN-深入浅出之IIS短文件名漏洞
[1] Windows如何从长文件名生成8.3文件名,URL:http://support.microsoft.com/kb/142982/en-us
[2] Soroush Dalili IIS短文件漏洞研究报告地址:
https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
[3] SecurtiyFocus漏洞信息:https://www.securityfocus.com/archive/1/523424
[4] Acunetix研究结果:https://www.acunetix.com/blog/web-security-zone/windows-short-8-3-filenames-web-security-problem/
[5] Webbreacher研究结果:https://webbreacher.com/2014/10/23/tilde-enumeration/

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值