专栏首页FreeBuf看看影音恶意挖矿行为分析

看看影音恶意挖矿行为分析

近日,部分用户出现电脑GPU占用率高,电脑温度升高,风扇噪声增大等问题。具体现象为电脑中C盘可使用空间骤降,且在C盘Ethash文件夹内,发现存在大量的1G左右的垃圾文件;电脑闲置状态时,风扇转速增快,电脑发热增加,GPU使用率达到100%。非闲置状态时,恢复正常。经过远程调试分析发现是看看影音在后台偷偷利用用户电脑的运算资源进行以太币(一种类似比特币的数字货币)挖矿导致。

[看看影音的版本和公司信息]

安装看看影音后,会注册组件%APP_DATA%\Video Legend\RBC\Program\RBCShellExternal.dll到注册表的explorer加载项,从而开机即可加载运行,然后通过lua脚本控制,下载挖矿模块到本地利用GPU挖矿,整个流程如下图所示:

[看看影音挖矿行为整体流程简图]

RBCShellExternal.dll分析

该组件是一个商业功能模块,RBC是Remote Bussiness Control的缩写。顾名思义,这个模块可以通过远程配置来控制用户电脑上运行不同的模块,比如升级、修复、广告弹窗、推广安装等,也包括挖矿。

RBCShellExternal.dll会通过rundll32.exe来加载模块RBCEntry.dll,并通过命令行参数来检测调试工具。

[加载RBCEntry.dll的命令行]

完整命令行如下:

rundll32.exe”%APP_DATA%\Video Legend\RBC\Program\RbcEntry.dll”, Control_RunDLL/thread /src ..\\..\\Xar\\Rbc.xar /killex /priority 0 /checktime /delay 1 /idle%d /busy %d /debug /bkwndlist”Microsoft Visual;HTTPAnalyzer;WinDBG;OllyDebug;fiddler;SmartSniff;\t\t\t\t\t\t\t\tSpy++;Spy;ATL/MFC;任务管理器;DebugView;Process Explorer;File Monitor;RegistryMonitor;Wireshark;OllyICE;OllyDBG;Sysinternals” /bkprocesslist”fiddler.exe;windbg.exe;devenv.exe;taskmgr.exe;wireshark.exe;\t\t\t\t\t\t\t\t\thttpanalyzer.exe;smsniff.exe;filemon.exe;regmon.exe;procmon.exe;ollydbg.exe;softice.exe;cis.exe;\t\t\t\t\t\t\t\t\ttasklist.exe;procexp.exe;ollyice.exe;processspy.exe;spyxx.exe;winspy.exe;cv.exe”

参数/src指定了要加载的lua脚本模块(已打包成xar格式),通过lua脚本来控制任务;参数/bkwndlist指定要查找的窗口标题,参数/bkprocesslist指定要查找的进程名,一旦枚举到指定的窗口或进程名,立刻结束进程,防止被用户发现。

LUA脚本分析

RbcEntry.dll封装了LUA引擎,加载后首先解析Rbc.xar,然后调用其中的onload.lua,启动整个脚本。Rbc.xar是任务调度模块,核心功能是从云端下载任务控制脚本并加载运行。

Rbc.xar解包后目录树如下:

Rbc.xar │ └─layout │ onload.lua │ └─luacode kkp.curl.lua rbc.base.lua rbc.eventsource.lua rbc.filter.lua rbc.helper.lua rbc.lua rbc.scheduler.lua rbc.setting.lua rbc.task.lua rbc.version.lua

onload.lua主要功能是加载各个脚本,代码如下:

[onLoad.lua加载脚本]

