查看: 24700|回复: 39
收起左侧

[技术原创] “Ethash挖矿病毒”来袭,源头竟是看看影音!(内附详细分析报告)

  [复制链接]
金山毒霸V11
发表于 2016-9-14 18:18:34 | 显示全部楼层 |阅读模式
本帖最后由 金山毒霸V11 于 2016-9-14 18:27 编辑

看看影音恶意挖矿行为详细分析报告
2016-09-13

    近日,部分用户出现电脑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;HTTP Analyzer;WinDBG;OllyDebug;fiddler;SmartSniff;\t\t\t\t\t\t\t\t Spy++;Spy;ATL/MFC;任务管理器;DebugView;Process Explorer;File Monitor;Registry Monitor;Wireshark;OllyICE;OllyDBG;Sysinternals" /bkprocesslist "fiddler.exe;windbg.exe;devenv.exe;taskmgr.exe;wireshark.exe;\t\t\t\t\t\t\t\t\t httpanalyzer.exe;smsniff.exe;filemon.exe;regmon.exe;procmon.exe;ollydbg.exe;softice.exe;cis.exe;\t\t\t\t\t\t\t\t\t tasklist.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%\Video Legend\RBC\Task目录下:

                                                                                             
%APP_DATA%\Video Legend\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加载



完整命令行如下:
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:88 ... 1795601f6D3F7c1d762

                                                                                                      
启动挖矿参数


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

                                                                                                  
Deploy64.dll生成的挖矿文件


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


金山毒霸拦截查杀挖矿病毒


毒霸清理挖矿数据文件

评分

参与人数 1经验 +100 分享 +1 魅力 +1 收起 理由
屁颠屁颠 + 100 + 1 + 1 16年年度奖励

查看全部评分

kfv11
发表于 2016-9-14 18:26:42 | 显示全部楼层
毒霸怎么没有提独家查杀,这点360比你们不知高到哪里去了。我差评!
skyboybone
发表于 2016-9-14 18:31:36 | 显示全部楼层
本帖最后由 skyboybone 于 2016-9-14 18:42 编辑

来,官人,帮我改个名
http://bbs.duba.net/forum.php?mo ... ;extra=#pid11296274

这是过中秋之前预热一下吗

官人,这个貌似被过了哇
http://bbs.kafan.cn/thread-2056678-1-1.html

官人,老实交代!都多少年没在卡饭公开露面了?
金山毒霸V11
 楼主| 发表于 2016-9-14 18:31:37 | 显示全部楼层
kfv11 发表于 2016-9-14 18:26
毒霸怎么没有提独家查杀,这点360比你们不知高到哪里去了。我差评!

闷声发大财、、、
vm001
发表于 2016-9-14 18:40:10 | 显示全部楼层
本帖最后由 vm001 于 2016-9-14 18:53 编辑

迅雷好牛逼

https://www.zhihu.com/question/49913393
skycai
发表于 2016-9-14 19:41:48 | 显示全部楼层
不错~
不过楼上得注意下,看看现在不是迅雷的软件了。
dsb2466
头像被屏蔽
发表于 2016-9-14 23:07:55 | 显示全部楼层
dsb2466
头像被屏蔽
发表于 2016-9-14 23:08:51 | 显示全部楼层
skyboybone 发表于 2016-9-14 18:31
来,官人,帮我改个名
http://bbs.duba.net/forum.php?mod=viewthread&tid=23381489&pid=11296274& ...

我很活跃啊~
cbdgv
发表于 2016-9-14 23:35:18 | 显示全部楼层
中招的路过
763125038
发表于 2016-9-16 11:37:31 | 显示全部楼层
可真流氓啊,如果楼主不说的话没有多少人知道
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-5-3 14:02 , Processed in 0.131077 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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