火绒安全软件

火绒安全播报
发新帖
打印 上一主题 下一主题

[分析报告] 火绒安全警报:热门游戏被病毒团伙利用 每天感染数十万...

[复制链接]
15732 20
楼主
发表于 2017-10-16 18:02:15 | 只看该作者 |只看大图 |倒序浏览 |阅读模式
跳转到指定楼层
  一、概述

  近日,火绒安全实验室发出警报,病毒团伙正在利用多款热门游戏疯狂传播后门病毒"Backdoor/Jsctrl",每天有数十万台电脑受到感染。感染病毒之后,病毒制作者可随时通过远程指令对电脑做出下载其他病毒程序、劫持流量在内的多种破坏行为,牟取利益。

  据火绒安全团队分析,该病毒被制作者伪装成安装数据统计组件,植入到《传奇世界》、《传奇霸业》、《蓝月传奇》、《九天封神》等热门游戏的微端安装包内。用户在PChome、下载吧等网站下载某些软件时,会被捆绑安装这些游戏微端,而病毒也借机进入用户电脑。

  这些游戏推广力度非常大,重金邀请张家辉、古天乐等知名港星代言,网络推广铺天盖地,病毒也得以借势传播。根据"火绒威胁情报系统"的统计和评估,目前每天约有30-50万台电脑感染病毒。火绒安全团队表示,该病毒团伙很可能是部分游戏推广渠道商,建议以上游戏厂商尽快彻查自家游戏推广渠道。

  病毒入侵电脑后,病毒制作者可以通过修改服务器上的后门代码,远程操控受害者电脑,进行多种破坏行为,包括下载其他病毒程序、后台暗刷流量等。

  病毒"Backdoor/Jsctrl"极为顽固、隐蔽,不仅无法通过卸载游戏清除,还具备"反追踪"设置,可以监测远程协助软件(如安全厂商常用的TeamViewer等)中的运行窗口,一旦发现正在被远程协助,则会彻底删除病毒相关所有文件,以免被安全研究人员追踪。

  目前,"火绒安全软件"已升级病毒库,可以率先拦截、查杀"Backdoor/Jsctrl"。火绒工程师提醒广大用户,尽量通过官方网站下载软件,以免在被捆绑推广的同时,感染病毒。

  二、样本分析

  近期,火绒发现"下载吧"、"PCHome"软件下载中心等下载站的高速下载器所推广的《传奇世界》、《传奇霸业》、《蓝月传奇》、《九天封神》等多款游戏微端安装包内包含后门病毒。该后门病毒在上述游戏微端按转包运行后即被植入,且即便游戏被卸载仍然会常驻系统,该病毒会在远程C&C服务器存放的JavaScript代码控制下,利用病毒中封装的JavaScript对象可以执行任意WindowsAPI或其他后门逻辑(如:下载、运行命令行等)。并且,在我们近段时间的分析和追踪过程中,该C&C服务器下发的后门脚本仍处于持续更新状态。

  上文所述的几款游戏微端安装包中都包含有相同恶意代码,下文中我们以cqsj_Y_905908_feitian.exe(《传奇世界》游戏微端安装包)为例展开详细分析。此类安装包的文件名通常为"xxxx_Y_nnnnnn_*.exe"('x'代表任意字母,'n'代表任意数字,'*'代表部分内容不固定)。安装包整体逻辑如下图所示:

△病毒执行流程图

  游戏微端安装包

  该病毒安装包中都包含有一个病毒动态库(病毒动态库名通常为"游戏全拼首字母.dll",如:"tdzs.dll"对应"天地诸神")。文件属性如下图所示:

△安装包文件属性

  将NSIS安装包进行解包后,我们可以在NSIS脚本中看到tdzs.dll调用逻辑。如下图所示:

△NSIS脚本中调用tdzs.dll代码

  运行安装包之后,我们可以通过火绒剑看到其进程调用关系及tdzs.dll调用参数。如下图所示:

△安装包运行

  安装后,游戏登陆界面如下:

△游戏运行界面

  通过安装我们发现,虽然安装包文件信息为"天地诸神微端",但是安装后的游戏界面却是《37传奇世界》登录界面,安装逻辑较为混乱。

  tdzs.dll

  tdzs.dll动态库在文件信息中说明自己是"安装数据统计"程序,且在软件卸载时,该病毒动态库也会被一起删除,从而诱使用户误以为该动态库只进行"安装数据统计"操作。文件信息如下图所示:

