当前位置: 爱尖刀 > 首页安全 > 技术文章 > 正文

魔兽世界:一行简单的代码可以让你损失惨重

2016-7-29 02:59 浏览次数:977 我来说两句(0)

几天前,一种新型的金币/物品骗局流传开来。通常在MMORPGs(大型多人网络角色扮演游戏)中的欺骗通过社会工程学技术实现,如攻击者声称其具有游戏内物品(例如坐骑),然后将假冒的物品代码卖给一个潜在的受害者以获取游戏货币。但是,这种最新攻击不仅涉及了社会工程学,还依赖于先前的魔兽世界接口中的非法功能的滥用。

新型攻击

想象一下以下情况:一个游戏角色,以一个受欢迎的协会成员的方式出现,然后接近你的游戏角色,并且承诺分享一些很酷的东西给你,如稀有坐骑(一种动物,可以乘坐和改善你的行进速度)、武器等等。而实际上,很有可能攻击者并没有这些物品,也没有这些物品的有效代码。当然,随后受害者也没有得到任何有效的代码和物品。但是,陷阱是:攻击者可能会成功地说服玩家在聊天窗口中输入一个命令:

/run RemoveExtraSpaces=RunScript

魔兽世界的接口(如操作栏、聊天窗口和其他图形元素等所有2D的接口)和扩展(如改进接口)都是用Lua脚本语言写的。上面这行命令的等号两边,RemoveExtraSpaces还有RunScript都是合法的函数,并且是魔兽世界Lua API的一部分。但是,如果在你的聊天窗口中输入这行代码的话,会改变魔兽世界接口的行为。

这个命令到底做了什么?

/run是一个将下面的文本解释为一个Lua脚本的命令

RemoveExtraSpaces是一个内置函数,用来删除文本中不必要的空格

RunScript是一个将文本作为Lua代码执行的函数(类似于/run命令)

为什么这是一个威胁呢?

玩家接收到的每一条聊天消息都会调用函数RemoveExtraSpaces。上述命令用RunScript函数来替换RemoveExtraSpaces函数, 这在软件开发中称为钩子。一旦覆盖掉原来的函数,那么每一个新的聊天消息都会被解释为Lua代码,并立即执行。场景如下:

不知情的玩家会在自己的聊天窗口中输入给定的命令,因为外国的游戏角色听起来会非常令人信服,如果他说了类似“输入这个代码,神奇的事情将会发生”这样的话。而结果却是相反的,玩家并不会得到一些魔法物品,而是把自己变成了受害者:

 

\

 

不知情的玩家准备“发送”这行邪恶的代码

 

\

 

攻击者给受害者发送一条聊天消息

 

\
游戏本排行
游戏本排行
曲面电视
曲面电视
虚拟现实制作
虚拟现实制作

 

这条“聊天消息”被解释为Lua代码并执行

如上所示,看起来这种滥用是一个相当无害的例子。但实际上,这意味着攻击者现在可以远程控制受害者的接口。这非常类似于普通的特洛伊木马在电脑上显示的行为——它们冒充一些有用的东西,然后展开它们的恶意行为。在实际情况中,攻击者并不是创建一个包含 “测试”文本的消息框,而是会运行一个不同的脚本,这个我们将在下一节中解释。

暂时的持久性和隐藏的命令

当受害者打开他的接口的后门之后,攻击者会发送如下的聊天信息:

 

\

 

攻击者建立了一个新的通信通道

如果之前的命令执行了,对受害者而言,上述消息是看不到的,但是它会立即执行。事实是聊天功能已经不再工作,这看起来可能是可疑的,甚至会让受害者重新启动游戏。我们怀疑攻击者会通过发送如上所示的命令很快地“解决这个问题”,上面的命令建立了一个新的通信通道,然后很可能还可以重新开启受害者的聊天功能。

想要理解这段代码的目的需要知道,魔兽世界的扩展插件有可能通过一个隐藏的通道(本地和远程)进行交流。可以使用“CHAT_MSG_ADDON”事件来建立这个通道。

 

\
财运不好愁?貔貅为您解烦忧!
【点击进入】
2016最强势的招财转运秘诀! 家有貔貅,万事无忧!您奉请了吗?

 

解释CHAT_MSG_ADDON事件功能的脚本代码

这段脚本创建了一个框架(第2行;z)可以设置不同的属性。这个脚本用一个特殊的前缀注册了CHAT_MSG_ADDON事件(6 - 25行)。只有知道这个特意选择的前缀的人才能控制受害者的被劫持接口。这相当于一个后门的密码。

