当前位置:首页 > 电脑常识 > 正文

一探小米Analytics后门 8090安适门户

11-21 电脑常识

按照 [The Hacker News]() 的报道,小米手机定制的ROM中存在后门,可以使得小米在用户的手机上静默安置任意APP。这个后门存在于预装的Analytics应用中,其在后台24小时运行,即便用户删除后任然会再次呈现。

恰好用的就是小米的手机,本着学习的态度,用了课余时间分析了一下,看看这个后门是咋回事。

二. 具体分析

通过小米手机的“设置”-> “其他应用打点”,在“全部 ”标签栏中可以检察系统中的全部应用,仔细找确实发明了名叫analytics的应用。

同时通过adb连接后,用ps命令也可以看到这个应用正在运行。

1

2

 

root@dior:/ # ps|grep "analytics"

u0_a75    1711  218   516248 39860 ffffffff 400d68b8 S com.miui.analytics

 

由于这个应用是预装的系统应用,然后通过`adb pull`将`/system/app`目录中的AnalyticsCore.apk拿出来,这样就可以反编译apk文件看看这个应用到底做了什么,是不是真的有后门?

由于apk文件也是一个zip布局的文件,我先用7zip打开看了一下,发明没有使用linux so文件,也就是都是java层的代码,没有native的。这样直接用JEB分析吧。

用JEB打开后看到,一些包中的类名和要领都是a,b,c这样的名字,应该颠末了混淆措置惩罚惩罚。

然后看Manifest文件中的声明的权限和处事

此中有完全的网络访谒权限,可以直接安置应用,获到手机状态等。还设置了receiver在手机启动和网络状态转变时获得通知。

然后我通过JEB中Strings一栏查找一些可疑的字符串。发明了一个线程,在runnable接口中界说的run函数中有发送手机信息到长途处事器的行为。这个后来被证明也是后门的关键。

从代码中看到获取了imei,mac,package等信息,发送到[]()。

返回的是一个json格局的信息。此中关键的有url和md5字段。

我们接下去看看代码是怎么措置惩罚惩罚这个url和md5的。

1

2

3

 

g.a(this.B, v0_5.optString("md5"));

g.b(this.B, v4);

g.c(this.B).execute(this.B.bg);

 

通过`g.a`,`g.b`分袂将url和md5的值赋给`this.B`的成员变量,然后启动一个thread措置惩罚惩罚。

在这个thread中将上面的url去请求一个apk,将它下载到本地。本地生存的地点是自生的cache目录`/data/data/com.miui.analytics/cache/`。

不才载完后,还通过md5对下载的apk进行了校验。

但由于前面的请求是http,我们完全可以拦截改写url和md5的值,将url改写为本身处事器的地点,md5的值只要切合本身处事器中apk的md5即可。

然后通过“g.h(this.B)”安置。最后安置apk的代码就是挪用PackageManager进行安置。

可见,代码中虽然通过md5对下载的apk进行了校验,查抄了下载apk文件的完整性,但没有查抄签名的有效性,如是不是小米的签名。

此外,由于之前的http不安适的传输,使得可以篡改url和md5的值,使得系统按照一个指向我们处事器的url下载恶意的apk,并被安置。

上面的这个过程在系统启动后,网络状态转变,手机唤醒时,城市产生。

温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/13006.html

博客主人杰米WWW
杰米博客,为大家提供seo以及it方面技巧喜欢的朋友收藏哦!
  • 11365文章总数
  • 1378074访问次数
  • 建站天数
  •