puzzor@home:~$

微信pc端文件传输功能的安全隐患

微信PC端文件传输功能的安全隐患

【简介PC客户端】

微信PC版是微信系列软件中在PC平台的一个客户端应用。 目前官网所提供的版本为2.4.5官网链接。在日常使用过程中主要满足了用户在PC端进行聊天,传送文件等功能。

【特性】

在使用过程中我们发现微信PC端一个特性:在用户不需要同意的情况下对方可以主动向本机传送文件,甚至于非好友但只要在一个群里也可以做到强制文件传送,文件在默认情况下会被保存到 “C:\Users\%USERNAME%\Documents\Wechat Files\%WECHAT_USER_NAME%\files"当中。

【危害】

如果攻击者利用此特性则可以: 1.强行推送垃圾文件 2.强行(静默)推送恶意负载(比如dll)到对方文件接收目录下,一旦触发dll劫持问题后payload便可执行

【分析】

这个特性在早期的PC端微信中就一直存在,不过早期版本中问题并不非常严重,这在于:

早期版本中默认每次用户退出后将会清空本次的聊天记录和文件。也就是即便在某一次登陆过程中攻击者强行推送了大量垃圾文件或者推送了恶意的payload,但是如果在目标用户登陆的期间内没有触发,一旦用户退出则所有文件将被清空,因此该特性造成的危害性并不高。

而在最近新版本更新后,客户端提供了保存聊天记录这一选项并且默认开启,于是问题就显得有些严重,每次用户退出后文件并不会被清除,这也就导致了如果攻击者向目标用户强行(静默)推送了一个恶意payload,则该payload不会被清除,直至触发或者用户主动删除该文件。

这里解释“静默”:在微信中如果是一对一发送文件肯定做不到静默,然而如果在一个群中,并且该群被用户设置为静音的情况下(这种情况应该比较常见,加了很多群但是将其中的很多都设置为静音)只要攻击者在群中发送文件,如果此时有PC端用户在线,其是很难感知到文件被主动推送到自己主机上的。

参考 Haifei Li在2015年10月的一篇文章[1]可以看到,在Chrome、Edge等浏览器中曾经发生过类似的自动下载的问题,而相比较而言PC端微信的问题则更为严重一些:攻击者可主动发起而不需要用户访问指定网站

【攻击场景】

场景1. 攻击者利用群向PC端微信用户强行/(静默)传送恶意dll,比如version.dll。之后只要PC端用户不主动清除用户聊天相关文件,一旦在某个时刻PC端用户接收到了某个用户利用微信传送过来的可执行程序(如某些正常的安装包等),并打开该安装包便有极大可能触发dll劫持并运行攻击者的恶意负载

场景2. 同样是为了达到dll劫持,并不一定要通过可执行程序引发,而比如像Office这一类的程序也有可能发生dll劫持,比如CVE-2016-3235 CVE-2016-3364 CVE-2017-0197等等,当然这些漏洞本身是由于微软引入,但是借助PC端微信却更容易的构建攻击路径

场景3. 攻击者恶意向目标用户传送大量垃圾文件(单次限制100MB,10个G需要传送100次左右)

【参考】

[1]http://justhaifei1.blogspot.nl/2015/10/watch-your-downloads-risk-of-auto.html