每次劫持接口接收到包含设定好的秘密前缀的CHAT_MSG_ADDON事件,它就会默默地执行代码,而受害者是看不见的。

结论:只要攻击者不希望你看到他对你的帐户进行的操作,他就不会告诉你到底发生了什么事!

即使我们谈论的是扩展插件可以通过一个隐藏的通道进行通信,不过攻击者并不需要为了攻击而安装任何插件。这是一个新开发的关于魔兽世界游戏内的攻击。

到底能造成什么伤害呢?

随着攻击者获得了受害者接口的完全访问权限,他可以定位受害者的游戏角色目前在虚拟地图中所处的位置,并在游戏内与他接触。攻击者通常不会有机会知道关于其他玩家这么详细的信息。

在魔兽世界中,玩家之间有可能会进行物品交易。为此,两个角色需要在一定的物理距离内,然后才能进行物品交换。如果攻击者知道了受害者的角色的位置,并且自己的角色与受害者的游戏角色在一定范围内,他就可以远程打开交易窗口,在受害者这边添加物品和/或金币,并点击“接受交易”按钮。他实际上可以肆意抢劫受害者。

我们的场景描述了一个配合技术攻击的社会工程学攻击。攻击者可能会用操纵的客户端向其他玩家(例如协会成员,朋友等等)发送令人信服的聊天信息,从而用简单却又高效的脚本来操纵更多的游戏角色。我们都知道,来自朋友和同事的消息一般都是可信赖的。

我们该如何保护自己?

就像听起来那样简单:不要在你的聊天窗口中输入脚本代码!在向你的聊天窗口中输入任何消息之前要问清楚每一个请求。

在给出的例子中,我们讨论了一个攻击者的游戏人物属于一个受欢迎的协会,他提出他是这个受欢迎协会的成员,但实际上他并不是。他选择了一个著名的协会,并复制了他们的名字,用大写的“L”来替代他们名字中的小写的“l”。你可能已经熟悉这种排版错误钓鱼攻击技术。

此外,从第三方下载插件时要小心:使用可信赖的和受欢迎的网站,并且保持你的插件是最新的。可以想象,有些人可能会将问题代码添加到他们的插件中,从而使用这个附加的代码作为一种额外的攻击工具。类似的问题发生在2014年,当时在一个插件中发现了所谓的“ElvUI后门”。

这个问题本身只能由暴雪来修复。他们必须确保覆盖这样一个特殊函数的行为变得不可能。在本文的创作期间,暴雪于昨天为即将到来的扩展插件“Legion”公布了一个预发布版本。他们对脚本攻击做出了反应, 在输入脚本之后,执行之前,会弹出一个警告消息:

 

\

 

暴雪添加到他们的最新补丁中的警告消息

选择“Yes”会永久禁用这个消息,即使重启也不会再次出现——这个询问不会再次弹出。如果想要重新启动它,你必须手动删除配置中的一行代码,真的只有这一行:

需要删除的代码:SET AllowDangerousScripts "1"

文件:config-cache.wtf

路径:World of Warcraft\WTF\Account\\




[广告]赞助链接:

知安,互联网产品安全医院:http://www.knowsafe.com
舆情监测,互联网舆情首选查舆情:http://www.chayuqing.com/
爱尖刀科技,关注企业数据与安全:http://www.ijiandao.com

关注公众号:Mcbang_com 了解更多精彩,关注:chayuqing_com 娱乐资讯早知道!
收藏 分享 发布者: admin |
看完这篇文章,你的感受如何?


伤心


无视


惊讶


流汗


赞同


路过
热点聚焦
更多>>
情凝中秋,乐在团圆 中秋节又称团圆节,是从古代至今,对远方亲人思念之情的体现;也是东方 ... [详细]
传递爱心 帮助需要的人 中国红十字已不能信任,民政系统变的自私,在这样的环境下,很多需 ... [详细]
【D盾】- 携手啊D共推《 [详细]
父亲节(Father's D 温家宝:父爱,如大海般深沉而宽广。 我们的力量出自与父亲,我们的 ... [详细]
祝高考学子凯旋而归 明后两天,高中三年的最后两天,也是将会影响命运的两天! 3年=1095天 ... [详细]
Copyright© 2006-2016 IjianDao.Com All rights reserved.
网络尖刀 版权所有 京ICP备14006288号-3