△安装包释放的病毒动态库文件属性

  微端卸载程序删除tdzs.dll相关NSIS脚本,如下图所示:

△卸载相关NSIS脚本

  虽然tdzs.dll会被卸载程序删除,但是该动态库是直接被安装包进行调用的,所以通常在用户对游戏微端进行卸载时,病毒逻辑已经执行完毕。tdzs.dll动态库执行参数,如下图所示:

△tdzs.dll运行参数

  在tdzs.dll被rundll32调用后,首先会在全局构造过程中创建名为external的JavaScript对象,在该对象中封装了很多较为底层的方法(相较于在浏览器中执行的JavaScript脚本),用于执行其从远端服务器获取到的后门代码。

  在报告中所提及的三个病毒样本(tdzs.dll、随机名服务和up_zlib1.dll)中,关键的字符串数据都是经过XOR加密的,每一个字符串解密都对应一个独立的解密函数。解密代码举例,如下图所示:

△解密字符串

  构造external对象的相关逻辑以在对象中添加callapi方法为例,如下图所示:

△向external对象添加方法

△callapi函数实现

  除了callapi函数外,external对象中还实现有诸多方法,本文所提及的三个病毒样本运行远程后门脚本逻辑全部都依托于external对象,下文不再赘述。部分关键方法列表,如下图所示:

