红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

admin 2022年5月7日23:23:44安全文章评论9 views3445字阅读11分29秒阅读模式

 Part1 前言 

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

 Part2 研究过程 

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

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

  • 查看短文件名的方法

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

  • 短文件名命名规则

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,那么就可以直接下载数据库了,这对于红队项目是非常有帮助的。

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

  • IIS6.0下GET请求判断

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

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

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

  • IIS 10.0下OPTIONS请求判断

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

  • IIS 10.0下TRACE请求判断

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

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

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

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

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

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

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

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

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

  • 案例一:医疗行业案例

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

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

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

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

  • 案例二:WebService接口

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

iis短文件名猜解脚本改造

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

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

 Part3 总结 

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

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

参考链接:

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

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

专注于红队、蓝队技术分享

每周一篇,敬请关注

红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

原文始发于微信公众号(网络安全abc123):红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月7日23:23:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  红队第7篇:IIS短文件名猜解在拿权限中的巧用,付脚本下载 http://cn-sec.com/archives/985320.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: