首页
社区
课程
招聘
浅谈360ROOT的安全与风险
发表于: 2017-5-21 21:55 7908

浅谈360ROOT的安全与风险

2017-5-21 21:55
7908

一、 简述

   由于出厂的Android手机大多会被预装很多没什么用的应用,同时也是为了折腾好玩,越来越多的用户选择ROOT自己的设备以此来获得更好的体验。在市面上,能提供ROOT服务的软件有很多,其中比较常见的ROOT工具就有360 ROOT和King ROOT。下面主要从两个方面来浅谈下360 ROOT软件在ROOT方面存在的一些安全问题。

二、 提权文件

   使用360 ROOT越狱手机的时候,其首先会收集必要的系统信息,然后会发送到云端来获取相匹配的ROOT方案文件,通过解析方案文件,可以获取到提权的so动态库下载地址,在下载完后动态加载,然后通过RootMan这个类中的private native int jmain(int arg1)函数来开始提权操作。

   在整个提权的过程中,安全校验很少。通过伪造关键的系统信息,很容易就可以获取到大部分提权用到的动态库文件,再加上动态库运行过程中对其调用者的校验不严格,这就导致了这些获取到的提权文件很容易就复用到其他恶意软件的攻击模块中。

三、 后台程序

   在设备ROOT成功后,在软件的设置界面里提供了可以卸载ROOT权限的选项,但是在卸载完ROOT权限后软件并不会把一些后台程序也从系统清理掉。

   在文件/system/etc/install-recovery.sh中保存着开机启动项,如下图所示,关键就是这个360s文件。其作为后台服务程序,随着手机开机而启动,在自身启动后还会创建两个名为360sguard的守护进程,而自身的进程名又改为emdaemon。


   emdaemon这个后台进程的主要作用就是充当一个本地Socket通信服务端,这样的话,自家公司的其他APP可以通过连接这个服务端,发送一些指令来获取ROOT权限。经过分析发现,360自家的一些APP,比如手机卫士,在AndroidManifest.xml文件中可以找到如下的远程服务:

    <service android:exported="false" android:name="com.qihoo.permmgr.PermService" android:process=":permmgr"/>

   这个就是用来提权的,那既然自家的可以连接这个服务端,那其他恶意APP当然也可以去连接了。通过进一步的实验发现,在360s中如果使得其调用getuid和geteuid的返回值不为2000的话,那么在adb shell中运行360s可以直接得到一个ROOT 权限Shell。这给恶意软件通过电脑端运用adb系列命令入侵手机提供了一种高效的方法。

四、 简单清除

   既然后台程序不会被360 ROOT软件自己清理而自己又会开机重启,自身又暴露了很多可以被恶意软件利用的攻击面,为了手机的安全就得自己来卸载了。恢复出厂设置是不行的,可以通过刷机或者用下面的方式来解决。

   由于存在双守护进程,那么如果一个一个KILL的话很难都结束掉,那就用KILL -19 PID来让那三个进程都暂停执行,然后再用KILL -9 PID来结束这几个进程,最后删除install-recovery.sh以及360s再开机重启下就可以了,可能还会有些衍生物需要进一步清理掉。

五、 总结

   凡药三分毒,用户在ROOT手机后能给自己带来便利的同时所遇到的安全风险也在不断增加,还是尽量别去ROOT自己的设备。软件开发商也需要加强自身软件的安全性,多注重安全方面的校验,从而尽可能减少自身提供的一些服务被恶意软件所利用。

博客地址:http://www.jianshu.com/u/d6531593aa12



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 6988
活跃值: (4202)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2017-5-21 22:00
0
雪    币: 0
活跃值: (878)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
“通过进一步的实验发现,在360s中如果使得其调用getuid和geteuid的返回值不为2000的话,那么在adb  shell中运行360s可以直接得到一个ROOT  权限的Shell。”
可以复现的话,能去360src上报漏洞了吧。。。。  想看细节实验细节~
2017-5-22 00:01
0
雪    币: 47147
活跃值: (20425)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
建议复制一份到论坛
2017-5-25 14:18
0
雪    币: 130
活跃值: (131)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
kanxue 建议复制一份到论坛
现在弄好了
2017-5-31 12:26
0
雪    币: 130
活跃值: (131)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
tangsilian “通过进一步的实验发现,在360s中如果使得其调用getuid和geteuid的返回值不为2000的话,那么在adb shell中运行360s可以直接得到一个ROOT 权限的Shell。” 可以复现 ...
已经提交,效果感人。
2017-5-31 12:28
0
雪    币: 210
活跃值: (626)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
居然没有删除root的文件,还留有后门。
2017-6-1 09:09
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
一些垃圾软件一直不停的自启下载弹窗,双清都解决不了,只能刷机,是不是就用到了类似的技术
2017-6-3 17:42
0
雪    币: 130
活跃值: (131)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
orayer 一些垃圾软件一直不停的自启下载弹窗,双清都解决不了,只能刷机,是不是就用到了类似的技术
差不多吧,都会劫持系统某处而达到自启动,比如King  ROOT就在这块做的更暴力些
2017-6-5 13:41
0
雪    币: 351
活跃值: (241)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
怎么做才能和恢复出厂还原设置一样,又不用重启呢
2017-6-29 14:28
0
游客
登录 | 注册 方可回帖
返回
//