红队:IIS短文件名猜解在拿权限中的巧用
2023-1-28 22:8:33 Author: Z2O安全攻防(查看原文) 阅读量:28 收藏

 Part1 前言 

为了能在红队项目中发现更多的打点漏洞,我曾经花了不少精力,把那些大家觉得不重要的中低危漏洞拿来研究一下,发现有几个漏洞还是很有利用价值的,比如说,“IIS短文件名猜解漏洞”。这个漏洞有以下这么几个特点:1、危害等级是中低风险。2、在当前网站应用中还广泛存在。3、微软官网不太认可这个漏洞,不出补丁。4、很多客户也选择不修复。5、漏洞利用起来极其困难,需要很大的耐心和毅力。但是我借助此漏洞间接拿权限成功了很多次,还是有很多技巧在里面的,下面分享一下详细过程。

 Part2 研究过程 

IIS短文件名猜解漏洞简介:

首先简单介绍一下IIS短文件名猜解漏洞:Windows系统为了兼容16位MS-DOS程序,为文件名较长的文件和文件夹生成了对应的Windows 8.3短文件名。比如文件名direct~1.asp中间有一个波浪号,这种就是短文件名了。

  • 查看短文件名的方法

如下图所示,使用windows自带的命令即可。打开一个文件夹,使用dir /x命令,可以直接看到每个文件或者文件夹的短文件名,短文件名只保留前六位的文件名+ ~+ 1.后缀名的前三位。

  • 短文件名命名规则

Windows短文件名的命名规则如下,实际上比以下描述要复杂一些,但是了解个大概即可,否则太费精力,不划算(这段描述参考了freebuf的文章,文末附带了freebuf文章的原文链接地址):

1.  只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)

2.  后缀名最长只有3位,多余的被截断,超过3位的长文件会生成短文件名

3.  所有小写字母都会转换成大写字母

4.  长文件名中含有多个.,以文件名最后一个.作为短文件名后缀

5.  长文件名前缀/文件夹名字符长度符合0-9和Aa-Zz范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件。

  • 该漏洞的利用价值

此漏洞可以得到网站每个目录下文件的前6位字符,其利用价值体现在:

1.  猜解网站的后台地址。

2.  猜解敏感文件,例如网站备份的.rar、.zip、.bak、.sql文件等。

3.  获取很多爬虫爬不到的未授权访问页面、获取WebService接口地址,从这些未授权访问页面中进而发现更多漏洞,如SQL注入漏洞、上传漏洞等。

IIS短文件名猜解的利用过程:

假设IIS中间件网站目录下有Databackup.zip这样一个网站备份文件,使用dir /x查看,可以得到短文件名为DATABA~1.zip。如果在红队项目过程中,得知网站下有一个DATABA为前缀的文件名,那么就可以很容易猜到完整的数据库文件名database.zip或者databackup.zip,那么就可以直接下载数据库了,这对于红队项目是非常有帮助的。

IIS早期版本和较新版本对于IIS短文件名猜解的判断方法是不一样的,下面分情况搭建虚拟机环境测试一下:

  • IIS6.0下GET请求判断

本地搭建一个IIS6.0、Win2003环境,看一下如何通过IIS短文件名猜解得到服务器文件或者文件夹地址。接下来构造如下两个URL:

http://192.168.237.128:8888/shop/databa~1****/a.aspx

如下图所示,服务器如果存在databa开头的文件,则显示404响应码:

http://192.168.237.128:8888/shop/databc~1****/a.aspx

如下图所示:如果服务器不存在databc开头的文件,则显示400响应码提示:

由此可知,通过以上判断方法,可以得到逐步猜解出低版本IIS网站目录下长文件名的前6位字符及后缀。但对于IIS较新版本,GET请求是判断不出短文件名的,需要借助OPTIONS请求或者TRACE请求,HEAD请求、GET请求、POST请求都不行

  • IIS 10.0下OPTIONS请求判断

接下来看一下IIS 10.0的情况下,同样在wwwroot目录下放一个databackup.zip文件:

http://192.168.237.166/databa~1****/a.aspx

如果服务器存在databa开头的文件,则提示404响应码。

http://192.168.237.166/databc~1****/a.aspx

如果服务器不存在databac开头的文件名,则提示200响应码。

  • IIS 10.0下TRACE请求判断

接下来换成TRACE请求方法试一试:

http://192.168.237.166/databa~1****/a.aspx

如果服务器存在databa开头的文件,返回404响应码。

如果服务器不存在databc开头的文件,则返回501响应码。

  • 猜解方法总结如下(欢迎大家校勘):

