本帖最后由 adds 于 2021-6-23 21:29 编辑
一、问题
在针对客户的业务系统做安全评估时,发现一个高危漏洞:IIS短文件名泄露【原理扫描】。 具体信息:
| | | | | | | | | | | 为了兼容老版本系统,windows可使用8.3格式的短文件名,在cmd下通过dir /x可以查看短文件名。当使用不同的攻击向量作为文件名(如*、~等符号)向IIS服务器发起请求时,由于服务器对存在文件和不存在文件的响应有差异,攻击者可利用此差异探测服务器上的目录名和文件名,以此循环往复,可导致敏感目录名和文件名被猜解泄露,并有可能造成对NET.Framework的拒绝服务攻击。 | | | | 关闭windows的短文件名机制,在注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem中选择NtfsDisable8dot3NameCreation键(不存在则新建),将其设置为1。 WEB站点需要将内容拷贝到另一个位置,如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www。如果不重新复制,已经存在的短文件名则是不会消失的。 升级net framework 至4.0以上版本。 | | | | | | |
有多种漏洞验证工具可以进行验证,这次我们使用kali虚拟机进行。 将漏洞验证工具IIS_shortname_Scanner-py上传到虚拟机。 执行命令:python iis_shortname_Scan.py X.X.X.X
可以看到有defaul~.asp*文件。证明存在短文件。
先备份原文件夹,再删除原文件,将备份的文件名重命为原文件名。
四、注意 1、其余漏洞验证 在对一台服务器作WEB漏洞扫描时,发现有报nginx漏洞。
可信度为低:
如何确认? 直接问客户,客户说安装的nginx是1.15.9
可以将此漏洞忽略掉。
2、FUZZ测试 基本思想:利用黑盒方法,发送大量恶意/随机数据到被测试系统,通过监视系统运行过程中的异常,来发现应用程序中可能存在的安全问题。
五、自己电脑验证 客户电脑不能操作,拿自己电脑验证下。 1、查看自己电脑是否有短文件漏洞
2、使用TSS扫描 大概10分钟扫描完成。
3、漏洞综述
共4个,我们看看是否有短文件泄漏这一条。
4、解决,按照解决方案进行解决。 打开注册表:regedit。 找到数值:NtfsDisable8dot3NameCreation
默认值为2,我们将其修改为1。
5、复制wwwroot到E盘,改为wwwroot.bak,将原来的wwwroot删除,然后再将E的wwwroot.bak移动回来,修改为wwwroot。
6、netframe升级到4.0及以上版本 这个两种查询方法: 控制面板查询:
C盘目录查询:
不知道哪个在生效。
查询资料得知,如果有多个版本,最高版本就是电脑安装的版本。
7、验证 在DOS下进入wwwroot文件夹,使用dir /x命令查看是否还有短文件漏洞。
可以看到漏洞已经不见了,我们重新对服务器进行评估。
TSS检测发现只剩下2个高危了,除了短文件名泄漏外,还有一个漏洞也不见了。
|