Client病毒详细技术分析报告

Client病毒感染七万用户 暗扣费并频繁弹广告

从2015年下半年开始,猎豹移动监测到一种名为 Client 的病毒木马感染了大量手机。通过进一步监测,猎豹移动安全实验室发现该病毒在近几个月呈现出爆发式增长态势,病毒样本量迅速增加,尤其是2016年1月,该病毒样本增长超过4万个。目前,仅猎豹监控到的样本量已经达到8万多个。

 

该病毒近期来迅速泛滥,目前在国内感染量已经超过7万(每日活跃设备量),并且呈现增长趋势。

 

该病毒感染范围遍布全国,受影响最严重的省份主要集中在沿海地区, 如山东,浙江,广东等省。

感染Client 病毒最多的手机系统版本为安卓4.4,占总感染量的70%以上,部分5.0系统也受到影响,但占比不到1%。

该病毒主要通过色情视频软件传播,诱惑用户下载安装。猎豹移动安全实验室监测发现,多家广告平台都对带有病毒的色情视频软件进行推广。


病毒的两大危害:暗扣费和频繁弹广告

通过对该病毒的一系列分析, 猎豹移动安全实验室发现该病毒会偷偷在后台发送短信为用户订购手机增值业务,并且会拦截扣费短信,导致用户根本无法发现自己的手机被扣费,给用户造成金钱损失。此外,Client病毒会在被感染的手机中大量加载恶意软件推广广告, 并强制用户安装,大量消耗用户流量,并且给用户带来更多危害更大的恶意应用。

 

更有甚者,Client病毒可以对用户手机进行root提权,卸载第三方root管理工具,然后向用户系统注入恶意软件,使得病毒将很难被清除。最可怕的是,该病毒可以通过技术手段将自己加入国内某手机安全软件的白名单,逃避查杀。

 

针对Client等类似恶性病毒,猎豹移动专门推出了针对各种顽固root病毒的专杀工具,可一键查杀该木马,感染该病毒的用户请下载查杀工具予以清除。下载链接:http://cn.cmcm.com/activity/push/cm/stk/1/

 

Client病毒恶意行为详解:

病毒后台订购手机增值业务,给用户造成一定的经济损失;模拟加载广告,使用户消耗大量的流量;以色情的方式弹窗诱导用户安装携带的恶意软件;对用户手机进行root提权,卸载第三方root管理工具,通过root权限后向用户系统注入恶意软件、向杀软数据库白名单插入恶意软件信息,绕过杀软查杀,将su文件释放到系统/system/bin/、/system/xbin/、/system/etc/目录伪装,释放覆盖系统install-recovery.sh开机脚本,通过chattr +i指令防止删除。

  1. 后台订购增值业务:

病毒下载并动态加载dex,从服务器获取扣费短信信息,后台发送短信,在用户位知情的情况下达到恶意扣费的目的。