最后加载rbc.scheduler.lua里面包含了远程配置的任务脚本url:http:/***.kankan.com/rbc/taskschedule_v1.2.dat

[rbc.scheduler.lua调度脚本]

从各个函数名称可以看出,该脚本是主要功能是调度任务的运行。而脚本taskschedule_v1.2.dat则是真正的任务脚本。

taskschedule_v1.2.dat中配置了各种任务的参数,其中挖矿任务的参数配置块如下:

[挖矿任务脚本的参数配置块]

其中link就是该任务模块的下载地址,通常是xar包;frequency是执行频率;googleid和cnzzid是活跃统计标识。configurl是脚本里面使用的远程配置,主要是挖矿DLL模块的下载地址和MD5,具体内容请看下文。

任务模块下载后保存在%APP_DATA%\VideoLegend\RBC\Task目录下:

[%APP_DATA%\VideoLegend\RBC\Task下生成的各任务目录]

整理所有任务URL,如下:

http:// ***.kankan.com/rbc/fixrbclaunch_v1.2.cab http://***.kankan.com/rbc/startip_v3.2.cab http://***.kankan.com/rbc/upkkp_v1.20.cab http://***.kankan.com/rbc/uprbc_v1.11.cab http://***.kankan.com/rbc/uprbcxar_v1.1.cab http://***.kankan.com/rbc/checkintegrity_v1.9.xar http://***.kankan.com/rbc/arkkp_v5.2.cab http://***.kankan.com/rbc/aikkp_v6.1.xar http://***.kankan.com/rbc/arfix_v1.0.xar http://***.kankan.com/rbc/dc_fixplugin_v4.2.lua http://***.kankan.com/rbc/fixplugin_v12.0.cab http://***.kankan.com/rbc/fixplugin_v11.5.cab http://***.kankan.com/rbc/launchkkp_v10.1.xar http://***.kankan.com/rbc/launchkkp_v20.1.cab http://***.kankan.com/rbc/rbctip_v5.10.cab http://***.kankan.com/rbc/newstip_v2.21.cab http://***.kankan.com/rbc/rbcbiz_v3.3.cab http://***.kankan.com/rbc/rbcbizlite_v1.3.cab http://***.kankan.com/rbc/biztask_v2.1.cab http://***.kankan.com/rbc/fixpusher_v1.3.cab http://***.kankan.com/rbc/dc_task_v5.3.xar http://***.kankan.com/rbc/partnerlink_v2.2.cab http://***.kankan.com/rbc/partnerdll_v2.11.xar http://***.kankan.com/rbc/arbrowserlink_v2.9.xar http://***.kankan.com/rbc/dc_arbrowserlink_v2.3.xar http://***.kankan.com/rbc/arbrowserlinkq_v1.6.xar http://***.kankan.com/rbc/dc_arbrowserlinkq_v1.2.xar

其中http://***.kankan.com/rbc/partnerdll_v2.11.xar是挖矿任务控制脚本,md5为8EF1948C5EA9B8113706CBFF1EBB8CF5;解包后只有一个脚本onload.lua,主要功能是根据配置参数configurl下载deploy64.dll到%TEMP%目录下并加载运行。而deploy64.dll正是挖矿的主体模块。

configurl配置的脚本内容如下:

[挖矿任务脚本配置的DLL下载地址]

里面配置了deploy.dll的3个下载地址caburl、caburl_without、caburl_withoutwithdll,其中caburl是编译了opencl的,caburl_without是没有编译opencl的,caburl_withoutwithdll是没有编译opencl但打包了OpenCl.dll的。但脚本中总是去下载caburl,最后调用rundll32.exe加载Deploy64.dll运行:

[脚本调用rundll32.exe加载Deploy64.dll]

完整命令行如下:

c:\windows\system32\rundll32.exe“%TEMP%\Deploy64.dll” ,Control_RunDLL index_class_d=%d

其中参数index_class_d在taskschedule_v1.2.dat中的任务参数配置块中指定。

Deploy64.dll加载起来后就开始执行真正的挖矿代码了,是导致GPU使用率大增、电脑过热、C盘可用空间变小的真正元凶。

Deploy64.dll分析

Deploy64.dll加载后会创建2个线程:CSafeRT::MonitorThread和EthThread。其中CSafeRT::MonitorThread是监控线程,而EthThread是挖矿线程。

CSafeRT::MonitorThread

该线程会创建一个窗口,窗口类名为__deploy_CSafeRTImpl,窗口名称为__deploy_CSafeRTImpl_i_1_5,然后在窗口过程函数中检测调试器和枚举窗口,如果检测到被调试或有检测工具窗口存在则退出。

[检测到正在被调试则退出]

[检测到以上窗口标题则退出]

EthThread

Ethread是执行挖矿的主体线程,首先下载挖矿配置文件http://***.kankan.com/deploy/dtask%d_.ini,其中%d由传入参数index_class_d指定,目前0-7有效。该配置文件内容如下:

[挖矿配置文件]

读取配置字段后使用AES128算法解密,得到

p = “http://eth-asia1.nanopool.org:8888”;us = “0x7016df7C2d2AcF0DAc218A410e61002A66837151; 0xEaABAF0384EE73bca43c2A698e240d64de09081b; 0x0af856fbEd6e93A01b3c4557D64edc99C5a5d46B; 0x669F588F103764f98b94ceBFB6fB93bbd5dF2CFc; 0xedC148759dFdFfA3EEfF01Ea64B2aBf20642799f; 0xfE7c793eD4F16B6d05eC763D98389590b0c812E1; 0xc556d14247A59d1E0886bB21b4fAe1481C744191; 0xb1d42965F539eAF688938A16be47558053D57A52; 0x6563b8A0a6238edc8c3bBD7E23AB6174DED92165; 0x9C3dc3Bc89a0f16B1CBc2bA8b35427d286F783ec; 0xFfB6faEF01A41330425ae1795601f6D3F7c1d762”

[解密得到的挖矿参数]

然后拼接得到 http://eth-asia1.nanopool.org:8888/0xFfB6faEF01A41330425ae1795601f6D3F7c1d762。

[启动挖矿参数]

传的参数给自身进程,开始挖矿。其中参数-G指定使用GPU挖矿,参数-F指定矿场url。挖矿开始后会在用户目录下生成Ethash目录,其中的挖矿数据文件格式如下,单个文件大小超过1.5GB。同时造成用户电脑GPU占用率飙升,电脑发热增大等现象。

[Deploy64.dll生成的挖矿文件]

以上就是看看影音利用用户电脑运算资源进行挖矿的整个过程分析。由于看看影音本身属于正常软件,通常被各安全软件直接信任,从而导致这种恶意行为难以被发现。目前毒霸可以查杀该恶意行为。

[毒霸拦截查杀挖矿病毒]

[毒霸清理挖矿数据文件]

* 本文作者:渔村安全(企业帐号),转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf),作者:渔村安全

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-09-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 看我如何发现Google云平台漏洞并获得$7500赏金

    本文讲述了一名乌拉圭17岁高中生,因对信息安全感兴趣,通过学习研究,独立发现谷歌云平台漏洞并获得$7500美金(此前,他曾发现了价值$10000美金的谷歌主机头...

    FB客服
  • ct-exposer:通过搜索CT日志发现子域

    证书透明度(Certificate Transparency)是谷歌力推的一项拟在确保证书系统安全的透明审查技术。其目标是提供一个开放的审计和监控系统,可以让任...

    FB客服
  • 安全预警:ImageMagick图象处理软件远程代码执行漏洞(CVE-2016-3714)

    ImageMagick是一款广泛流行的图像处理软件,有无数的网站使用它来进行图像处理,但在本周二,ImageMagick披露出了一个严重的0day漏洞,此漏洞允...

    FB客服
  • Java企业微信开发_11_异常:java.net.UnknownHostException: qyapi.weixin.qq.com

    1、查看你的服务器能否ping通外网,不过不行说明你的网络出了问题.     (我的情况是客户的应用服务器只能内网访问,所以是网络出问题了)

    shirayner
  • 常见技术网站,收藏一下

    测试开发社区
  • Adobe PDFG Network Printer Installation failed

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang
  • 初识HtmlParser

    1、概念 网页解析,即程序自动分析网页内容、获取信息,从而进一步处理信息。 htmlparser包提供方便、简洁的处理html文件的方法,它将html页面中...

    汤高
  • 这一个年轻的小程序交流社区,你绝对值得加入

    知晓君
  • 纯代码实现给网站添加单曲播放和列表播放 网易云音乐

    进入本站首页或者本文章时相信你已经看到我的音乐播放器了吧,想不想在自己网站也按照上呢?这个功能其实很简单,经过全百科网搜集已经为朋友们整理好了特别精简的播放器代...

    于飞云计算
  • GeneCards数据库使用教程

    DoubleHelix

扫码关注云+社区

领取腾讯云代金券