棋牌游戏木马分析

阅读量    35669 | 评论 11

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

 

背景

棋牌游戏,应该算是古老而经典的一类电脑游戏了。随着互联网技术的不断提高与普及,这类颇为“古典”的游戏类型也越来越与时俱进的拥抱着互联网技术。各种在线棋牌游戏应运而生。

与大多数其他类型的网络游戏不同,在线棋牌游戏从来都不是几家大公司霸占网络的局面:这一方面自然是得益于棋牌游戏从来都不需要大公司砸下重金去做什么宏大场景和炫酷特效;另一方面,一些不法分子利用小平台管理不严的问题在这种在线棋牌游戏平台上以“玩牌”为名行“赌博”之实大肆敛财。早在2014年,温州警方就破获了一伙通过在线棋牌游戏赚到富可敌“省”的赌博团伙,在当时引起了不小的轰动。而就算到了4年后的今天,此类事件依然层出不穷。俗话说,十赌九骗(笔者倒认为应该是十赌十骗),赌博必然和各种各样的作弊手段密不可分。从传统的线下赌博挪到了在线棋牌游戏,作弊的手段当然也要跟得上形式,而新型的作弊手段自然就会用到棋牌游戏木马。

360互联网安全中心根据最近的棋牌游戏木马流行趋势,将从数据统计和技术分析的角度介绍几款典型的棋牌游戏木马分析案例,以揭露企图利用在线棋牌游戏获取不义之财的“老千”们的丑恶嘴脸。

正文

木马的存在形式

通过对近期多款棋牌游戏木马分析整理,从中可以发现,它们的存在形式通常是如下方式

其中以“独立远控类”的占比最多,以“劫持系统组件“方式的占比最少。

棋牌游戏木马存在形式对比

实现方式

实现难度

检测难度

隐蔽性

持久性

篡改游戏组件

★★★

★★★

劫持系统组件

★★

★★★

独立远控类

★★★

★★

★★

★★★

这种情况的产生,从上表可以得到结论

  • “篡改游戏组件”的持久性较低,当游戏卸载时木马模块也一同卸载
  • “独立远控类”虽然实现难度最高,但其所带来的其他特性都很高,值得攻击者尝试
  • “篡改系统组件”方式存在很大的弊端——其检测难度很低,所以并不多见

总体来讲,通过篡改游戏组件和独立远控类方式的居多,本文所提到的样本主要也是以这两类为标准进行筛选,下文是对典型案例的分析。

篡改游戏组件

由于篡改游戏组件拥有相对来讲很强的隐蔽性,通常都是由木马传播者经过精心设计出来,有很强的针对性,这种针对性具体体现在下面两点,

  • 优先考虑能在自身模块内实现功能的
  • 优先选取通用型模块,即一个木马模块稍加修改(模块名称)后在其他棋牌游戏客户端下也可运行

使用Satellite DLL特性劫持

这款被篡改的名为6377游戏中心客户端内,攻击者放入了名为6377gameCHS的DLL文件,当主程序6377game.exe启动时,MFC运行时判断当前系统主UI为简体中文,则自动加载上述DLL模块。当DLL启动后,首先对进程名称进行校验,之后加载MFC71u.dll

对其InitInstance进行hook,使得窗体初始化函数失效,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-21-16-48-55.jpg之后开启一个线程,对游戏内主要行为代码进行hook,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-21-16-58-08.jpg同时,在run_StartVhookstub函数中,会不断使用rundll32启动自身模块,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-21-17-12-32.jpg并抓取用户屏幕保存图片后回传控制端

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-21-17-11-21.jpg

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-21-17-11-43.jpg这款木马相对一个远控来讲,其功能单一,主要功能仅完成“窃取虚拟账户”、“抓取屏幕”两种,但也正是如此,使其具有很强的隐蔽性。

篡改通用组件zlib

zlib是提供数据压缩用的函式库,被广泛应用在数据存储与数据传输过程中。在这款被篡改的名为集结游戏中心的客户端内,zlib模块被重新进行了编译,并在DLL入口处加入了内存加载代码,用于加载木马模块123.gif

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-21-17-42-20.jpg当123.gif启动后执行t8导出函数,通过hook拦截游戏进程逻辑,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-21-18-15-54.jpg其他功能如数据回传,文件更新等不再赘述。

独立远控类

上节主要介绍了以“篡改游戏组件”方式存在的木马模块,由于其目的性极强——以窃取用户虚拟游戏帐号资产为目的,实质的危害性相对来说比“独立远控类”方式略小,因为本节介绍的案例样本均为具备完整远程控制功能的木马,实质的危害性取决于控制者。

大多数该类型木马很多都是购买的“免杀”木马,除使用在棋牌游戏中之外,还广泛的使用于网购诈骗,游戏盗号等过程中。

gamepatch类木马