△external中封装的方法列表

  在构造external对象之后,会统计当前进程关系信息和一些本地计算机信息(如:IP地址、MAC地址、CPUID等),之后再将数据转为字符所对应的二进制字符串,经过加密后将最终数据发送到C&C服务器(hxxp://cdn.37wanyou.com)的53端口。相关代码如下所示:

△获取进程关系信息

△获取本地计算机信息

  最终上传至服务器中的数据,如下图所示:

△上传的数据

  在将加密后的数据上传C&C服务器之后,C&C服务器会返回一段被加密的压缩数据。在将数据还原后,程序会得到一个后门JavaScript脚本,通过运行脚本执行后门逻辑(其他病毒组件也同样存在相同逻辑,下文不再赘述)。

  下载数据解密逻辑如下图所示:

△下载解密JavaScript脚本

  调用ScriptControl.AddObject引用external对象后,执行后门JavaScript代码。脚本执行逻辑,如下图所示:

△执行后门JavaScript代码

  程序执行的后门脚本可以通过云端控制,现阶段病毒已经进入蛰伏期,tdzs.dll所执行的远程脚本已经不再释放后续病毒,只有个别环境才能运行出远程脚本调用逻辑,进行软件推广。在我们通过火绒终端威胁情报系统检索与该病毒相关的行为信息时,我们发现,除了《传奇世界》游戏微端带有tdzs.dll病毒动态库外,还有其他游戏微端安装程序(下图为《九天封神》相关数据)也会释放运行该病毒,且调用参数与前文所述完全相同。火绒捆绑拦截功能日志,如下图所示:

△捆绑拦截日志

  随机名服务

  该病毒服务的文件名是通过固定字典随机组合两个英文单词而成,文件名例如:AcceleratorLeaders.exe、AcronymOcclude.exe等等。病毒服务启动后会创建一个相同的子进程,父进程为守护进程,当子进程被结束时会重启启动子进程。代码逻辑,如下图所示:

△等待进程退出

△重新创建进程

  在子进程创建之后,父进程会执行与tdzs.dll中相似的信息收集流程(收集进程关系信息和本地计算机信息),之后由父进程将加密后的数据上传至C&C服务器(hxxp://update.wanyou7.com:3900/config/gameupdate.asp)。上传后,服务器会返回JavaScript脚本进行下一步病毒释放和执行(执行JavaScript脚本相关逻辑与上文相同)。但如上文推断,现阶段该病毒已经进入"蛰伏期",该链接已经无法访问。在服务还可以继续释放病毒文件的时,病毒服务会释放up_zlib1.dll并使用rundll32进行执行,由于服务文件说明为"游戏微端更新",使得其释放其他病毒文件时不会引起用户注意。

  病毒服务的文件信息,如下图所示:

△病毒服务文件信息

  病毒服务所使用的签名并不固定,如火绒截获的另一个相同的病毒服务文件信息,如下图所示:

△文件信息

  病毒服务使用rundll32调用up_zlib1.dll,如下图所示:

△病毒服务调用up_zlib1.dll日志

  子进程也会将上述进程信息和计算机数据发送至C&C服务器的另一个服务页面(hxxp://update.wanyou7.com:3900/config/crm.asp),上传数据后返回JavaScript脚本并进行执行。

  JavaScript脚本逻辑,如下图所示:

△crm.asp页面中获取到的JavaScript脚本

  如上图,如果检测到远程协助窗口类名(如:TeamViewer等)和数据包过滤分析工具进程(包括WireShark、Fidder、HttpAnalyze),则会调用external对象中的SvcExecScript方法执行远程C&C服务器(hxxp://update.wanyou7.com:3900/config/service.asp)中存放的JavaScript脚本执行自毁逻辑。自毁主逻辑代码,如下图所示:

△自毁代码

  如图,JavaScript脚本会依次执行close_proc_has_module、del_self和del_dllservice三个函数执行自毁逻辑。close_proc_has_module函数用于遍历遍历进程,将进程模块中包含"up_zlib1.dll"的进程全部结束。具体逻辑,如下图所示:

△结束所有加载指定模块名的进程

  del_self函数主要用于删除当前进程镜像文件,如下图所示:

△del_self函数代码逻辑

  del_dllservice函数逻辑会先检测是否存在指定服务名的注册表启动项(如果未指定则删除自身服务项),如果存在则通过调用"scdelete"和"scstop"结束并删除病毒服务。如下图所示:

△del_dllservice函数代码逻辑

  up_zlib1.dll

  up_zlib1.dll动态库被rundll32调用后会创建隐藏的web控件,在后台暗刷流量,并且在访问导航页面的同时,病毒还利用JavaScript脚本模仿用户操作,欺骗导航站的作弊检测逻辑。在显示web控件窗口后,执行效果如下图所示:

△执行效果

  up_zlib1.dll动态库由服务进行调用。调用参数,如下图所示:

△up_zlib1.dll调用参数

  调用参数网址(hxxp://121.43.33.129:8064/apithird/getlink)中存放有一段JavaScript脚本,如下图所示:

△JavaScript脚本片段

  在进行上述访问时,host_id属性是随机的,每个host_id所对应的script链接属性各不相同。在拿到host_id后,动态库会使用rundll32再次调用up_zlib1.dll动态库,网址参数中传入了host_id和来自delay成员中的任意数值。如下图所示:

△运行参数

  此次在服务器中获取到的内容,如下图所示:

△第二次请求获取的内容

  url_list属性中存放的是web控件在刷取流量时要跳转的网址,如果网址为"about:blank",则跳转网址会由script属性网址返回的JavaScript脚本进行设置。病毒会创建出一个隐藏的窗体,之后在该窗体上绘制web控件。在创建窗体之前,程序先会检测当前模块文件所在目录下是否存在扩展名为".debug"的同名文件,如果存在则会显示web控件所在窗体,病毒作者可能在测试时使用。

  创建窗体相关代码,如下图所示:

△创建窗体

△窗口类初始化

  在窗口响应WM_CREATE消息时会设置一个Timer,间隔为8秒。在窗口回调函数接收到WM_Timer消息后,如果网页加载状态readyState值为complete或者interactive,则在网页中插入从远端服务器地址(http://tj.im991.com/dh/view_360_uv_so.asp)中获取到的JavaScript脚本。相关代码,如下图所示:

△窗口回调函数

  检测readyState相关逻辑,如下图所示:

△检测readyState

  如果页面加载完成,则在页面中插入script标签执行JavaScript脚本。如下图所示:

△创建script标签

△添加脚本内容

  程序会在获取到C&C服务器地址(http://tj.im991.com/dh/view_360_uv_so.asp)末尾拼接"t=1"参数,如果没有该参数则无法获取到完整的JavaScript代码。"t=1"参数所影响的关键代码,如下图所示:

△脚本关键逻辑

  __get_url函数用于从网址列表中随机获取网址,如下图所示:

△__get_url函数逻辑

  模拟用户操作部分主要可以进行搜索关键字和点击网页连接操作,如下图所示:

△模拟用户操作

  三、溯源分析

  如前文所述,我们通过火绒终端威胁情报系统发现,带有该后门病毒的游戏微端安装包并不只有《传奇世界》。在火绒对大多数主流下载站进行排查之后,我们发现"下载吧"和"电脑之家"下载站现今所提供的高速下载器会推广该病毒安装包。如下图所示:

△推广列表

  如上图,虽然病毒安装包释放的动态库名称不尽相同,但是调用参数与前文所述tdzs.dll完全相同,且代码逻辑也完全相同。这些病毒安装包的下载地址都来自于域名"hxxp://cdn.xunshark.cn",且这些病毒安装包与前文提到的病毒安装包(cqsj_Y_905908_feitian.exe)签名同为"北京迅鲨科技有限公司"签名。如下图所示:

△安装包签名信息

  安装包所释放病毒动态库签名信息也同为"北京迅鲨科技有限公司",如下图所示:

△病毒动态库文件签名信息

  该组病毒文件中,up_zlib1.dll的签名信息还涉及另一家公司"北京神州安腾科技发展有限公司"。签名信息,如下图所示:

△up_zlib1.dll签名信息

  通过搜索该公司的知识产权信息,我们找到另一款同样带有该模块的软件。如下图所示:

△软件著作权信息

  在下载柠檬输入法软件安装后,我们也发现了具有相同数据和代码逻辑的"zlib1.dll"。如下图所示:

△软件下载

  对"up_zlib1.dll"和柠檬输入法中的"zlib1.dll"动态库脱壳后,可见同源性代码及数据,如下图所示:

△代码同源性

△数据同源性

  四、附录

  文中涉及样本SHA256:
  文中样本所所涉及的域名及IP地址:

详细分析报告参见:http://down4.huorong.cn/doc/jsctrl.pdf
回复

使用道具 举报

15732 20
沙发
发表于 2017-10-16 18:31:06 | 只看该作者
又是各大下载站、、、只要给钱什么都发,还特么标注一堆安全软件检测,都是挂出来玩的。
回复

使用道具 举报

15732 20
板凳
发表于 2017-10-16 18:54:43 | 只看该作者
id菜鸟组 发表于 2017-10-16 18:31
又是各大下载站、、、只要给钱什么都发,还特么标注一堆安全软件检测,都是挂出来玩的。 ...

没错,下载站只为挣广告费,严格的说难道它们真不知道这种模式“有问题”吗?
回复

使用道具 举报

15732 20
地板
发表于 2017-10-16 19:26:56 | 只看该作者
地板
回复

使用道具 举报

15732 20
5#
发表于 2017-10-16 19:30:53 | 只看该作者
幸好不玩游戏
回复

使用道具 举报

15732 20
6#
发表于 2017-10-16 20:04:25 | 只看该作者

地板
回复

使用道具 举报

15732 20
7#
发表于 2017-10-16 21:19:00 | 只看该作者
火绒应该联合政府打击此类垃圾
回复

使用道具 举报

15732 20
8#
发表于 2017-10-16 21:59:53 | 只看该作者
火绒棒!!敢说真话。
回复

使用道具 举报

15732 20
9#
发表于 2017-10-16 22:14:55 | 只看该作者
对,火绒要多多跟政府合作,维护网络世界的和平
回复

使用道具 举报

15732 20
10#
发表于 2017-10-16 22:53:07 | 只看该作者
厉害了,我的绒。
回复

使用道具 举报

15732 20
11#
发表于 2017-10-17 18:02:14 | 只看该作者

1刀9999级~~ 广告到处飞~~

没骗到人玩,肯定不会这么砸广告费
回复

使用道具 举报

15732 20
12#
发表于 2017-10-17 19:10:06 | 只看该作者
每次分析这么长一篇

点评

问题不分析细致,解决方案就没法做细致。  发表于 2017-10-17 20:01
回复

使用道具 举报

15732 20
13#
发表于 2017-10-19 20:31:18 | 只看该作者
大天使之剑。蓝月亮传奇。 GHOST系统里面都会出现这些游戏。
回复

使用道具 举报

15732 20
14#
发表于 2017-10-20 15:19:17 | 只看该作者
每次视频广告都有这些游戏
回复

使用道具 举报

15732 20
15#
发表于 2017-10-20 16:52:27 | 只看该作者
火绒好认知负责啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

快速回复 返回顶部 返回列表