吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10304|回复: 18
收起左侧

[移动样本分析] 伪装安卓中国移动手机支付控件之隐私扣费木马 12月样本

  [复制链接]
qtfreet00 发表于 2015-12-9 10:28
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 世事繁华皆成空 于 2015-12-9 13:32 编辑

软件名:和包支付控件
包名:org.apatch.util
是否加壳:无
MD5: 6BBD8C2ACB0EF3FCBFF18D46AC413567
SHA1: 29BBD85019FF3FDE2F8172FAD11AD9F9DC6D23EF

样本地址:
一款apk木马,上传火眼无分析结果,求大神看看,火眼已尿!
http://www.52pojie.cn/thread-443775-1-1.html
(出处: 吾爱破解论坛)

拿到APK后,我的QQ管家就直接报毒了{:1_931:},加入白名单后进行分析,考虑到代码的可读性和跟踪,建议大家分析的时候同时开jeb和jadx两款分析工具,jadx代码可读性高,jeb跟踪能力和重命名能力强。

0x0  木马初始化

QQ截图20151209101213.png
该木马只有一个活动类,其本身并无任何作用,就是一个初始化操作而已,第一个if判断我们跟进
QQ截图20151209101334.png

遍历系统进程寻找是否有ControlService这个服务,后面的e

QQ截图20151209101420.png

就是获取该服务的类名,如果不存在则返回false,反之为true

回到主类下,不存在则进入if判断语句,首先启动服务,接着执行try下的d.a().e方法,跟进

QQ截图20151209101641.png

在方法中又实例化了其它方法,继续跟进a类中的a方法,

QQ截图20151209101756.png

这里直接把QQ邮箱和密码给炸出来了,不过经笔者测试了下,密码不对,先不管,接着我们跟进下g类中的e方法,看看他究竟想获取什么信息发送到他的邮箱

QQ截图20151209102053.png

很明显获取手机号,系统定制商,运营商三个信息,接着会在b方法中进行一些发送邮件相关的初始化设置

QQ截图20151209102434.png
设置完成后便会开启一个线程去执行发送邮件的操作

回到主类下

QQ截图20151209102522.png

接着会执行下面的方法,首先获取系统服务device_policy,看到这个就要想到设备管理器了,接下来实例化了一个component属性,对应的类为DeviceReceiver
继续往下,又是一个if判断,判断a属性是否isAdminActive,我们看下a是什么类型的变量

QQ截图20151209105756.png

系统默认情况下,是不会开启设备管理器的,所以返回为false,进入if判断内的方法语句,调用a方法,并将之前的component传入

QQ截图20151209105927.png

接着提示用户激活设备管理器和DeviceReceiver类,这里虽然使用的startActivityForResult来启动intent,但并未写onActivityResult来响应这个操作,所以当用户在取消激活的情况下,程序每次启动都会执行一次,一般激活管理器的作用就是加大程序被卸载的难度,借助一些手法也可以轻松的卸载。


0x2 分析ControlService服务

分析过mainifest文件后,除了设置了较高的优先级,并未发现此服务的其它敏感信息,那就直接分析代码,启动服务后,会执行服务中的构造方法,onCreate方法,onStartCommand方法和onStart方法,我们逐一分析

QQ截图20151209110821.png
一般构造方法就是给变量初始化,我们看下这些变量的类型

QQ截图20151209110916.png

两个handler ,一个定时器g和一个启动定时器的b,暂未分析的d方法,一个布尔类型值和一个string字符串

QQ截图20151209111410.png

观察后发现onCreate和onStart方法未执行任何操作,直接分析onStartCommand方法

第一句直接注册了内容观察者,对应的uri为短信,即当短信发生变动后(收发信息),都会触发此方法,借用iteye上@
emowuyi
的介绍

注册/取消注册ContentObserver方法,抽象类ContentResolver类中的方法原型如下:
public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)
功能:为指定的Uri注册一个ContentObserver派生类实例,当给定的Uri发生改变时,回调该实例对象去处理。
参数:uri 需要观察的Uri(需要在UriMatcher里注册,否则该Uri也没有意义了)
notifyForDescendents 为false 表示精确匹配,即只匹配该Uri
为true 表示可以同时匹配其派生的Uri,举例如下:
假设UriMatcher 里注册的Uri共有一下类型:
1 、content://com.qin.cb/student (学生)
2 、content://com.qin.cb/student/#
3、 content://com.qin.cb/student/schoolchild(小学生,派生的Uri)
假设我们当前需要观察的Uri为content://com.qin.cb/student,如果发生数据变化的Uri为
content://com.qin.cb/student/schoolchild ,当notifyForDescendents为 false,那么该ContentObserver会监听不到,
但是当notifyForDescendents 为ture,能捕捉该Uri的数据库变化。
observer ContentObserver的派生类实例

那第三个参数就是处理短信变化的类,跟进,

QQ截图20151209112153.png

复写onChange方法,监听收件箱的短信变化,当接收到短信后,便解析其中的号码,人物,内容,时间等等,并赋值给h类中

QQ截图20151209112500.png

QQ截图20151209112525.png

最后发送消息给对应的hanlder,这里的handler即我们实例化f类时传进来的d,回到服务下

