导读:
最近”暗影实验室”在日常检测中发现了一款伪装插件Flash Player的间谍软件,该款软件不仅通过检测模拟器以防止沙箱对其进行分析,还通过检测安装在移动设备上的杀毒软件,并通过调用可访问性API拦截用户和移动设备之间的所有交互以防止自身被杀除。
运行后该应用通过隐藏图标,激活设备管理器来防止自身被卸载。
通过远程下发控制指令在后台执行一系列获取用户联系人、短信、文件、照片等信息的操作。
并通过给用户联系人发送短信的方式传播恶意软件。
应用在传播之前对传播对象的手机号码进行了匹配,由此可看出这是一场有特定群体攻击活动。
一、样本信息
样本MD5:
09B60AA78291E7EF8B0DDFC261AFB9F9
程序名称:
Flash Player
程序包名:
com.zvozlqawx.vbnwjvqkqza
安装图标:
二、运行流程
主程序通过动态函数调用加载恶意代码。
为了避免检测和分析,程序运行首先会检测自身运行环境,检测通过后,恶意代码被激活。
主控端通过远程下发指令,执行收集并上传用户联系人,短信,文件、照片等信息,拦截用户短信并删除短信数据库数据、通过短信向用户联系人传播恶意软件等操作。
三、技术原理
(1)自我防护
该恶意软件为了避免检测和分析,进行几处防护。
主恶意软件类被打包,主类别的处理程序并不存在原文件中。
以至于清单中定义的类只有一个主类别的处理程序。
如下图所示程序启动类并不存在原文件中,这也将导致应用程序因为找不到类而无法动态调式。
从而增加静态分析难度。
程序将主要的恶意代码打包,并通过动态函数
调用来动态加载恶意代码。
程序启动后,恶意软件的有效负载首先会检查模拟器,以防止沙箱对其进行分析。
它会检查不同种类的模拟器,包括QEMU、Genymotion、BlueStacks和Bignox。
如果恶意软件确定它不在模拟器上运行,它会执行额外的检查以确保自身不会被检测到。
监测用户的操作行为如界面点击事件,文本框聚焦事件。
对于每次交互,恶意软件将检查生成器是否是属于反病毒列表的包。
如果是该应用将会使用动作GLOBAL_ACTION_BACK调用全局函数performGlobalAction,它等于按下设备上的后退按钮,从而取消反病毒应用程序的打开。
(2)环境检测
该应用在执行恶意行为之前会检测是否开启设备管理器、
safetyNet服务
(google提供的检测设备运行环境的一个服务)是否被激活,该应用是否是默认短信应用程序并获取用户基本信息上传到服务器,这有助于控制端定义在移动设备检测到它之前,可以执行哪些操作。
获取用户设备详细信息。
获取地理位置信息。
获取用户账户信息。
http://***/api/v2/get.php。
(3)远程控制
检测完成之后,恶意软件就会被激活。
通过远程下发命令执行恶意操作。
远程服务器:
http://***/api/v2/set_state.php
通过远程控制,恶意软件会上传用户图片、文件、短信、联系人、管理员电话等信息,且它还通过联系人列表传播恶意软件。
以下是部分指令所对应的操作。
命令”sendSmsAb”,获取用户联系人列表信息,并给联系人发送短信。
在发送短信之前,对发送号码进行匹配。
由此可看出该恶意软件是有特定攻击群体或国家。
命令”uploadAllSms”,上传用户所有短信。
命令”uploadPhoneNumbers”,上传用户所有联系人信息。
(4)其它恶意行为
应用通过注册广播与服务。
还执行了开启移动wifi网络、激活设备管理器,注册本本身为系统默认短信应用程序等操作。
开启移动网络。
注册本身为短信默认短信应用程序,这样就能对短信数据库进行操作。
拦截用户短信并获取短信信息。
操作短信数据库,从短信箱中删除接收的短信,避免用户发现。
四、同源分析
通过同源分析我们发现了一批与该样本具有相同文件结构和恶意行为的恶意软件。
他们都是通过伪装正常软件的形式来骗取用户安装使用。