导语:这不谷歌Project Zero团队的白帽黑客Tavis Ormandy就发现暴雪游戏存在一个严重漏洞,攻击者可以利用该漏洞在游戏玩家的电脑上实现远程恶意代码执行。

timg.jpg

《星际争霸II》、《风暴英雄》、《炉石传说》、《守望先锋》、《魔兽世界》、《暗黑破坏神III》及《魔兽争霸III》这些游戏你玩过几个?不过你知道吗,这么多牛叉的游戏可都是暴雪娱乐公司开发的。也意味着如果它的游戏制作平台有漏洞,那这些游戏无一例外能幸免。

这不谷歌Project Zero团队的白帽黑客Tavis Ormandy就发现暴雪游戏存在一个严重漏洞,攻击者可以利用该漏洞在游戏玩家的电脑上实现远程恶意代码执行。这意味着,数百万计算机面临风险,目前每月的暴雪游戏在线玩家都在5亿人次左右。

1.jpg

暴雪游戏的入手过程非常简单,玩家只需要安装一个名为“暴雪更新代理(Blizzard Agent)”的客户端应用程序,该应用程序通过端口1120上的HTTP协议运行JSON-RPC服务器,来接受后台的命令,比如游戏安装,卸载,更改设置,更新和其他维护等。

漏洞的介绍

Ormandy在其博客上写道:

暴雪游戏之所以要这样做,是要自定义验证方案来验证JSON-RPC是否来自合法来源。

不过Ormandy又表示:

暴雪游戏这个更新代理很容易受到DNS重绑定(DNS Rebinding)的攻击,如果该漏洞被黑客利用,那么他们就会利用任何网站创建一个与玩家电脑进行通信的服务器名称,然后利用该外部服务器将玩家电脑解析为本地主机。这样,玩家的更新代理程序服务就无法验证客户端请求的服务器名称,从而让黑客借机完成请求响应。

实际上,网站本身就是外部服务器和本地主机之间的桥梁,这意味着任何网站都可以向代理发送特权命令。

漏洞的利用过程

攻击者可以启动一个DNS Rebinding攻击来创建一个DNS条目,从而将任何攻击者控制的网页与127.0.0.1绑定,诱骗用户访问它,这种技术使得黑客可以使用JavaScript代码向更新代理远程发送特权命令。

当攻击者简单地创建了一个DNS入口,并把某个可控制的URL页面绑定了127.0.0.1 IP之后,就会把玩家重定向到伪装的URL页面。这样,黑客利用DNS重绑定技术向更新代理程序发起Java执行命令攻击。

Ormandy还发布了一个PoC,攻击者就是如此对暴雪客户执行DNS重新绑定攻击的。

Ormandy表示:

我有一个用于测试的域rbndr.us,可以使用这个页面生成主机名:https://lock.cmpxchg8b.com/rebinder.html,因此,我在7f000001.c0a80001.rbndr.us域名中绑定了127.0.0.1和199.241.29.227两个IP。

2.jpg

由于主机名在两个IP之间进行解析处理,但当DNS响应中的TTL字段足够短时,将不会从本地DNS缓存中读取,而是重新发起DNS请求,当两个IP绑定到同一主机名上后,网站就会认为该两个IP都来自同一源地址,由此实现攻击。

下图就是一个PoC测试页面,它可以实现对Blizzard客户端的攻击,利用网络驱动或目标设定,让玩家的浏览器下载并安装恶意dll以及数据文件。

3.png

暴雪尴尬的缓解方案

其实Ormandy早在去年12月份就向暴雪报告了这个漏洞,但在进行了最基本的沟通之后,暴雪就再也不理会他了,而是根据Ormandy提供的情况,简单粗暴的在客户端版本5996中进行了一些表面性的修复。

迫不得已,Ormandy向大众公开了这个漏洞。结果,暴雪又跟Ormandy取得了联系,声称他们将主机白名单机制来修复该漏洞,且相关补丁正在研发部署之中。

不过Ormandy认为:

这个白名单机制的缓解办法还是我建议给他们的,起初暴雪只是通过查询客户端命令行,获取exename的32位FNV-1a哈希值,然后将部分恶意域名加入黑名单阻止通信。而我的建议是将玩家的主机列入白名单,因为加入白名单可以限制所有不再白名单中的域名进行通信,而黑名单仅只是将某些旧的恶意域名给拦截掉而已。但即使是白名单机制的解决方案,也显得过于简单。

另外,前几天,Ormandy还在被广泛使用的开源BitTorrent下载工具Transmission中发现了一个严重的安全漏洞(CVE-2018-5702),这允许黑客在BitTorrent用户的计算机上远程执行恶意代码并获取受感染计算机的绝对控制权。

在向Transmission团队发送初始报告40天后, Ormandy就决定公开漏洞利用攻击的POC,其原因也是因为Transmission团队对Ormandy的发现爱答不理。

源链接

Hacking more

...