QQ截图20151209112934.png

判断当前系统版本,如果高于或等于4.4,则会开启一个定时器任务,延迟10s,周期5s,接着调用b方法

QQ截图20151209114411.png

在方法中我们看到了疑似作者手机号的东西,v0则会之前的



接着将v0传入org.apatch.google.util.b.a(v0)方法中,跟进一下

QQ截图20151209114617.png

这里对数据进行了md5加密,话说这里md5后他就算收到了难道还能解密?

接着判断v2是否为空,v1是否等于v2,这里还没研究好,暂时跳过,如果一个条件成立,则进入判断语句,依然开启一个定时器

QQ截图20151209115128.png

并调用a方法,跟进a方法

QQ截图20151209115154.png

一个发送短信的操作,留意下a方法的参数,最后两个参数为广播,估计在发送短信后会给程序做一些提示,我们稍后分析

在传参的时候传入了org.apatch.google.msgcontrol.e(this, arg7,v1)广播,和一个空广播,跟进e方法,


QQ截图20151209115646.png

当接收到广播后,判断是否为-1,等于后则实例化a方法,跟进后发现就是个sharedpreferences方法

QQ截图20151209124120.png

写入的内容是c属性,看下c属性的值,跟踪后发现就是加密后的v1值
回溯到之前说的handler,我们看下这个d到底做了什么

QQ截图20151209124802.png

这里实例化了c类,看下c类做了哪些操作

QQ截图20151209124843.png

这里接收到了之前的信息,也就是



判断是否为空,如果不为空,则实例化a方法,首先把v0对象强转为之前的属性,即上图,以及ControlService对象

跟进a方法

QQ截图20151209125145.png

首先判断号码是否为作者号码,如果是,则跳过判断,实则就是忽略作者的信息,接着依然是写入一些信息到本地

有一部分信息很乱,就不逐一分析了,直接贴图看看这个程序还会做写什么操作

QQ截图20151209130011.png

程序还会获取短信,联系人,通话记录等隐私信息,

QQ截图20151209130159.png

观察此方法,判断当前默认短信应用是否为该木马,如果不是,则启动ComposeAbsActivity类,并添加flags,查询android 官方api后,得知v0.addFlags(268435456)对应的就是

QQ截图20151209130658.png

QQ截图20151209130934.png

接着启动该intent,跟进ComposeAbsActivity活动类,

QQ截图20151209131134.png

此方法用于设置默认短信应用,这就跟我们之前的判断联系起来了,当设置为默认短信应用后,即可进行一系列的写入本地的操作

QQ截图20151209131309.png

并且此类具有发送短信的功能。

分析到这里,发现剩下的几个高危服务都没有启用,也就不分析了,唯一一个启动的DeviceAdminReceiver 也没有做实质性的操作,只是在用户取消激活时给用户一个诱导提示而已
QQ截图20151209132138.png

0x3 总结

此木马主要会获取手机上的敏感信息,并通过短信和邮件的方式发送给作者,让用户在不经意间丢失了隐私以及一些流量和短信费用
木马整体错综复杂,调用非常混乱,需要很强的逻辑和跟踪分析能力,反正我是不行

最后分析的一般,还望大牛斧正。

样本地址: 样本.zip (709.36 KB, 下载次数: 253)
解压密码:52pojie



免费评分

参与人数 17热心值 +17 收起 理由
liubinzb123 + 1 用心讨论,共获提升!
Facksxx + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
罒_罒 + 1 很喜欢看病毒木马分析
caleb110 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
liusanp + 1 鼓励转贴优秀软件安全工具和文档!
Hyabcd + 1 我很赞同!
wangsheng66 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
零下274度 + 1 谢谢@Thanks!
cz5420 + 1 我很赞同!
Cizel + 1 前排膜拜花花~
查理一世 + 1 热心回复!
xizevip + 1 前排辣条~~~
Survivor + 1 瓜子,汽水,啤酒,饮料,爆米花有木有需要.
kyosnow + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
nyhsjc + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
alaoweng + 1 热心回复!
夜之零落兮 + 1 抱着花生米看直播~~~~

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Thefirst1 发表于 2015-12-9 10:38
QQ:552346159 
Tel:010-80286039
Name:吴健强
Company:中科德邦(北京)生物科技有限公司
Address:中国 北京市大兴区 北京大兴区青云店沙子营工业区 

估计这收信QQ也是木马作者盗来的。。。
lkr291484473 发表于 2015-12-9 10:47
建议大家分析的时候同时开jeb和jadx两款分析工具,jadx代码可读性搞,jeb跟踪能力强。
可读性搞
夜之零落兮 发表于 2015-12-9 10:32
铅笔刀 发表于 2015-12-9 10:51
不错 支持
nyhsjc 发表于 2015-12-9 11:10
学习了,感谢大神分享思路!
头像被屏蔽
天线宝宝 发表于 2015-12-9 11:39
提示: 作者被禁止或删除 内容自动屏蔽
C-FBI-QM 发表于 2015-12-9 11:45
等晚上继续看
隔壁小王 发表于 2015-12-9 11:48
从未遇到过啊
riverskywrorld 发表于 2015-12-9 12:05
楼主果然能力强大。感谢楼主分析讲解。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 05:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表