一、前言
想知道自己为啥话费总是不够用吗?
想知道自己手机为啥莫名的卡顿的吗?
想知道自己手机里面为啥总有那么些不请自来的APP天天见吗?
这一切的难言之隐的背后绝大多数都来自于 “小电影”的诱惑,近期腾讯反诈骗实验室及移动安全实验室的鉴黄师又发现了一波以心动、裸色等名义进行传播的恶意应用。这款由X影科技开发的虚假色x应用(不要失望,现在要找个良心的真?小电影是非常不容易的,需要丰富的阅历和技巧)仅仅只借这个名义来完成它的发财梦。根据腾讯反诈骗实验室/移动安全实验室/手机管家安全团队的分析,该科技有三个发财套路:
1、快捞一比(先赚一笔保底):本身通过色情内容诱导用户付费,快速捞取一波收入;
2、再推一把(推广费也是必须拿到手的):通过恶意安装推广一批应用来赚取响应的分层收入(比如给你弄个游戏恶意扣费应用,玩把手机分分钟被套路扣钱);
3、最后留一手(持续性牟利):通过ROOT用户手机将自营后门植入用户手机底层(通常具备防卸载功能,篡改系统文件的行为),如此病毒开发商就能持续的通过这个恶意后门给用户推广各种应用达到持续性牟利。
二、病毒简介
1、母包本身多包含恶意行为,如短信扣费、诱导扣费、恶意推广;
2、下载安装的子包申请设备管理器权限防卸载;
3 子包潜藏在系统后台,高频率推广安装各类应用(有大牌正规应用,也有众多急于发家的不良应用);
4 包含Root行为,成功后可静默安装推广应用;
5 检测安全软件并退出。
下面以该家族病毒中用户量较大的一个应用为主展开分析:
应用名:心动影院
包名:com.txy.wzd
证书MD5:96C81FBBA5E*******67E4F587CA9C4
主要推广流程:

主要加载流程:

近三十天影响趋势:

三、详细分析
2.1 动态行为及分析
启动之后发现检查更新,并且必须进行更新,抓包获取到了更新的地址为:
http://videoapk.ycd****.com/20170802/837c24b8-d9e0-4150-a1fd-5b59034c594d-ishow_v5.3.15_3e360e2_plugin_patch_full.apk

更新之后启动的界面如上图右所示,很明显的一个色播类病毒。
上方送流量点击后跳转至http://liliang.yc****.com/liuliang/index.html#/produce
通过抓包可以发现应用除了更新、上传信息、下载图片、获取扣费信息等“正常行为”外,还下载了几个可疑的文件:
http://apk.chao****.cn/e13e432513914cdf9aa75ddb3eaa7adb.apk
——包名为com.cime.kige
http://dws.enh.i-bigda***.net:8080/appstore/pri/5403ddd6ecda4977b0ac92526095b12a.apk
——包名为com.kert.porn
http://cdn0127.868***.com:8080/edt6_r.apk
——加密文件
接下来发现应用执行了这样的命令:
chmod 777 /data/data/com.txy.wzd/files/arte /data/data/com.txy.wzd/files/arte "0" "/storage/emulated/0/.0ff7ed298509a28/com.kert.porn/abc/com.kert.porn_r1.app" "1800" "com.txy.wzd" "com.kert.porn" "com.auu.aoc.action" "/storage/emulated/0/.fd.lk" "sy" "sy" "p3005" "0" "2" "4"
里面包含了一个包名com.kert.porn,也就是之前下载下来的apk。
命令执行的文件arte是个elf文件,使用IDA进行分析:


主函数处无数的局部变量,对应是打乱了顺序的字串,还原顺序之后就可以发现一些有趣的东西:
am startservice –-user %s -a %s
am start –user %s -a android.intent.action.INSTALL_PACKAGE -d file://%s
主函数:



com.kert.porn(无图标应用):

申请设备管理器权限及安装同类应用(com.moxy.held)。


应用以一个极高的频率(1分钟以内1次,1次5条消息两个应用安装)推广以及弹出安装界面,以及安装桌面图标,同时在运行其他应用时弹出底部弹窗,同时申请了设备管理器权限防止从手机端卸载和停止服务,并且在取消激活设备管理器处弹出恐吓类提示:

上面的各种操作里面中抓到的下载相关的包。
http://dws.enh.i-big****.net:8080/appstore/pri/1727d8d50a5a42dc9af5edd1325864da.apk
——熟悉的域名,和前面下载com.kert.porn的相同,包名com.moxy.held,应用名Sys safe
http://cdn0127.86***.com:8080/edt6_r.apk
——与之前相同
http://adsoz.syinxxxx.com/appstore/apk/7f23b78694f94347b76723e3cb6549a9.apk
——推广的应用
并且动态分析中也发现com.kert.porn执行了如下命令:
chmod 777 /data/data/com.kert.porn/files/part /data/data/com.kert.porn/files/part "0" "/storage/emulated/0/。86a0497029/com.moxy.held/abc/com.moxy.held_r1.app" "1800" "com.kert.porn" "com.moxy.held" "com.buu.boc.action" "/storage/emulated/0/.fd.lk" "default_hou" "default_hou" "p0000" "0" "1" "1500982411"
这与前文的命令结构参数相似。
于是可以有理由地猜测com.kert.porn与com.txy。wzd具有相似的功能,将part这个elf文件拿到IDA里面看了之后也发现与前面分析的arte功能完全相同。
最后动态把com.moxy.held跑起来,得到了与com.kert.porn同样的效果,包括下载的文件。
同时从流量角度也可以分析出广告推送和可疑文件下载的大致流程:

动态方面的分析到此结束,下面将会从静态展开更详细的分析,由于模拟器架构问题,其实导致不只一处的功能执行出现问题,这些遗憾将由静态分析来补全。
2.2 静态详细分析
静态分析主要关注以下两个个方面:
1、 子包的加载流程
2、 各个包的功能
2.2.1 子包加载流程分析
对apk解包之后的文件粗略浏览之后没有发现未加密可以直接加载的文件,那么多半是从服务器获取或者解密本地文件的了,本地文件里面有且仅有一个文件可疑度较高(如下图),同时动态分析中抓到的下载的edt6_r.apk也是一个疑似加密后的文件。

字串搜索可以直接搜索到stdata.db,同时定位到具体方法为com.st.m.u.o.b.

简单分析可以得到解密算法如下:


编写脚本将文件解密还原,得到一个apk文件,其包名为mf。ck,同时解包后可以发现其assert文件夹中的一个zip文件解压后正包含arte和liblive.so两个之前发现过的文件。
对子包进行进一步分析时发现了与母包相似的文件处理:


简单观察可以发现用于解密的字串为edt6g,于是猜测是

