前言
近期,金山毒霸安全实验室通过“捕风”威胁感知系统监控,发现一个以“流量暗刷与劫持”为主要攻击目的的老牌僵尸家族,开始进入活跃期,根据其传播渠道和技术特征,我们将其命名为“驱魔”病毒家族。
一、概述
该家族早期被发现寄生于“花瓣壁纸”、“锁大师”等流氓软件中,我们在2017年曾率先对其进行披露打击,但是“百足之虫,死而不僵”,“驱魔”家族近两年频繁变换宿主外壳进行传播,母体包括“云压”、“水滴精灵”、“锁大师”、“蜻蜓日历”、"桌面助手"、"护眼精灵"、“可萌壁纸”、“萌压”、“极压”、“简压”、“大象笔记”、“博士WIFI”等二十余款流氓软件,甚至在2017年友商披露的“异鬼Bootkit”家族的核心云控模块(后期变种)中也发现过其传播身影。
“驱魔”病毒家族传播渠道多样,传播周期较长,从我们的监控数据分析看,其高峰时期全网感染用户预估累计超过500万,一直属于境内近年活跃僵尸网络中的佼佼者。早期变种利用系统服务、系统驱动劫持等方式实现常驻隐蔽,后续大多借助”流氓软件”外壳寄生实现注入系统进程,通过多层解密和内存加载释放和傀儡进程注入来躲避安全软件查杀,并且暗刷配置和暗刷插件都是云端配置,控制灵活、扩展性和兼容性好。从其最新变种分析中,已发现主页劫持插件和针对天猫、斗鱼、搜狗、虎扑APP、zaker、百度糯米、秒针广告、凹凸租车、hao123导航等站点的暗刷插件超过70+,支持劫持国内主流浏览器,并且可模拟PC、iOS和Android等多系统平台流量。
二、技术分析
“驱魔”病毒家族不同母体的加载利用过程大同小异,以其近期变种“可萌壁纸”为例,安装后会注册启动项、服务、计划任务3个自启动点开机运行;然后创建rundll32.exe调用KemonWpLaunch.dll的导出函数CheckFor(),CheckFor()新建计划任务,计划任务在开机时创建rundll32.exe调用KemonWpLaunch.dll的导出函数Logon(),Logon()调用后会解析res文件得到暗刷主控模块并内存加载执行,主控模块访问服务器获取暗刷配置,并根据配置下载对应的暗刷插件注入到傀儡进程进行刷量。
加载执行流程如下图所示:
KemonWpLaunch.dll
计划任务执行后,rundll32.exe调用KemonWpLaunch.dll的导出函数Logon()后会枚举目录%CSIDL_COMMON_APPDATA%\{4944B23C-A8C9-4e57-905E-4223B8F7EF57}\下的*.res文件,并解密出暗刷主控模块在内存加载执行。
res文件格式解析
res文件以CoCreateGuid()生成的guid命名,如31060f7a82f444059d10dc0fb1292fcb.res;解密时首先判断res文件第2个字节是否为0xD8,是则以文件名的第6个字符作为密钥,异或解密文件第4字节以后的全部内容。
res文件解密后格式如下图所示,从第4字节开始是一个大小为100的索引结构体数组:
索引结构体可定义如下:
typedef struct_FILE_INDEX {
BYTE Month; // 创建月份
BYTE Day; //创建日期
BYTE UnKnown1;
BYTE IsUsed; // 索引使用标记,1为已使用
BYTE UnKnown2[3];
BYTE FileID; // 文件ID
DWORD FileOffset; // 文件数据的偏移
DWORD FileSize; // 文件数据的大小
BYTE FileMd5[16]; // 文件数据的MD5
BYTE AesKey[16]; // 解密文件数据的AES密钥
} FILE_INDEX, *PFILE_INDEX;
解密res文件后,根据文件ID查找指定的索引项,根据索引里的偏移和大小读取数据,然后MD5校验,AES解密,LZMA解压得到暗刷主控模块,最后直接内存加载执行:
暗刷主控模块
主控模块加载执行后首先创建线程每1小时访问服务器report%d.boyougame.com获取一次暗刷配置;其中%d随机为1~5 ;然后解析协议,下载对应的暗刷插件注入到傀儡进程执行暗刷:
配置协议格式解析
数据包异或0x33加密;头部14个字节(明文:00 00 00 00 00 01 02 00 00 00 00 00 XX YY),XXYY 取值跟具体功能相关;后续数据根据功能确定;
首先发送请求获取暗刷配置:
发送数据包含机器码的base64编码,返回数据包含暗刷xml配置和暗刷插件ID,明文格式如下:
请求到XML配置后,第二次通信发送暗刷插件ID,获取插件下载配置:
发送插件ID,返回插件下载链接、文件MD5和AES密钥(AES密钥正好是加密前的文件MD5),明文格式如下:
然后下载暗刷插件:
下载的插件以MD5命名保存到C:\ProgramData\Microsoft\Windows\Templates,下次下载前先以MD5为文件名查找文件,找到则校验MD5后直接AES解密,找不到再重新下载:
插件下载后AES解密,注入到傀儡进程执行暗刷,然后发送统计数据包:
注入采用经典的傀儡进程注入法,并通过命名管道传递暗刷配置:
暗刷模块插件
通过批量查询配置接口,获得730个暗刷配置和54个暗刷插件;从配置来看,有针对bitauto、pptv、zaker、搜狐、360影视、优酷、爱奇艺、腾讯视频、2345影视、hao123影视、搜狗视频等站点的广告暗刷;从暗刷插件模块来看,有针对斗鱼、百度糯米、hao123导航、虎扑APP、miaozen广告、admaster广告、zaker、uc浏览器、auto租车APP、搜狗、天猫等站点或APP的暗刷,并可模拟iOS和Android移动平台流量特征:
暗刷配置:
暗刷插件:
由于插件数量众多,这里选取有代表性的进行分析:
1、天猫暗刷插件(WorkBr.dll.exe_yaazm.dat,ID=61)
该插件被注入到傀儡进程执行后会从资源文件进行多层释放和解压,最终加载“热键.dll”,并调用其导出函数CodeMain()执行刷量;在CodeMain()函数中先会判断IE版本是否为IE9及更高版本,然后hook 函数MessageBoxIndirectW,patch掉函数waveOutWrite、midiStreamOpen、DirectSoundCreate以保持暗刷时完全静默隐蔽,防止用户发现,最后创建线程开始刷量:
暗刷线程中首先访问hxxps://www.tcmdz.com/api/goods/v1/get.visits/获取配置,取得配置后再调用IE内核访问FullUrl进行暗刷:
2、浏览器扩展程序利用插件(shell.dll.exe_nnwiv.dat,ID=53)
这个插件会针对chrome内核浏览器安装扩展“口袋比价购物”,名字山寨了正版扩展程序“口袋比价购物工具条”,但是完全没有比价功能,唯一的功能就是劫持网址;
该扩展会在后台运行,从链接hxxps://www.tcmdz.com/api/goods/v1/get.goods.v2/?ua=下载json配置用于流量劫持;
扩展启用后,会在后台重定向匹配其规则的链接,带上其自己的推广标识,完成流量劫持;配置规则涵盖了淘宝、天猫、京东、2345、hao123、购物帮、携程、华为商城、苏宁易购、yx58等站点。
3、视频暗刷插件(FF_PC_WEBKIT_MIP.dll.exe_suvkv.dat,ID=30)
该插件主要暗刷各大视频站点的视频广告,如搜狐、360影视、优酷、爱奇艺、腾讯视频、2345影视、hao123影视、搜狗视频等,其配置规则数量占比高达78.5%;暗刷时首先访问hxxp://downloads.boyougame.com/newbnk_forxv.rar下载视频播放相关模块,解包后子文件如下:
然后加载WebKit.dll并调用其导出函数xxxbbbfffccc开始执行暗刷;
暗刷过程中还会检测系统中安装的浏览器来生成对应的USER-AGENT,模拟真实用户行为;
4、移动平台暗刷插件(mb_ucbrower.dll.exe_wuthd.dat,ID=29)
该插件会模拟Android和IOS平台流量特征暗刷UC浏览器移动端上的广告;
5、浏览器主页劫持插件
该插件会检测QQ、360、猎豹、2345、搜狗、UC、IE等浏览器,检测到后会篡改浏览器主页配置为https://hao.360.cn/?src=lm&ls=n*****a;对搜狗浏览器还会篡改搜索URL为https://www.sogou.com/sogou?query={searchTerms}&pid=sogou-site-a*********20;
附录IOC
URL:
hxxp://downloads.boyougame.com/douyu_cookie.exe_ufulx.dat
hxxp://downloads.boyougame.com/FF_PC_WEBKIT_FLASH.dll.exe_izhfx.dat
hxxp://downloads.boyougame.com/IP_PV_FLASH_CK_NEW.exe_ytpon.dat
hxxp://downloads.boyougame.com/JK_admaster_yc.dll.exe_lxxdd.dat
hxxp://downloads.boyougame.com/JK_YF008.dll.exe_ozbmv.dat
hxxp://downloads.boyougame.com/JK_YF008_IDFA.dll.exe_sfdiy.dat
hxxp://downloads.boyougame.com/JK_YF008_WB.dll.exe_zmijd.dat
hxxp://downloads.boyougame.com/JK_YF008_WX.dll.exe_slppv.dat
hxxp://downloads.boyougame.com/mb_taobaojk.dll.exe_vqiub.dat
hxxp://downloads.boyougame.com/mb_ucbrower.dll.exe_wuthd.dat
hxxp://downloads.boyougame.com/shell.dll.exe_krriw.dat
hxxp://downloads.boyougame.com/standard.dll.exe_himdi.dat
hxxp://downloads.boyougame.com/standardex.dll.exe_ptint.dat
hxxp://downloads.boyougame.com/WorkBr.dll.exe_xrkti.dat
hxxp://downloads.boyougame.com/WorkBr.dll.exe_zrrfw.dat
hxxp://downloads.boyougame.com/WorkBr.dll.exe_zrskk.dat
hxxp://downloads.junleyanyi.com/aomi_api.dll.exe_zqpja.dat
hxxp://downloads.junleyanyi.com/app_aotu_slifl.dat
hxxp://downloads.junleyanyi.com/browserReport.exe_egttu.dat
hxxp://downloads.junleyanyi.com/douyu_cookie.exe_ssezs.dat
hxxp://downloads.junleyanyi.com/dsp_oad.dll.exe_logpj.dat
hxxp://downloads.junleyanyi.com/fav_work.dll.exe_rrwqx.dat
hxxp://downloads.junleyanyi.com/FF_MVP_baidunuomi.exe_rjcfl.dat
hxxp://downloads.junleyanyi.com/FF_MVP_CC.dll.exe_lfqht.dat
hxxp://downloads.junleyanyi.com/FF_MVP_IPAD.dll.exe_kadvy.dat
hxxp://downloads.junleyanyi.com/FF_MVP_LW.dll.exe_epvdz.dat
hxxp://downloads.junleyanyi.com/FF_PC_WEBKIT_ALL.dll.exe_icduy.dat
hxxp://downloads.junleyanyi.com/FF_PC_WEBKIT_MIP.dll.exe_suvkv.dat
hxxp://downloads.junleyanyi.com/FF_PC_WEBKIT_PZYC.dll.exe_vnxyi.dat
hxxp://downloads.junleyanyi.com/hao123_UV.dll.exe_kwgcn.dat
hxxp://downloads.junleyanyi.com/IP_PV_FLASH_CK_NEW_MB.exe_rbzik.dat
hxxp://downloads.junleyanyi.com/JK_hupuApp.dll.exe_lzfrx.dat
hxxp://downloads.junleyanyi.com/JK_miaozhen.dll.exe_zlpqi.dat
hxxp://downloads.junleyanyi.com/JK_YF008.dll.exe_znand.dat
hxxp://downloads.junleyanyi.com/mb_bgstat_zaker.dll.exe_azcmn.dat
hxxp://downloads.junleyanyi.com/mb_bgstat_zaker.dll.exe_zsyhx.dat
hxxp://downloads.junleyanyi.com/mb_dcmp.dll.exe_fzlcm.dat
hxxp://downloads.junleyanyi.com/PC_WEBKIT.dll.exe_vqsvo.dat
hxxp://downloads.junleyanyi.com/PC_WEBKIT.exe_rjiia.dat
hxxp://downloads.junleyanyi.com/ProductRegRead.dll.exe_monwr.dat
hxxp://downloads.junleyanyi.com/ProductRegSetBr.dll.exe_xhwou.dat
hxxp://downloads.junleyanyi.com/QDSDK_Install.exe_zqgqb.dat
hxxp://downloads.junleyanyi.com/QDSDK_Install_sz.exe_odbne.dat
hxxp://downloads.junleyanyi.com/shell.dll.exe_eqbup.dat
hxxp://downloads.junleyanyi.com/shell.dll.exe_nnwiv.dat
hxxp://downloads.junleyanyi.com/shell.dll.exe_ozqnl.dat
hxxp://downloads.junleyanyi.com/shell.dll.exe_pjggq.dat
hxxp://downloads.junleyanyi.com/wap_sogou.exe_gdheq.dat
hxxp://downloads.junleyanyi.com/WorkBr.dll.exe_xshtc.dat
hxxp://downloads.junleyanyi.com/WorkBr.dll.exe_yaazm.dat
hxxp://downloads.junleyanyi.com/zaker_new.dll.exe_fhlvh.dat
hxxp://downloads.junleyanyi.com/WorkBr.dll.exe_zqgfv.dat
hxxp://downloads.junleyanyi.com/sg_mstrail_recur_dopzk.dat
hxxp://downloads.junleyanyi.com/FF_VIDEO_SH.dll.exe_bsrhf.dat
hxxps://www.tcmdz.com/api/goods/v1/get.visits/
hxxps://www.tcmdz.com/api/goods/v1/get.goods.v2/?ua=
hxxps://www.tcmdz.com/api/goods/v1/get.cnzz/?href=
hxxp://downloads.junleyanyi.com/newbnk_forxv.rar
hxxp://downloads.boyougame.com/newbnk_forxv.rar
hxxp://downloads.xunjietu.com.cn/newbnk_forxv.rar
hxxp://downloads.zhaopeiyu.com/temp_hpkvj.7z
hxxp://downloads.zhaopeiyu.com/NPSWF32_rtxfb.7z
hxxp://downloads.zhaopeiyu.com/webktest_170509_bzsrq.rar
MD5:
8D371C81EEB27360CCF792579FF1006F
620717F7FE9418F8A9E3203867D6F39A
EEB2F05308B130B9EF8B777BF6332EEE
EB874E6D21E7BA7D6EF000AF9B79AF3A
8C4A2320411CA702C21AA1A053A8078B
8736D9AEBF05DBAB10DE2BA905E036F3
数字签名:
合肥臻璞网络科技有限公司
深圳市史宾赛科技有限公司
深圳市盛豪霆科技有限公司
深圳市云舒三黑科技有限公司
北京博奥路通科技有限公司
北京众耀科技有限公司
深圳市博游天下科技有限公司
广西同城网络科技有限责任公司
*本文作者:安全豹,转载请注明来自FreeBuf.COM