IIS短文件名暴力枚举漏洞利用工具(IIS shortname Scanner)
Posted websec80
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS短文件名暴力枚举漏洞利用工具(IIS shortname Scanner)相关的知识,希望对你有一定的参考价值。
脚本可以测试对应的URL是否存在漏洞,若存在漏洞,则猜解文件夹下所有的短文件名:包括文件和文件名。
网上早前已经有公开的工具了:https://code.google.com/p/iis-shortname-scanner-poc/
我没有参考他的代码。自己用python实现了一个漏洞利用脚本。简单测试,发现比上面的POC能猜解到更多的文件和文件夹。
获取源代码: https://github.com/lijiejie/IIS_shortname_Scanner (已于Oct 27, 2016更新)
测试: IIS_shortname_Scan.py http://stom.tencent.com
最终结果:
通过联想,就可以猜解到上传页: http://stom.tencent.com/tapdupfile.aspx
---------------------------------------------------------------- Dir: /aspnet~1 File: /logina~1.cs File: /tapdap~1.cs File: /tapdup~1.cs File: /queryg~1.ash* File: /queryi~1.ash* File: /queryp~1.ash* File: /tapdap~1.asp* File: /tapdup~1.asp* ---------------------------------------------------------------- 1 Directories, 8 Files found in total Note that * is a wildcard, matches any character zero or more times.
IIS短文件名漏洞修复
漏洞描述:
IIS短文件名泄露漏洞,Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。
危害:
攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。
Windows 还以 8.3 格式生成与 MS-DOS 兼容的(短)文件名,以允许基于 MS-DOS 或 16 位 Windows的程序访问这些文件。在cmd下输入“dir /x”即可看到短文件名的效果。
通配符”*” 和 “?”发送一个请求到iis,当IIS接收到一个文件路径中包含”~”的请求时,它的反应是不同的.基于这个特点,可以根据http的响应区分一个可用或者不可用的文件。如下图所示不同IIS版本返回信息的不同。
根据返回值不同判断漏洞是否存在,简单举例,www.test.com根目录下存在一个je2se.sql文件。
通过构造请求
GET /je*~1*/ HTTP1.1 根据返回404,正确的名
GET /je11*~1*/ HTTP1.1 返回400 ,错误的名
我们就判断存在II短文件漏洞,当然还有自动化扫描工具
链接如下:
https://github.com/lijiejie/IIS_shortname_Scanner
修复方法:
方法1、修改注册列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值为1,或者,可以直接点此下载,然后运行,再重启下机器。(此修改只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除)。该修改不能完全修复,只是禁止创建推荐使用后面的修复建议
方法2、如果你的web环境不需要asp.net的支持你可以进入Internet 信息服务(IIS)管理器 --- Web 服务扩展 - ASP.NET 选择禁止此功能。(推荐修复方法,能彻底修复)
方法3、升级net framework 至4.0以上版本。(推荐修复方法,能彻底修复)
以上是关于IIS短文件名暴力枚举漏洞利用工具(IIS shortname Scanner)的主要内容,如果未能解决你的问题,请参考以下文章