秘密花园
当我们拿到样本的时候查看内部的代码结构,可以判定这里面被里面插入广告sdk和几个莫名其妙的so以及一些加密的文件,当然我们首先就是需要了解每个文件都是用来干嘛,哪些代码块是恶意插入需要我们重点分析的,还有apk内携带的so文件以及其他文件是用来做什么的都是需要我们能结合apk本身一步步动静结合的去分析。
样本的主要行为,通过我们沙箱日志分析发现,样本主要是通过PopupWindows弹框广告,释放自身携带的加密so,获取系统root权限,检测模拟器,此病毒入侵手机后破坏性极强,不仅删除各种Root工具底层模块,还禁用安全软件,导致手机应用异常崩溃。甚至在获取到Root权限后卸载各种安全软件,以至于其他Root工具很难再得到权限,彻底清除病毒变得十分麻烦。
其中恶意代码结构如下:
eu:被加密的java文件,广告加载代码和弹框关键代码部分;
sk:模拟器检测文件;
frsbr:加密的so文件,也是主要的恶意elf模块
母包中被插入的恶意代码模块:
、
其中母包中恶意代码块需要用到的注册清单如下:
在这份清单中我们可以清楚的看到给类服务广播的启动方式,以及注册的activity和广告商,通过清单中的这些入口我们就可以按图索骥进一步深入了解病毒的具体行为属性。
主程序入口:
com.swifty.fillcolor.controller.main.MainActivity
MainActivity启动入口
、
下面我先从java代码部分进行下一步,由启动入口可知SdkInitialize是个突破口。
通过分析.class public Lcom/kjiklzskyc/cn/SdkInitialize;这部分代码可以看出这里是定义恶意程序需要调用到的一些属性和方法。
这里面所有调用的路径方法名等都是被加密了
以上的代码的主要作用主要是定义一些请求的方法参数、用安装的apk信息、推广下载的apk渠道信息、监控用户的安装动作。
这段代码模块中启动了一个重要的service
ExitService.
我们以这几个service为突破口,看下他在清单中注册情况
从清单中我们可以找到PopouWindowActivity下面注册的四个重要service
SuspensionWindow、FloatWindowService、ExitService、ExternalService
从清单中我们还能发现一个重要的广播MyReceiver,静态注册了这个广播的四种启动方式
android.intent.action.PACKAGE_ADDED
android.intent.action.BOOT_COMPLETED
android.net.conn.CONNECTIVITY_CHANGE
android.intent.action.USER_PRESENT
当MyReceiver检测到有新的安装包的时候立即启动广播,一旦安装完成,立马启动推广下载的apk,主要为了为了实现推广应用的安装启动,模拟用户,从而达到获取非法利益。
启动相关的Service:
利用SystemClock每隔1s启动一次ExternalService从而实现在PopupWindowActivity间隔一次的弹框广告:
利用PopouWindow实现广告弹框:
通过四种不同的静态注册,从而启动恶意广告的广播服务实现在PopouWindow推广广告的展示。
android.intent.action.SCREEN_ON
android.intent.action.SCREEN_OFF
android.intent.action.USER_PRESENT
android.net.conn.CONNECTIVITY_CHANGE
其中这些恶意代码注册的关键模块在正常的java代码部分是发现不的,这里我通过调试发现这些主要的恶意行为都在加密的eu文件当中。
通过抓包分析可以发现这里访问的关键网址链接。
部分如下:
从其访问的链接可以分析这里面有三家广告厂商:
移触科技
腾讯广点通
百度网盟
下面我们来重点分析下腾讯广点通和百度网盟。
腾讯广点通:
http://mi.gdt.qq.com/gdt_mview.fcg?posw=600&posh=500&count=3&r=0.7759157740131813&encext=IyIW6l6t9ISKB_ey8p7f2HOVkP-4j_O3F5mlZ45CKqk&datatype=2&encver=1&posid=8090310972044653&adposcount=1&ext={"req":{"scs":"000110b3795a","conn":1,"muidtype":1,"c_market":"2","ast":{"de":"hammerhead","is_d":false,"hw":"hammerhead","br":"google","sr":"030801dd09351460","pr":"hammerhead","fp":"google\/hammerhead\/hammerhead:4.4.2\/KOT49H\/937116:user\/release-keys"},"lng":1000000,"c_w":360,"c_device":"Nexus 5","c_osver":"4.4.2","shs":true,"tmpallpt":true,"carrier":0,"c_pkgname":"com.mimi.tuse","c_os":"android","c_h":592,"lat":1000000,"jsver":"4.1.000","inline_full_screen":1,"c_devicetype":1,"m6":"5f27dde10bfa8adadfd122521b0a01ef","sdkver":"4.8","m1":"cc7cd2d6ed45226265a21a053645cee9","m2":"35b9ab5a36f3234dd26db357fd4a0dc1","m3":"5ca1613620802f678454a7a25da03a30","c_hl":"zh","muid":"cc7cd2d6ed45226265a21a053645cee9","filterappname":[],"c_mf":"LGE","location_accuracy":0,"postype":2,"dcs":1,"c_sdfree":12505939968,"deep_link_version":1,"gdtid":"cc7cd2d6ed45226265a21a053645cee9_1490758026549","c_ori":0}}
上面网址解析内容如下:
解析json,然后通过popouwindow展示推广的商品信息
百度网盟:
首先会判断户机型等信息访问URL下载广告sdk文件然后调用广告sdk推广apk文件。
百度网盟广告流程图
通过加载百度网盟广告sdk我们推广应用的信息,一旦我们点击就会下载到路径bddownload下面去,同时会母包会模拟用户点击使用,一旦我们点击安装,这些应用就会在安装完成后自动打开运行。
推广下载的部分携毒apk如下:
清理大师
8f792985d6aa8748361ec7bb25e3cc7b
Android
bc4ba2faff9cd50aa628399dcb26e247
securty
9afb96cf1ff6249ea397097ed6bdcd8e
云朵护眼
f344ad04464a902c4a2bd15ea2aa8b2f
手机极速清理
e64f08de45226e1a8203a9cf1ca27e85
获取下载未安装的文件信息通过伪造系统更新、或者系统已安装的某些安装软件更新诱导用户点击安装。
整合上面所有信息我可以描绘出母包行为流程图如下:
母包行为流程图
以上主要是母包java代码部分的行为,下面我们来了解下母包携带的加密so文件,在释放过程中会给我们造成哪些危害行为。
So的释放:
获取解密的key值:
解密后的so结构如下:
具体分析释放的恶意elf行为流程:
恶意elf具有极强的系统破坏力,且难以清除,且自身还会下载安装病毒子包,病毒子包同样会推荐下载其他病毒程序,这种恶意嵌套推广危害力巨大。
ELF行为流程图
此类样本的主要行为:
样本启动后会向系统目录下面释放一个被加密的ELF文件,母包会联网下载广告图片,推送弹框广告; 母包检测已经下载安装的APK信息,伪造系统或者安全软件更新诱导用户安装; 推广的应用下载安装完成后就会自启动,从而达到模拟用户点击使用获取推广利益; SK文件检测模拟器和虚拟机环境,干扰沙箱检测; 释放的ELF文件会获取系统权限,破坏卸载其他root工具的正常使用,导致恶意的ELF文件无法被删除; ELF文件同时会从远端获取指令,静默下载安装其他其他恶意子包,且安装的系统目录下面导致无法卸载; 恶意子包进一步获取从远端获取指令静默下载安装其他恶意子包;恶意子包的行为静默安装卸载,获取用户安装的文件信息并上传到远端服务器。