IIS短文件名漏洞修复

287 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情

IIS简介
Internet Information Services(IIS,以前称为Internet Information Server)互联网信息服务是Microsoft公司提供的可扩展Web服务器,支持HTTP,HTTP/2,HTTPS,FTP,FTPS,SMTP和NNTP等。
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(远程启用或没有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
关于短文件:
查看当前文件夹的短文件:在选择的文件夹上运行cmd  执行dir /x
**

image.png 1、只显示前6位的字符,后续字符用1代替。其中数字1是可以递增。比如原文件名.gitignore 的短文件名为GITIGN1 如果存在文件名类似的文件,则前面的6个字符是相同的,后面的数字进行递增

![在这里插入图片描述]

image.png

漏洞利用

1、猜测文件全名
通过IIS短文件漏洞猜测出来的短文件名称,需要继续猜测出全名才可以在IIS上进行访问(即IIS由于安全原因不支持短文件名访问)
1.通过对目标网站或同类型网站进行爬虫,爬出建立一个字典库,再与得到的短文件名来猜剩下的字符 ;

2、修复建议
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以上版本
所以最根本的方法是建议2 更改注册表,重启服务器,然后把站点里的文件重新复制拷贝进去。

有问题欢迎留言和评论,大家一起学习和探讨,本次分享到此结束,谢谢大家!