1.  对于IIS6.0左右的低版本:

使用HEAD、GET、POST请求判断,返回响应码404则文件存在,返回响应码400则文件不存在。

2.  对于IIS10.0左右的新版本:

使用OPTIONS、TRACE请求方法判断,返回响应码404则文件存在,返回响应码200或者501则文件不存在。

IIS短文件名猜解实战案例分享:

接下来分享一下我曾经做的2个实战案例。

  • 案例一:医疗行业案例

这个案例来源于一次医疗行业的红队评估项目。如下图所示:通过IIS短文件名猜解,得到了如下两个短文件名(为了防止泄露项目信息,截图都来源于本地搭建的环境,原图就不贴出来了)

patien~1.asp 由于是医疗系统,所以很容易联想到单词“病人”patient.asp

userad~1.asp 很容易联想到添加用户的功能页面:useradd.asp

访问之后发现patient.asp、useradd.asp均不存在,因为iis短文件名猜解出来的后缀名只有前三位,于是将后缀.asp换成.aspx就显示文件存在了。

于是两个未授权访问页面就出现了,对这两个页面的漏洞进行深度挖掘,追踪页面中的js链接地址。patient.aspx显示如下页面(图片是本地虚拟机环境),搜索框存在SQLServer注入漏洞,而且是sa权限,直接拿到了服务器权限。

而useradd.aspx存在未授权添加用户漏洞。都是常规操,就不做过多介绍了。

  • 案例二:WebService接口

接下来看另一个稍微难一点的案例,扫描出一个真实文件名/h/dmtkts~1.asm  

dmtkts~1.asm这个短文件名耗费了我很长时间才给试出来:后来我在想,asm后缀是什么后缀,开始以为是一个临时文件之类的后缀,后来我突然想到了:.asm 后缀就是.net的WebService接口后缀.asmx。接下来dmtkts 这个短文件名的完整名怎么猜,让我大伤脑筋,后来突然想到了,由于.asmx是WebService的接口,后面这个s字母应该是service的首字母,最终得到如下的完整文件名dmtktservice.asmx,最终拿到了一个asmx的任意接口调用。真是太难了。。

dmtktservice.asmx类似于如下图片的功能(原图就不贴了),这接口里面有一处上传功能,后续利用上传漏洞拿到权限的。

对IIS短文件名猜解的利用案例就举这两个例子吧,都是实战案例。此外,还可以通过短文件名+字典的方式枚举,我曾经用过几百万行的目录字典、单词字典去跑IIS中间件,但最常用的还是自己按照研发人员的命名习惯去手工尝试。大家也可以发散思维,找到更多更好用的思路。

iis短文件名猜解脚本改造

对于iis短文件名猜解,我下载了好几个脚本,各有优缺点吧,有的脚本不支持iis10,有的脚本算法大概是有问题,跑出的iis短文件名不全。最终我把lijiejie的脚本改造了一下,使它支持iis 10.0的猜解,脚本主要改动内容如下:


关注公众号,回复数字“0518”,即可得到由ABC_123修改的,适用于IIS 10.0版本,的漏洞扫描脚本的下载地址。

 Part3 总结 

1.  没有0day的时候,就把Nday用到极致。

2.  对于IIS短文件名猜解的利用,一定要按照研发人员的思维去猜测完整文件名。

参考链接:

https://www.freebuf.com/articles/web/172561.html

技术交流

知识星球

致力于红蓝对抗,实战攻防,星球不定时更新内外网攻防渗透技巧,以及最新学习研究成果等。常态化更新最新安全动态。专题更新奇技淫巧小Tips及实战案例。

涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全。星球中已发布 200+ 安全资源,针对网络安全成员的普遍水平,并为星友提供了教程、工具、POC&EXP以及各种学习笔记等等。

交流群

关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。

关注我们

关注福利:

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

回复“资料" 获取 网络安全、渗透测试相关资料文档

往期文章

我是如何摸鱼到红队的

命令执行漏洞[无]回显[不]出网利用技巧

MSSQL提权全总结

Powershell 免杀过 defender 火绒,附自动化工具

一篇文章带你学会容器逃逸

域渗透 | kerberos认证及过程中产生的攻击

通过DCERPC和ntlmssp获取Windows远程主机信息


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2ODYxMzY3OQ==&mid=2247491093&idx=1&sn=9ebedfadd4b86cbb319c085fdfbdaf1d&chksm=cea8f555f9df7c4370ab5efe4248c3ca144381556d6299c2e9ab1d83229a38ad82b208f70cb6#rd
如有侵权请联系:admin#unsafe.sh