从服务器获取dex下载地址(http://dg.ogengine.com/wmserver/WMUpdate)

dex下载地址http://oss.aliyuncs.com/wmapp/update/d_data_wimipay.dat

向指定号码发送短信

从服务器(http://paysdk.ogengine.com/wimipay/getPhoneUrl)获取短信服务器地址:

短信服务器地址:http://112.124.55.70:8018/init/moburl

获取本机手机号码(http://112.124.55.70:8018/init/mob):

开始恶意订购:

从指定服务器获取短信信息:

第一次访问:http://paysdk.ogengine.com/wimipay/Init(此服务器返回扣费服务器地址)

第二次访问:http://121.199.6.130:9093/control/Windows(此服务器返回扣费信息及扣费        短信服务器地址)

第三次访问:http://121.199.6.130:9093/control/Control(此服务器返回扣费短信信息)。

(如下图)病毒向10658008101825955 SP号码发送业务订购指令,可以直接    造成用户话费的损失,同时拦截相关短信。

扣费执行结果提交到服务器:http://121.199.6.130:9093/ldysNew/data2

  1. 诱骗用户安装恶意软件:

病毒以色情的方式诱导用户安装自身携带的恶意软件。

携带的恶意软件:

以色情的方式诱骗用户安装携带的恶意APK:

  1. 病毒后台加载广告,并模拟点击

病毒下载并加载dex。

从服务器(http://dg.dataface.cn/wmwkupdate/WMADUpdate)

获取dex下载地址(http://oss.aliyuncs.com/wm-ad/update/d_data_ogad.dat):

后台模拟操作:

从服务器获取广告服务器和操作指令,后台访问广告服务器,并进行模拟点击、后退等    操作。

  1. 对用户手机进行ROOT提权:

病毒运行后加载libMeggaRun.so文件,此文件释放加密的.dex文件到内存中。dex文件获取手机信息提交到服务器获取ROOT工具及ROOT提权方案,对手机进行ROOT提权操作。提权成功向用户系统注入恶意软件、向杀软数据库白名单插入恶意软件信息,绕过杀软查杀,释放覆盖系统install-recovery.sh开机脚本,通过chattr +i指令防止删除。

释放加载dex:

dex下载加密的root提权工具压缩包并根据不同的手机设备下载对应的ROOT提权方    案:

获取ROOT工具下载地址:

http://abcll0.us:9009/gamesdk/doroot.jsp

http://my2014.us:9009/gamesdk/advert.jsp

ROOT工具:

ROOT成功后会执行多个恶意脚本对手机系统造成严重的损害(如下分析):

病毒向手机系统中释放并执行恶意软件(如下图),使用户不能正常卸载。

病毒卸载第三方ROOT管理工具、替换开机脚本,而且为了避免系统空间不足,直接    删除用户的系统应用,对自身的ROOT管理工具进行伪装和防删除操作(如下图), 使    用户很难彻底删除病毒。

释放覆盖系统install-recovery.sh开机脚本,通过chattr +i指令防止删除

 

删除系统Maps、YouTube等应用,为病毒提供更多的系统空间。

 

  1. 病毒将自身信息加入国内某杀毒软件的白名单库,从而绕过杀毒软件的查杀(如下图)。


  1. 释放到手机系统的恶意软件:

这个病毒App的名字就是Client, 因为这个是在系统空间,所以用户在没有root的情况下是不能够直接卸载的,这个病毒主要的行为就是进行应用推广,直接静默安装应用到用户的手    机中,为病毒作者持续的提供收入。

病毒通过监听系统广播启动:    

GuardDatabase数据库结构:

猎豹移动安全实验室专注于分析不断涌现的新型移动端病毒,力图为用户提供更为可靠和快速的病毒查杀方案。为了更直接的面向用户,猎豹移动安全实验室专门成立了顽固木马专杀小组。如果您遇到任何无法清除的新病毒,请加入猎豹移动专杀反馈群:3383292337,我们将在第一时间帮您分析病毒,提供解决方案!


发表在 安全 | Client病毒详细技术分析报告已关闭评论

Ghost Push —— Monkey Test & Time Service病毒分析报告

2015年8月,酷派大神手机用户在安装官方提供的系统升级包后,手机便被预安装了MonkeyTest和TimeService等未知软件。截止到9月18日,该类病毒的每日感染量已经扩大到了最高70万台/天,有上万种机型收到了Ghost Push的影响,典型的有酷派、三星、MOTO等等(附件一提供了所有受影响机型列表)。

通过数据分析如图1所示,我们发现Ghost Push病毒感染用户主要分布于美国、俄罗斯、印度、中国等。相对在中国而言,云南、广东感染量最高。

图1 感染分布图

我们称这类病毒为Ghost Push病毒。该类病毒软件开机自动运行,通过用户数据流量进行广告推送,并且在未经过用户允许的情况下静默下载安装应用。甚至用户无法通过手机杀毒软件、手动卸载该类病毒。手机感染之后如图2所示。


图2 感染Ghost Push病毒的手机举例

Ghost Push病毒已经给安卓用户造成了巨大的困扰。本文就Ghost Push的执行流程进行详细的分析,同时也提出了针对这类病毒的解决方案及安全建议。

    Ghost Push病毒在执行的过程当中,会获取Root权限,通过用户数据流量进行广告推送、静默下载安装应用。具体的流程如图3所示。


图3 Ghost Push病毒执行流程

    首先,攻击者将恶意代码注入到合法的应用当中,通过二次打包,伪装成为原本的合法应用(被感染的应用列表如附件二所示)。一旦用户下载了被注入恶意代码的”正常”应用,应用中的恶意代码便开始执行,具体执行过程如下。

  1. 病毒释放安装流程分析
  1. 获取Root权限

    恶意代码首先向服务器http://api.aedxdrcb.com/ggview/rsddateindex发送手机的型号等配置信息。随后从服务器端获取Root工具包http://down.upgamecdn.com/onekeysdk/tr_new/rt_0915_130.apk。该Root工具包利用手机存在的漏洞,获取手机的Root权限。目前可以适配上万种机型,成功执行Root提权操作。

    本文列出了针对三星、MTK两家厂商的Root执行代码,如图4.a和图4.b所示。


图4.a 三星ROOT方案

图4.b MTK ROOT方案

    在获取了Root权限之后,恶意代码执行四类操作:1)替换debuggerd文件;2)修改install-recovery.sh文件;3)释放恶意bin文件;4)安装ROM病毒。

  1. 替换debuggerd文件

    病毒会将原系统的debuggerd文件另存为debuggerd-test文件,并将自己的恶意bin文件保存为系统的debuggerd文件,如图5所示。


图5 替换debuggerd文件

    1.3 修改install-recovery.sh文件

    病毒修改系统的install-recovery.sh文件,如图6所示。


图6 修改install-recovery.sh文件

  1. 释放恶意bin文件

    病毒将恶意bin文件的二进制代码固定内嵌在Java代码中,并在执行的过程中,向/system/xbin目录下释放。


图7 释放bin文件

    1.4 安装ROM病毒

    在恶意代码执行的过程中,会向系统目录/system/priv-app或/system/app中写入如camera_update应用的病毒母体,如图8所示。


图8 释放病毒母体

    由于获得了Root权限,恶意代码首先检查/system/priv-app目录下是否安装了camera_update病毒母体。该病毒母体会在bin文件的守护下,一直存在在手机的ROM中,防止被卸载,详见第二节分析。

    病毒母体在安装完毕后,会静默安装Time Service、Monkey Test等应用。这些应用会通过短连接方式从服务器(Monkey Test对应服务器:http://massla.hdyfhpoi.com/gkview/info/801; Time Service对应服务器:http://u.syllyq1n.com/mmslow/api/821。)获取应用信息,在未经过用户允许的情况下进行下载安装,如图9、图10所示。


图9 Monkey Test子包从服务器获取应用信息


图10 在用户未知的情况下在ROM内安装应用

二、病毒母体守护流程分析(图3中蓝色部分所示)

    2.1 bin文件守护ROM病毒母体

    在系统启动时,会执行install-recovery.sh与debuggerd文件。这两个文件会执行释放的恶意bin文件。bin文件会一直保持运行状态,守护释放在ROM中的病毒母体。并从服务器获取最新病毒安装包。


图11 获取最新病毒包

    当病毒母体被删除后,bin文件会自动再次下载并向ROM中安装病毒母体,如图12所示。


图12 病毒母体守护流程


图13 病毒母体安装流程

    2.2 bin文件防删除

    同时,在手机运行的过程中,通过图14所示的chattr +i操作,使得用户无法删除恶意bin文件。


图14 通过chattr +i操作防止用户删除bin文件

    2.3 apk防卸载

    Ghost Push病毒通过chattr + i操作使得用户无法卸载已经安装的apk应用,如图15所示


图15 通过chattr + i操作防止用户卸载apk

三、病毒恶意行为分析

    Ghost Push病毒安装的应用软件均具有数据流量广告推送、静默安装应用软件两种恶意行为。

    3.1 广告推送

    通过Ghost Push病毒安装、释放在用户手机上的应用,会通过手机数据流量向用户推送广告。具体流程如图16所示。当用户开启屏幕时,便会触发展示推送广告推送。


图16 开启屏幕触发广告推送

    值得注意的是,Ghost Push病毒在推送广告的过程中,会首先关掉用户手机的WiFi连接,通过用户的手机流量来获取需要推送的广告内容,如图15中红色方框内容所示。在用户不知情、未得到允许的情况下盗用了大量的数据流量。

    3.2 应用推送

    Ghost Push病毒母体释放的Time Service、Monkey Test子包还会向用户推送应用并安装,如图17所示。病毒从http://m.AEDXDRCB.COM/gcview/api/910获取需要推广的应用。


图17获取需要推广的应用

    返回的结果有不同的推广类型, 比如直接后台下载,快捷图标,弹通知栏等方式。如图18所示。


图18获取需要推广应用请求返回

    比如以下返回直接后台下载的推广应用。病毒会在在后台下载完成后自动安装,如图19所示。


图19 后台安装应用

    Ghost Push病毒中各种推广任务,会使用sqllite数据库作为中转,如图20所示。


图20 sqllite中转推广任务

    在实际我们测试中, 可以看到以下的推广数据,如图21-24所示。


图21 后台推送应用日志文件


图22 安装应用


图23 推送应用提醒用户安装


图24 推送安装应用列表(测试机已装)

    3.3无Root静默安装

    为了进一步地保证成功地安装下载应用,病毒还会诱导用户开启辅助功能,如图25所示。之后如图26所示的代码,病毒通过辅助功能,模拟用户点击操作来成功地安装应用。并且图26左侧文件列表也显示出其可以适配不同系统市场(GooglePlayer、Lenovo、MIUI等)的安装方式。



图25 开启辅助功能


图26 通过辅助功能静默安装

四、解决方案与安全建议

4.1 解决方案

    用户可以选择使用猎豹专杀工具https://play.google.com/store/apps/details?id=com.cleanmaster.security.stubborntrjkiller(即将更新上线)或手动删除病毒软件。手动删除方法如下:

  1. 使用刷机软件,一键获取ROOT权限。
  2. 下载安装busybox工具,http://www.busybox.net/
  3. 在电脑端,通过adb shell连接手机,使用su命令获取ROOT权限。
  4. ps | grep .base #获取.base文件的pid

    kill pid

  1. 删除恶意bin文件

    mount -o remount rw /system #不同系统命令可能不同

    chattr –ia /system/xbin/.ext.base

    chattr –ia /system/xbin/.bat.base

    chattr –ia /system/xbin/.zip.base

    chattr –ia /system/xbin/.word.base

    chattr –ia /system/xbin/.look.base

    chattr –ia /system/xbin/.like.base

    chattr –ia /system/xbin/.view.base

    chattr –ia /system/xbin/.must.base

    chattr –ia /system/xbin/.team.base

    chattr –ia /system/xbin/.type.base

    chattr –ia /system/xbin/.b

    chattr –ia /system/xbin/.sys.apk

    chattr –ia /system/xbin/.df

    chattr –ia /system/bin/daemonuis

    chattr –ia /system/bin/uis

    chattr –ia /system/bin/debuggerd

    chattr –ia /system/bin/nis

    chattr –ia /system/bin/daemonnis

    chattr –ia /system/bin/.daemon/nis

    chattr –ia /system/bin/uis

    chattr –ia /system/bin/.sr/nis

    chattr –ia /system/bin/mis

    chattr –ia /system/bin/daemonmis

    chattr –ia /system/bin/.daemon/mis

    chattr –ia /system/bin/.sc/mis

    rm /system/xbin/.ext.base

    rm /system/xbin/.bat.base

    rm /system/xbin/.zip.base

    rm /system/xbin/.word.base

    rm /system/xbin/.look.base

    rm /system/xbin/.like.base

    rm /system/xbin/.view.base

    rm /system/xbin/.must.base

    rm /system/xbin/.team.base

    rm /system/xbin/.type.base

    rm /system/xbin/.b

    rm /system/xbin/.sys.apk

    rm /system/xbin/.df

    rm /system/bin/daemonuis

    rm /system/bin/uis

    rm /system/bin/debuggerd

    rm /system/bin/nis

    rm /system/bin/daemonnis

    rm /system/bin/.daemon/nis

    rm /system/bin/uis

    rm /system/bin/.sr/nis

    rm /system/bin/mis

    rm /system/bin/daemonmis

    rm /system/bin/.daemon/mis

    rm /system/bin/.sc/mis

    cp /system/bin/debuggerd_test /system/bin/debuggerd

  2. 使用猎豹安全大师清除恶意软件,无法清除的软件使用以下命令清除。

    chattr –ia /system/priv-app/cameraupdate.apk

    chattr –ia /system/priv-app/com.android.wp.net.log.apk

    rm -rf /data/data/com.android.camera.update

    rm -rf /data/data/com.android.wp.net.log

    rm /systam/priv-app/cameraupdate.apk

    rm /systam/priv-app/com.android.wp.net.log.apk

  3. adb shell

    cp /system/etc/install-revcovery.sh /sdcard/

    adb pull /sdcard/install-revcovery.sh

    adb push install-revcovery.sh /sdcard/

    cp /sdcard/install-revcovery.sh /system/etc/

  4. 打开/system/etc/install-recovery.sh,将其中如下代码段注释或删除。

        /system/bin/daemonuis –auto-daemon &

        #!/system/bin/sh

    /system/xbin/.ext.base &

        #!/system/bin/sh

        /system/xbin/.ext.base &

4.2 安全建议

    建议用户从正规应用市场下载应用,谨慎下载安装附件二中的应用。同时,安装猎豹安全大师,验证下载应用的合法性,对手机进行实时的安全监控。

五、总结

    Ghost Push病毒通过广告SDK或浏览器广告进行大范围的传播,通过对病毒的跟踪分析,得知Ghost Push这类病毒软件伪装成合法的软件。用户一旦感染,恶意代码在开机时运行install-recovery,同时通过chattr + i命令防止用户通过杀毒软件建或手动卸载。恶意代码通过用户数据流量进行广告推送,并且在未经过用户允许的情况下静默下载安装应用,给众多安卓用户带来了不可避免的影响及危害。

    本文在对病毒执行流程进行分析之后,提供了用户手动清除病毒的方法。最后,我们在对病毒来源进行分析之后发现病毒软件的大部分签名为C=CN/O=xinyinhe/OU=ngsteam/CN=ngsteam,来自于一家名为xinyinhe的公司。本着刨根问题的原则,我们也在附件三中对这家xinyinhe公司进行了全面的调查。

    我们建议用户从正规渠道下载应用,并且安装猎豹安全大师,保证应用的合法性,实时维护用户的手机安全。

[附件一] 部分受感染机型列表





[附件二] 感染应用列表(39项)

WiFi Enhancer
TimeService
Indian Sexy Stories 2
Assistive Touch
Accurate Compass
All-star Fruit Slash
Happy Fishing
MonkeyTest
PinkyGirls
XVideo Codec Pack
Amazon/应用中心
Hubii News
itouch
Light Browser
XVideo
Memory Booster
WordLock
Fast Booster
Talking Tom 3
Photo Clean
Super Mario
SmartFolder
Simple Flashlight
Daily Racing
SettingService
boom pig
WhatsWifi
Hot Video
Lemon Browser
Multifunction Flashlight
小白点/Assistive Touch
Hot Girls
Sex Cademy
iVideo
Fruit Slots
Wifi Speeder
WiFi FTP
Ice Browser
PronClub

[附件三] 深圳市新银河技术有限公司

    直觉告诉我们,这家新银河技术有限公司和一键ROOT大师有着千丝万缕的联系。不要问我们直觉哪里来的~~

    那么到底这两家公司有没有关系呢?我们首先百度、谷歌了一下新银河的官网,结果显示这家公司没有官网。于是——

    我们上了拉钩招聘发现了该公司的链接。


    从招聘信息上我们得知http://www.ngemob.com 和 http://root.ngemob.com 都是深圳市新银河技术有限公司的网站。


    找到公司官网之后,真相逐渐浮出水面!!!现在的一键ROOT大师http://www.dashi.com/ 和 http://www.ngemob.com  使用过同一ip。



    并且,国外的论坛上也经常出现一键ROOT大师和http://root.ngemob.com扯不清的关系。


    此外,我们还搜集了一些佐证。

    佐证一:好搜百科。


    佐证二:某锁屏APP,由深圳市新银河技术有限公司开发。


    毕竟没有官网并没有给出任何明线表示两家公司的联系。我们也是推论猜测,没有任何结论,请各位看官自行判断。

    最后,希望大家一起努力,相信猎豹,会给亿万用户筑起安全防护墙!!!

发表在 安全 | Ghost Push —— Monkey Test & Time Service病毒分析报告已关闭评论

RCS病毒样本分析

 简介:

近日总部位于意大利的监控软件开发公司HackingTeam被黑,415GB文件被泄露,其监控软件源码和漏洞源码流出,对网络安全造成了巨大冲击。猎豹移动专门对HackingTeam开发的适用于安卓系统的监控软件RCS系统进行了分析,并对肯能出现的利用该系统源码的病毒针对性的展开查杀,目前已经拦截了数十个利用该技术的变种病毒,这些病毒在隐蔽性,危害性上都非常的强大,已经对用户的隐私,数据安全构成了非常严重的威胁。

利用RCS技术的病毒分析:

目前出现的病毒,很大程度上还只是在RCS系统源码上做了部分更改,有些变种已经开始采用一些较不常见的手段规避杀软的查杀,下面就以一个比较典型的病毒变种为例,来看看黑客们是怎么利用RCS技术攻击我们的。

目录结构:

目录结构

Librunner.so内容如下:

runnerida

runerfun

可以看出只定义了一个函数invokeRun,做了打印输出和utf的编码解码函数的调用.。。

使用的主要加密文件:

raw

Messages.bin文件使用AES对称加密,里面包含了一些敏感的可被作为特征的字符串和api关键字。文件内容是使用键值对的方式存储的,在使用的时候通过键值(如:13.0)取出对应的字符串(对应13.0的为Content://mms/sent),部分截图如下:下图中并不是文件原本的存储方式,文件中是使用“=”做的分割,这里为了让大家看清楚经过了作者的处理,其中key为键,value为值,。

massage

上图展示了masseges.bin文件的一部分内容,如想获取全部内容请自行解密文件

程序结构:

下图中列出了病毒样本的主要程序结构:

程序结构

AndroidManifest.xml文件结构:

应用权限对比:

权限对比

通过两图对比,可以看出病毒样本比RCS源码申请了更多的权限。

组件对比:

组件对比

从组件对比可以看出,RCS源码和病毒样本注册的广播接收器receiver和服务service名称完全相同,只是在监听的消息上存在微小差异。

 

病毒行为:

病毒逻辑

病毒逻辑主要分为两部分,一部分使用注册的广播监听器,监听特定的广播,手机如短信,来电等信息,将收集到的广播保存在特定的类中共其他类调用。另一部分通过名为core的主线程,进行手机状态(是否root,sd卡上是否存在相关目录并创建文件等)判断,获取硬件信息,用户位置,发送短信,链接远程服务器上传收集到的信息或更新病毒代码等。

广播监听器部分

病毒被安装后,会注册广播接收器监听手机广播(短信广播,来电广播,充电广播,屏幕解锁广播等),并通过服务获取用户的隐私信息,包括拦截短信,监听电话等。 这里以拦截短信为例进行说明:

注册的广播接收器,通过拦截android.provider.Telephony.SMS_RECEIVED系统广播,在用户收到短信时使用BroadcastMonitorSms类拦截到用户短信并通过abortBroadcast()阻断广播子继续传播。

短信拦截广播

被感染手机接收到的短信被拦截读取。 短信拦截

上图中x.a(“26.0”)返回字符串“pdus”,从而获取intent中额puds结构体重保存的短信息。x这个类中保存了,masseges.bin文件解密后得到的键值对,x.a()方法可以通过键(如“26.0”)获取到字符串(如“pdus”)

获取到拦截的短信内容(包括号码,内容,时间)后,保存在一个类中:

保存短信内容的类

将保存信息的类加入到列表中,这部分大量使用继承、多态等技术,使得通过这些服务收集到的信息可被其他类获取、保存并最终上传。

将保存信息的类加入列表

主要服务Core部分:

病毒在BroadcastMonitor广播接收器被触发后,通过发送action为com.android.service.app的intent,启动主要服务ServiceCore,

BroadcastReceiver

在ServiceCore中会首先解密保存的加密文件,并将文件内容以键值对的方式保存起来,方便后面取用。检查、安装并执行后门程序,启动主要线程CORE:

ServiceCore

解密massege.bin代码:在下图可以看到massege.bin文件,是使用秘钥为”0x5A3D00448D7A912B” 加密方式为:”AES/CBC/PKCS5Padding”的对称加密算法。程序在解密文件后,将文件中保存的关键字符串信息以键值对的形式保存在一个map中,以便在后面使用。

解密massagebin

 

在屏幕关闭后保持程序运行:在用户使用电源键关闭手机屏幕后,手机的cpu实际上保持着运行,也就是说病毒的程序仍然在执行,使得用户不知不觉仍然处在监控中:

关闭屏幕后监控

下面是启动的Core线程,在该线程中会检查手机的root状态,被感染状态,信息手机状态,并收集手机的各种基本信息,访问远程服务器,发送短信,控制进程的休眠启动等等,这里仅就信息收集部分做说明:进一步调用信息收集,上传的方法如下图,由于样本高度混淆,再加上使用了很多的继承和多态,多线程机制使得代码逻辑跟踪比较复杂,这里只描述一条逻辑,具体情况请以具体反编译代码为准。下面仅对几个关键类进行截图说明,其余跳转则不在此处赘述。

Core中流程

 

core中流程2

上图变量V5为类h的对象

core中流程3

图中的数字对应的就是病毒企图隐藏起来的字符串,经过替换后该语句如下:

this.d=”SID:”+V0_3.e+“, NID:” + v0_3.f+”” , BID:”+v0_3.g;

上图收集了用户的IMSI、IMEI,SID等硬件信息以及所在位置的经纬度信息等, 具体获取方法在U.f()中,截图如下:

core中流程4

病毒程序在获取上述信息后以短信的形式发送出去

core中流程5

总结

可以看出,由于HackingTeam事件发生没有多久,很多黑客就已经做出了反应,利用该事件暴露出来的工具和技术对用户进行攻击并且该类病毒对用户隐私威胁极大,属于高危间谍软件,尤其是使用了比较新颖的使用文件给关键字符串加密,在程序运行中解密文件,并以键值对的方式保存关键字符串,在相关位置使用键取值,从而躲避杀软的查杀,这说明黑客在利用网上暴露的公开的技术的同时更自己进行了改造、升级,以更加危险的形式出现。

建议用户安装杀软,在日益严峻的移动安全形势下与安全厂商携手保护好自己的权益。

发表在 安全 | RCS病毒样本分析已关闭评论

简单的对抗批量重打包的方法

图标:ic_launcher

应用名:呼死你电话短信轰炸

样本MD5:bfc753600e7591373a85634bae519f31

来源:日常样本分析

这个样本的主要功能是锁定手机屏幕,覆盖屏幕所有位置,包括返回、Home等按键,要求用户联系指定的QQ来获取解锁码来解锁手机:

Locker

 

此时的解决方法就是手机连接到电脑,用电脑上的手机辅助软件,如豌豆夹、应用宝之类的软件来卸载此病毒。

下面说下这个样本的两个特点:

一、顽皮

反编译

啦啦啦

 

分析中可以看出作者确实对对抗反编译有一些方法,并且这些方法会导致非最新版的jeb、dex2jar、apktool等工具无法得到关键代码,并且部分代码反编译错误,但是这些反编译软件的bug在最新的版本中都已经修复了这些问题。

上面两幅图是一个类中的代码,旧版反编译软件一般只能得到上面的代码,下面的代码要新版反编译软件才可以得到。

二、“两个”包名

遇见这种样本,一般我们会把手机连上电脑,用”adb uninstall PackageName”来卸载对应的样本,但发现无法卸载,分析后原因如下:

此样本用不同的反编译工具会得到不同的包名:

apktool – com.qqmagic

jeb – com.qq1031606149

实际上apktool得到的包名是假的,两个工具获取包名的方式不一样:

apktool:从apk中resources.arsc中获取包名,如下图:com.qqmagic

QQ截图20150518181811

 

jeb是从manifest.xml中获取的包名,这也是真正的包名

理论上无人为改动的话上面两个值应该是一致的。

三、简单的反重打包方法

改不了了吧

 

上图中“改不了吧,呵呵”看起来很奇怪,其实他说的是重打包。

平时分析样本的过程中会为了证明一些判断的正确性,或者改样本的一些功能需要用到apktool反编译apk,改后再重打包。

这个样本可以用最新的apktool得到所有的反编译代码,但重打包后安装会运行出错。

样本防止反编译的方法大多都是校验自身的签名是否被改变,但并未发现这些校验代码,分析发现问题如下:

QQ截图20150518175726

 

找不到com.qqmagic.MainActivity,想必大家已经明白了,是因为解包的时候apktool得到了错误的包名,回编译的时候把错误的包名编译到了Manifest.xml中,系统在取主Activity的时候找不到才出现了错误。

解决方式也很简单,把正确的包名添入就可以回编译了。

这种反回编译方法对于机器批量重打包会有效果,但对于人工分析效果不大。

该类样本现已可查杀。

 

 

发表在 安全 | 简单的对抗批量重打包的方法已关闭评论

some homescreen applications contain flaws when receiving SMS messages from unverified sources

    Recently, CM Security Research Lab has discovered that some homescreen applications contain flaws when receiving SMS messages from unverified sources. Messages from third party applications which have the permissions to edit text messages (android.permission.WRITE_SMS, original system under Android 4.4) can place messages directly into the local SMS database, which are then picked up by homescreen apps as new messages and an alert is sent to the end user. In some cases this setup can be exploited by malicious users to plant fake messages into the database that ordinarily would be caught and stopped by the default Android system, giving them an opportunity to steal information from or cause damage to ordinary users.

     As we know, when receiving fake messages which is directly written into the inbox, Android OS will not display an unread count number on the system SMS application.

      After analyzing these launcher apps, reports have found that the home screen application pushes SMS notifications by using ContentObserver, which monitors the status changes of the SMS database, reads data of unread messages, and counts the number of unread items, but fails to identify the message source. Owing to this deficiency, malicious SMS messages disguised by third party applications will also be counted as new messages.

ss5

       We do not suggest that developers completely replace the original SMS application. When receiving messages, the Android OS will launch a series of notification processes to identify the source of messages and then send a notification to users. This process occurs before the message is placed into the inbox, and does not only rely on status changes from within the SMS service database. This mechanism minimizes the possibility of fake texts being pushed through to the end user, so we recommend that home screen app developers study this process and use it as a base for improving the security of their apps.

发表在 安全 | some homescreen applications contain flaws when receiving SMS messages from unverified sources已关闭评论

应用市场部分launcher类应用短信消息提示漏洞分析

部分Launcher应用,未读短信提示漏洞分析

简介:

最近在分析样本的时候,发现部分launcher类 和notification类app的存在短信消息提示存在未验证短信来源,使得有写短信权限(android.permission.WRITE_SMS)的第三方应用写入数据库的短信会被在桌面明显标识为未读数字。这在某些情境下,有可能被利用来伪造短信,达成钓鱼或诈骗的目的,对用户造成危害。

原理:

我们知道,android 系统在收到正常的短信后,会在通知栏弹出通知框,根据用户的设置,震动或响铃提醒等,同时桌面短信图标指示未读短信数量加一,在这个过程中,我们注意到:

第一,通知栏弹出的通知时间很短,提示框不会一直存在,通知结束后要用户主动拉出通知栏才能看到。

需要注意的是,第三方应用写入的短信不会直接出现在通知栏,但是当系统收到一条正常短信后,系统会检查收件箱中未读短信的数量和内容,并提示给用户(部分定制rom多条未读信息则只提示未读消息数量),这个时候同样没有验证短信来源,会将第三方写入的短信认为是正常的未读短信进行提示。

截图1

第二,响铃,震动等情况取决于用户的设置,会存在不同的情况(如静音,只响铃,或只震动,或都有等),除非设置了一直提示,否则也不会一直通知用户。

最终能够在全部情况下提示用户短信未读信息的也只有短信图标上的未读消息数字提示。而取得写短信权限(android.permission.WRITE_SMS)的第三方应用直接向收件箱中写入的短信,却不会触发上述提醒用户的情况,只会在收件箱中突兀的多出一条未读短信。

部分launcher应用,完全覆盖了系统桌面,用户会在这些内容更加丰富、图标更加漂亮、功能更加实用的桌面上处理各种消息。这时候如果launcher不验证短信的来源,简单的从系统收件箱获取未读短信的数量并在桌面短信图标上做出未读信息的数字提醒的话,在一些场景下就会对用户做出误导。

launcher 提示未读信息截图:

2

QQ截图3

 

上图中写入短信后,右下角的未读信息图标直接就会有提示

部分Launcher应用实现短信未读消息提示的方法:

这些Launcher通常使用自己制作的桌面取代了系统桌面,在短信消息提醒模块,通常采用ContentObserver监控数据库状态变化,并查询数据库中的未读短信,获取到未读数量,下面是某个launcher应用的notification模块的部分实现代码:

截图5

截图6

 

当然,第三方应用在launcher桌面下向数据库写入短信,依然无法自行触发通知栏的弹窗提醒,和铃声,震动等提示而只是会在桌面短信图标的未读数字上加一,这在用户正在使用手机的时候会显得很突兀,危害并不大。但是在如下情境下:

会议后(开会的时候手机通常关机或设置静音),晚上睡觉(不关机的用户),驾车行驶,运动等各种用户不会完全留意手机界面和状态的时候(攻击者可以监控手机是否锁屏,可在手机锁屏的时候向收件箱写入构造的短信),用户随后使用手机的时候看到短信未读消息图标上的数字提示通常就会认为收到了一条正常的信息(只有极少用户会主动在通知栏中去确认),更糟糕的是如果这个过程中用户收到了一条正常短信,那么即使用户在通知栏中去确认,也将得到糟糕的结果,通知栏同样会将第三方写入的短信当作未读提示给用户,这时用户已经完全无法区分短信是否正常了,攻击者也就达到了目的。

以下是在android 4.4.2 的nexus虚拟机中系统通知栏下拉菜单内容的截图:

截图7

显然上图中的的这几个号码和内容是伪造的,但是却会被提示出来,再结合launcher应用的未读信息图标上的数字提示,结果……

解决方案:

对用户:

这个问题事实上重点在于第三方应用对短信数据库的可写操作,幸好谷歌在android 4.4系统及5.0上都已经限制了应用的短信操作权限,攻击者已经很难直接向收件箱写入短信。但是这个问题在android4.4 以下版本以及一些厂商的定制rom中依然存在。下面在源码中看看android 4.4和android4.3两个版本android系统对权限的控制:

  1. 在Android4.3中,Google加入了AppOps模块,用来对应用权限进行控制。在4.3版本中,每一项权限默认都是AppOpsManager.MODE_ALLOWED;

截图8

所以在Android4.3中,虽然添加了AppOps模块,但是对各项权限没有主动限制。

  1. 在Android4.4中,AppOps的代码进行了一些改动。

截图9

每项操作的默认权限由opToDefaultMode()决定。

截图10

在opToDefaultMode中使用了sOpDefaultMode数组来描述权限。

所以关键就是sOpDefaultMode数组的内容,决定了默认权限的设置。

sOpDefaultMode的内容如下:

截图11

图中红框部分表明,当操作是OP_WRITE_SMS时,结果是MODE_IGNORED,也就是说,当需要写短信的权限时,默认会失败。

通过上面的对比,相信大家可以看出android4,4及以上版本对短信写入权限的限制更加的严格,这可以在极大程度上降低手机受到本地短信伪造攻击的风险,因此强烈建议用户升级自己手机的操作系统版本到4.4以上,更糟的是在第三方应用可以写入短信的系统上(如4.3及以下版本),实际上系统短信提示本身也存在一定问题,比如,第三方应用写入的短信在收件箱中标识为未读,却不会被系统提示,但是如果随后收到了一条正常短信,那么第三方应用写入的伪造的短信跟系统收到的正常短信都会在通知栏被提示,并且在收件箱上提示未读短信数字,普通用户同样难以区分。

另外,请用户注意,一些定制的rom,以及部分安全软件会监控应用的权限,如果你的手机或安全软件提示你某个应用申请对短信数据库的写入权限,请千万慎重。

对launcher:

首先建议开发商尽量不要完全替代系统的短信箱,因为android的系统,是在短信写入收件箱之前,做出一些列通知动作,告知用户收到短信状态的,而不是仅仅通过短信数据库的状态变化来做通知,这样可以在当前条件下最大程度避免错误的未读短信消息提示。

在launcher中验证短信来源,这里想到的一种方案是:在短消息提示组件中限制在接收到系统的短信广播后再进行未读消息统计,未收到系统广播就不去做未读信息提示,在用户读取短信前,未读短信提示的条目数就是拦截到的短信系统广播数:

截图12

当然,这样做也会存在申请权限过高(有广播接收权限同时就具有了终止广播的权限,不明白谷歌为啥不分开),广播接收成功与否的问题等。

能力所限也就想到这么多了。

总结:

这不是一个多么高深的漏洞,这只是一个数字提示的小问题,只不过可能造成比较糟糕的结果。短信操作权限的控制已经在android 4.4以后得到解决,但是目前还有大量的早期版本仍在使用中,从系统角度彻底解决这个问题比较困难。但是我们毕竟不能把甄别短信真伪的责任完全推给用户,那样用户就太悲剧了!

发表在 安全 | 一条评论

游戏也会自动root手机?你要小心

图标:ic_launcher

应用名:糖果四溅

样本MD5:cec308aa0730e36e3cf2fff872b04ab8

来源:用户样本反馈

  • 前一段时间收到一位用户反馈的如上样本,本以为只是一个简单的游戏应用,但通过代码分析发现并非这样。
    • 样本在Nexus 5手机上安装打开,手机马上发烫,游戏加载时间非常长,点击游戏界面不久,手机死机,这里用到的rom为google原生ROM。
    • 简单的分析代码后发现代码已被插包,umeng为广告;ro为自动获取root的模块

Add_package

  • 重启后手机自带的Root模块已失效
  • 样本恶意功能解析:
  • java层代码ro包主要负责加载libtrjni.so来初始化root环境并试图自动root,root成功后会推送广告、推广应用、自动下载安装其它应用等:
  • 执行很多root权限命令,如更改系统App权限、重新挂载/system等

 

Istal

Etr

cmds

  • 有了root权限,将可为所欲为,做任何这个应用想做的事,下面看一下比较重要的root模块 – libtrjni.so

diag

 

  • Root模块也不复杂,用的是easyroot模块,主要是利用/dev/diag的内存溢出漏洞,该Root模块支持root的设备列表如下:
    • F-03D
      F-11D
      F-12C
      IS11N
      IS17SH
      ISW11K
      LT26ii
      LT26i
      SC-05D
      SCL21
      SO-05D
      URBANO PROGRESSO
      roamer2
  • 该类样本最近的一天感染量为420,其中中国感染量为398,下面为感染量最高的8个样本,如果您的手机装有相同的应该要特别注意。

Root_1消灭星星新春版,感染量206

Root_2糖果四溅,感染量45

Root_3消灭星星duang,感染量45

Root_4实况水果机,感染量43

Root_5美眉哪家强,感染量10

Root_6捕鱼好任性,感染量5

Root_7奔跑吧,小鸟,感染量2

Root_8教导女优,感染量2

  • 一般来自于网页、论坛的应用都不可信,所以尽量去官方网址、GooglePlay上下载应用更为安全,另外手机上访问网站自动下载的apk也不要轻易安装。
  • 该类病毒样本现已可查杀。
发表在 安全 | 游戏也会自动root手机?你要小心已关闭评论

一个隐藏图标的App

样本MD5:13692976a3765df697fbb37715f5220a

图标:icon

应用名:Settings IS

来源:AVAST热点,链接:http://blog.avast.com/2015/04/24/porn-clicker-app-slipped-into-google-play-imitating-popular-dubsmash-app/(目前已无法访问)

特点:google play样本(目前已下架),安装量100,000 – 500,000

由于Avast的文章已无法访问,下面简单描述下样本主要行为:

  • 云端可配制,开启获关闭App的主要功能,方式为访问解密后的url,如果返回的数据中有“1”则启动应用服务,否则不开启。

1

 

  • 软件主要功能由两个服务组成:MyService、Streaming
  • MyService:每分钟后台执行如下任务获取色情连接列表并访问,并从:JavaScript代码并自动运行,点出色情网站的中链接。

2

3

 

  • Streaming:每分钟执行任务如下:如果日期或者IP改变,解密URL,提到视频地址,在YouTube App中载入(如果安装了YouTube)

4

 

5

 

总结:

  • 病毒特点:
    • 1、伪装系统应用:System IS及图标。
    • 2、操作隐蔽:点击运行后图标消失,最常用的恶意行为都来自于后台操作(色情链接),用户无法感知。
    • 3、没有明显的危险权限及特别明显的恶意行为(除隐藏图标外)导致难于发现
  • 查杀情况:
    • 病毒引擎已识别出HideIcon的恶意行为,但这种隐藏图标的方式直接报毒,所以转为测试规则,后期引擎规则以此为鉴继续完善,目前该样本已报毒。

6

 

 

发表在 安全 | 标签为 | 一个隐藏图标的App已关闭评论

潜魔间谍程序分析报告

潜魔间谍程序分析报告

一款长期隐藏不被查杀的间谍软件的分析

概述

近日发现一款有意思的病毒,该病毒的最大特点是从2013年到现在一直没被杀软查杀(截稿时已有10家公司可以查杀)。

基本信息:

应用名:Proxy

大小:50.66 KB

样本MD5:d05d3f579295cd5018318072adf3b83d

签名信息:台北

1

恶意行为:搜集用户个人信息,上传远程服务器,典型的间谍行为。

特点:隐蔽,定时上传信息,并定时删除收集的信息文件。

代码分析

  • 病毒入口:

由于程序的主activity没有界面,所以程序入口只能是两个receiver:ProxyReceiver,SMSReceiver。

即当手机收到短信时、系统网络变化和设备休眠唤醒时。【注:由于用户没有用户界面,所以应该是有其他程序来启动这个应用,来保证它在3.1以后的系统可以进行启动。】

  • 主要行为

由receiver启动ProxyService(病毒的主要文件),该服务内包含病毒的主要恶意行为:

  1. AccountManager类获取用户手机内账号信息

account

账号信息指的是这个位置的,如果添加其他账户的信息,也会被泄露。:

zhanghu1 zhanghu2

 

  1. 窃取的短信记录和通话记录:

sms1

短信的收发内容、号码统统的收集。

sms2

  1. 记录用户的地理位置信息(在解析用户地址的时候有个繁体字“號”,结合前面签名信息,可以了解该病毒作者应该在台湾地区):

local

local2

将收集的隐私信息保存到ProxyLog.out文件内。

files

将获得隐私内容读取到list中。

tolist

  1. 后台联网将隐私 post出去,地址为:http://proxylog.dyndns.org/proxy/log.php

httppost

dyndns.org是一个动态域名提供商:

dyndns

总结

该病毒能够长时间隐藏不被发现和它的自身特点有关:

  • 病毒无桌面图标。
  • 伪装成Proxy的应用名和系统图标,让人不敢直接删除。
  • 行为仅为后台窃取信息,没有明显发作现象。
  • 和一般病毒使用公用签名不同,该病毒使用的签名看起来很是正规。
  • 病毒内仅有google的网址和org的网址,对于基于恶意URL库的自动检测来说是无法检测到恶意的。

 

另外作者使用动态域名使得就算发现手机存在外发连接也没有办法追踪作者。

发表在 安全 | 潜魔间谍程序分析报告已关闭评论

鬼手之刃

MD5: a8300e18aca3b40337c728c82b4d896b

病毒名:Android.Troj.SmsThief.cy

包名:com.kk.liushiwu.com.zz

病毒行为描述:该病毒安装后注册设备管理器防止卸载,安装后隐藏桌面图标。黑客通过短信指令,以短信形式将,手机通讯录,手机短信内容发送给指定的手机号,并且还能控制手机发送任意指定内容给指定号码(例如给运营商发送sp定制业务,向指定的亲朋好友发送诈骗短信)。

1.利用伪基站向周边用户发送短信,短信中包含钓鱼网站。

image002 2

2.点击现在就去兑换后,弹出出提示框要求填写收款信息,继续点击,要求用户输入银行卡号和密码等敏感信息。

3     image007

3.通过网络抓包发现:

用户输入的姓名,银行卡号,取款密码,身份证号,手机号等敏感信息会上传到http://jin-10086.com/submit.asp 服务器

image009

image011

4.将银行卡号,密码等信息上传服务器后,会提示用户下载客户端领取现金。

客户端

5.下载的恶意软件会启动恶意服务

下载

6.涉及敏感权限

image017image018

image020

7.注册设备管理器,防止卸载,安装成功后通过短信通知黑客软件已经运行。

image022

激活

8.在br服务的onstart方法中发送短信,通知黑客软件已经激活。

image026image028

9.pr和fr两个接收器分别用于监听短信和来电。

A)接收器pr监控短信。

image030image032

短信指令

短信指令 指令含义 危害
lxr 获取通讯录 隐私泄露
sydx 获取所有的短信内容(收发) 隐私泄露
xxxfsdyyyy 向xxx发送短信yyyy 可发送付费短信或向亲朋诈骗
zzzzpb# 屏蔽pb#之前的来电号码zzzz 向亲朋发送诈骗短信,并屏蔽亲朋的确认来电

image034

image036

删除包含指令的短信

image038

B)接收器fr监控来电。通过短信获取要屏蔽的号码

image040

image042

image043

image045

10.感染量

近一周的感染量平均每天在2000人左右。

11.诈骗流程图

image047

总结:骗子先利用伪基站,向用户发送钓鱼短信,诱骗用户登录钓鱼网站骗取银行卡号,密码,身份证,姓名,手机号等信息,并诱骗用户下载安装病毒应用,病毒会通过短信指令来上传用户的通讯录,短信内容信息,利用这些信息对联系人进行诈骗。在诈骗过程中会在中毒手机上屏蔽被骗人的电话,导致无法向中毒用户确认,以增加成功率。

猎豹安全实验室提醒广大用户,遇到此类短信时要仔细分辨是否为官方网站,不要轻易在网站上输入自己的银行卡密码,身份证等个人敏感信息,并及时下载猎豹清理大师或猎豹安全大师进行杀毒

发表在 安全 | 鬼手之刃已关闭评论