gamepatch类木马流传已久,最早可以追溯到15,16年左右,该类木马的特点如下,

  1. 大多存在一个名为gamepatch的文件夹
  2. 使用可按配置进行操作的白程序用于对抗安全软件防护功能
  3. 使用多款第三方工具程序,完成转移、拼接等还原远控模块的逻辑

这里,以一款名为3099游戏的客户端进行举例说明,当客户端安装成功后,其桌面的快捷方式指向的已经不是原始游戏主程序,取而代之的是一个含有顺网签名的程序,由于该类程序广泛的应用于网吧内部客户机上作为启动器使用,为了后期尽可能少的更改,开发人员直接使用配置文件方式控制程序流程,由于配置文件的格式全部以ini格式组织,且名称固定,这无疑给这些木马作者留下了一大笔”财富”用于对抗杀软防护功能。http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-11-09-31.jpg当受害者点击桌面的游戏图标后,完成如下逻辑,

1.启动第一阶段bat脚本,部署好后续文件,a.写注册表启动项,b.还原rar文件并解压第二阶段bat脚本

2.启动第二阶段bat脚本,首先写回MZ等恢复自身木马DLL模块,根据不同杀软情况执行不同逻辑

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-11-35-48.jpg比较典型的在”只有360″情况下,bat脚本尝试断网运行,使用名为dw.lnk实际运行ipconfig.exe /release命令达到断网目的,这一招使得目前绝大多数基于云查杀的杀软“失效”。

同时另外一点比较有意思的写注册表启动项方式,是使用%temp%\zc.exe advpack.dll,LaunchINFSectionEx %temp%\zc.inf,DefaultInstall,,32的lnk文件,也即使用rundll32加载inf文件写入注册表

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-11-47-47.jpg最后,如果执行顺利,则会直接或重启后启动远控模块。

850Game

在这款被篡改后的850棋牌游戏客户端内,其安装程序在执行时会释放远控模块在C:\\$MSRecycle.Bin下并执行,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-14-57-32.jpg当远控模块执行时,首先对自身进程路径以及工作目录进行判断及调整,之后内存加载IO.dat文件

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-15-00-03.jpg而IO.dat文件中,包含了5个PE文件如下,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-15-17-22.jpg其中编号为1的PE文件是某游戏公司签名文件,由于现代化的杀软普遍支持“游戏模式”,所以当该程序运行时,杀软默默进入“静默模式”,这使得部分非严重弹窗直接默认屏蔽,用户基本无感知。

编号为4的PE文件是带签名白文件,该程序默认启动当前目录下qq.exe,被用来当做远控的启动器。

同时,IO.dat尝试通过BITS后台传输服务尝试逃避检测,其逻辑为先创建BITS后台服务,再指定回调CMD命令,当创建服务成功后执行指定命令。

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-15-31-36.jpg本样本通过regsvr32执行本地sct文件,主要内容如下http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-15-40-00.jpg

启动时机把握

上面对木马存在的形式进行了四个案例的分析,本节主要对远控类木马上线时机进行简单总结,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2018-05-22-12-15-48.jpg如图所示,有部分远控木马会在棋牌游戏客户端安装程序执行时立即启动,通过联网下拉方式替换游戏内客户端模块,并且根据当前系统环境判断是否以及使用何种方式实现持久化;

另外一部分选择重启后启动,该种远控类型通常有比较成熟的对抗安全软件防护功能方案;

而还有一些比较少见的如通过注销重登入方式延迟启动,当然前提是已经成功写好对应启动项。

攻击者

通过对现有样本模块的分析,可以推测,当前的攻击者角色有

1.木马开发、发布者,通过对客户端解包后植入木马模块再发布

2.模块供应链,棋牌游戏客户端中使用的某些第三方供应链模块(例如通用游戏平台模块、压缩加密库等)被植入恶意代码

3.棋牌客户端本身,开发者自行植入远控模块

受害者

经过统计今年来的受害者地区分布,得到如下图表,

http://10.19.19.29:9600/_file_for_preview?filepath=E%3A/%E6%96%87%E7%AB%A0/_image/2%25P%40AWPQYVDYMV0%7EUMJ93DI.png可以发现四川、湖北以及湖南地区受害者偏多。

总结

由于在线棋牌游戏受众广泛且其中涉及到的潜在利润巨大,与之相伴生的棋牌木马也从未停止过自己作恶的脚部。这些捆绑了木马的虚假棋牌游戏多采用搜索引擎竞价排名的方式,靠正版游戏的热度给自己带来可观的流量。这种模式是各种灰色产业的导流主力,建议大家不要轻信搜索结果,请认准官网,同时注意开启安全防护软件,避免自身沦为棋牌游戏木马的受害者。

REF

[1]. http://www.freebuf.com/news/75775.html <技术分析:在线棋牌游戏的木马“集结号”>

[2]. https://security.tencent.com/index.php/blog/msg/20 <DLL劫持漏洞解析>

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多