freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

暴雪游戏存在DNS重绑定漏洞可导致玩家电脑被远程劫持
2018-01-24 10:54:17

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

blizzard_games.jpg

谷歌安全研究员Tavis Ormandy发现暴雪游戏存在一个严重漏洞,攻击者利用该漏洞针对游戏玩家电脑可实现远程恶意代码执行。“魔兽世界”、“守望先锋”、“暗黑破坏神3”、“炉石传说”和“星际争霸2”等由暴雪娱乐公司创造的流行网络游戏,每月的在线玩家数量都达5亿人次。

漏洞信息

如果要用网络浏览器在线玩暴雪游戏,用户需要在自己电脑系统中安装一个名为‘Blizzard Update Agent’的客户端程序,利用它来运行HTTP协议和1120端口的JSON-RPC服务,以便执行‘命令安装、卸载、设置更改、更新和其他维护相关的选项’动作。

Tavis Ormandy发现这个安装在玩家系统中的Blizzard Update Agent,存在一种名为’DNS Rebinding‘(DNS重绑定)的漏洞,这种漏洞实现的攻击允许用任何网站充当外部服务器和玩家本地主机之间的中转桥梁。

漏洞分析及PoC

当攻击者简单地创建了一个DNS入口,并把某个可控制的URL页面绑定了客户端IP 127.0.0.1之后,迷惑电脑玩家访问该构造的URL页面,在此过程中,DNS重绑定技术的利用导致DNS发起的请求破坏浏览器同源策略(SSO),可使攻击者各客户端Blizzard Update Agent程序发起一些JavaScript方式的执行命令。

$ curl -si http://localhost:1120/agent
HTTP/1.0 200 OK
Content-Length: 359
{
        "pid" : 3140.000000,
        "user_id" : "S-1-5-21-1613814707-140385463-2225822625-1000",
        "user_name" : "S-1-5-21-1613814707-140385463-2225822625-1000",
        "state" : 1004.000000,
        "version" : "2.13.4.5955",
        "region" : "us",
        "type" : "retail",
        "opt_in_feedback" : true,
        "session" : "15409717072196133548",
        "authorization" : "11A87920224BD1FB22AF5F868CA0E789"
}

尽管浏览器中运行的随机网站通常不能向自己以外的主机域名发起请求,但由于本地的Blizzard Update Agent服务不会验证客户端请求的主机名,也不会响应此类请求,所以导致了该漏洞的可利用。

利用DNS重绑定技术,可以把某个可控URL,解析到玩家本地主机,进而与之进行通信。也就是说任何可控的URL都能向客户端发送命令。由此,我使用以下页面来生成测试名为7f000001.c0a80001.rbndr.us的主机名。

https://lock.cmpxchg8b.com/rebinder.html

因此,我在7f000001.c0a80001.rbndr.us域名中绑定了127.0.0.1和199.241.29.227两个IP:

$ host 7f000001.c7f11de3.rbndr.us

7f000001.c7f11de3.rbndr.us has address 127.0.0.1

$ host 7f000001.c7f11de3.rbndr.us

7f000001.c7f11de3.rbndr.us has address 199.241.29.227

$ host 7f000001.c7f11de3.rbndr.us

7f000001.c7f11de3.rbndr.us has address 127.0.0.1

通过上述信息可知,主机名在两个IP之间进行解析处理,但当DNS Response中的TTL字段足够短时,将不会从本地DNS缓存中读取,而是重新发起DNS请求,当两个IP绑定到同一主机名上后,浏览器就会认为该两个IP都来自同一源地址,由此突破同源策略实现攻击。以下为一个简单地PoC测试页面,它可以实现对Blizzard客户端的攻击,利用网络驱动或目标设定来在玩家浏览器中和系统中“下载”或安装恶意dll以及数据文件等。

http://lock.cmpxchg8b.com/yah4od7N.html

a83a8a87-bbbc-4bb3-9c6f-6a30d46b5f20.png

修复过程

Ormandy最初于去年12月向暴雪公司报告了该漏洞,并催促暴雪公司尽快制作补丁以免玩家电脑系统受到影响。但在初次沟通之后,暴雪公司却停止了对Ormandy的邮件回应,并偷偷地在客户端版本5996中加入了部分缓解措施。

“暴雪公司在12月22日就突然停止了和我的邮件交流,他们不再回复我任何问题,但却悄悄在5996客户端中加入了一种奇怪的解决方案。”

“他们的解决方案似乎是查询客户端命令行,获取exename的32位FNV-1a哈希值,然后检查它是否在黑名单中,我建议他们把主机名列入白名单,但显然该解决方案过于简单。暴雪在不通知或咨询我的情况下就释出这个补丁,我非常不高兴。

但当Ormandy在此公开了该漏洞之后,暴雪公司却主动联系他并声称,将会采取更多稳定的主机白名单机制来修复该漏洞,相关补丁正在研发部署之中。针对该漏洞,Ormandy还对其它大型网游是否进行了检查测试。Ormandy还于上周发现了开源下载工具Transmission BitTorrent中存在的一个RCE漏洞,该漏洞同样可致使攻击者在Transmission客户端远程执行恶意代码,进而控制客户端系统。

*参考来源:thnchromium,freebuf小编clouds编译,转载请注明来自FreeBuf.COM 

# 漏洞 # 暴雪游戏
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者