0x00 前言
前阵子推特曝光了一个win10的漏洞,只要访问特定的路径就会导致win10蓝屏,推特演示的是通过chrome来访问的,不过实际上无论是通过什么来访问均会导致蓝屏。普通的人大概也就是试一下然后就当作一般的拒绝服务漏洞过掉了,毕竟微软一天发布的拒绝服务漏洞也是一大堆。不过由于这个蓝屏确实比较简单,如果展开想象那么可能导致蓝屏的场景将会非常多。这漏洞简直是暴打JB(脚本)小子的利器!
漏洞的触发也很简单,访问以下地址即可触发:
代码语言:javascript复制\.globalrootdevicecondrvkernelconnect
于是乎,我们赛博群的群友们开始在群里交流起可能的利用场景,便有了后面一堆的事情。
0x01 网页触发
起初就有人在推特说什么XSS直接触发蓝屏,比如
代码语言:javascript复制<script src="file://./globalroot/device/condrv/kernelconnect">
乍一看很有道理,本地写一个页面进行复现也确实会蓝屏。那么当你把这个页面挂到自己的vps上的时候,便会发现并没有什么用,为什么呢?因为chrome的安全机制拦截了这一请求,现在几乎所有的浏览器都会拦截非file同源的file协议访问。
有了这个保护机制,那么网页触发蓝屏几乎等我需要去找一个浏览器饶过安全机制的漏洞。
之前wfox师傅演示微信1click的时候,我就在这方面想了很久,也想到了利用伪协议触发常用桌面应用来间接的访问到payload地址(我觉得这个可能性还是有的),但是并没有成功。
0x02 微信1click
什么是微信1click呢?这个是我起的名字,大家不用太在意,其实就是微信里朋友发一条新闻一样的链接给你,你点击了链接,然后你就触发了蓝屏。这个过程的要求是你需要点击这个链接。这在一开始wfox师傅演示了后,我们群友都很感兴趣,也在拼命想这个是怎么弄的。我也是那时候偶想了好几个钟头,一直以为要绕安全策略,直到后来我灵光一闪,突然想想,如果把file协议的链接直接做成一个网页转发,是不是就可以不用绕安全策略了?
事实证明,确实如此。
这确实是一个很有趣的trick,我们容易被一些表象所蒙蔽而掉入到一个很复杂的坑里去。这边给出我复现时候用的一个github项目,具体就不再说怎么弄了。
https://github.com/yueshenyuan/JS-share
0x03 蜜罐型蓝屏
重点来了,我做梦都想暴打那些开着AWVS和Xray整天扫描网站的JB(脚本)小子,正好现在有一个完美的暴打使用win10开着awvs扫描的JB小子的漏洞,赶紧安排上。
1.AWVS反制
其实我最想搞的就是这个,一开始最完美的设想是:攻击者使用AWVS扫描器扫描我的网站,我通过UA识别到扫描器后返回恶意链接直接导致对方win10蓝屏从而达到中断扫描的目的。
因为AWVS本身扫描也不好溯源,而且也没必要溯源,如果能直接让对方win10蓝屏对于网站维护者来说是非常不错的。但很遗憾的是我尝试了很久也没有成功,包括302、301的跳转(因为正常都不会接受跳转到file协议),各种常规的跳转都不行,而且几款扫描器的爬虫通常有两个爬取限制:
1. 默认限制爬取当前目标域名的目录
2. 忽略爬取file协议
这就导致awvs的反制变得困难了起来,目前还是无法实现,想了想如果能找到近版本的一个本地报告XSS的话,可能还能间接成功,这个方案就暂时放放吧。
2.mysql蜜罐反制
这个反制是很容易想到的点,就是利用恶意mysql服务器去促使本地客户端读文件,然后我们将读文件的路径设置为蓝屏payload即可导致对方蓝屏。其实这个在我弄之前群里的师傅已经有人在尝试了,但是并没有成功,一开始我也以为这个很简单,结果也整了一两个小时。原因是payload里面有个关键的“.”号会被客户端转义忽略掉。而且没有这个点是无法触发漏洞的,这个我也测试过了,因此如何绕过点号就成了关键。我给出的方法便是通过问号代替点号:
代码语言:javascript复制\?globalrootdevicecondrvkernelconnect
这样就可以最终完成一个恶意的极限反制mysql服务器。最终效果如下: http://mpvideo.qpic.cn/0bf2nqaawaaajaabcbiojjqfa3gdbnwaacya.f10002.mp4?
其实按照这个思路,不仅仅是恶意mysql,很多非web服务都有这种可能性,就不展开讨论了。
0x04 微信0click
从1click之后,我们也一度讨论过0click,即无需用户交互,只需要群发文件或链接即可导致目标用户蓝屏,这是一个很可怕的东西,真的实现就会像核弹一样到处炸。
不幸的是,这玩意确实在群里出现了,由于被小范围的恶意转发导致后面引起了一些风波,不过好在现在各大厂家的杀软会直接拦截恶意文件,所以这个事情也就告一段落了。
这个利用文件还存在两个条件:
1. 微信打开自动下载
2. 下载目录被打开,或者一直开着没有关
只要满足这两个条件,微信群里有人发送恶意文件就会直接触发蓝屏。具体原理各位可以找个.url结尾的样本在学习一下,是个很不错的trick。
0x05 小结
我本来想再研究研究AWVS或者其他比如xray、burpsuit的反制触发,也简单的尝试过,确实都不太行就没有继续搞了,还是集中精神弄点别的有意义的东西吧。
不过这一波的探索也确实学到了很多有趣的技巧,也还是很好玩的。
展开想想,关于反制我觉得今年开始的蜜罐应该都会集成一些针对主流工具的漏洞利用,通过找到主流工具或者特定开源脚本的漏洞来触发本地客户端RCE的方式进行溯源反制。指不定也会有人利用我的mysql进行蓝屏攻击(当然这个漏洞还可以更狠)也说不好。这种反制最终都会成为主旋律,浏览器jsonop的方式很快就会被淘汰吧。