一、Superuser环境变量设置漏洞
【影响产品】
在 Android <= 4.2.x 已root过的系统上使用到以下授权管理应用的都可能受影响:
1、ChainsDD Superuser (当前版本,包括v3.1.3)
2、CyanogenMod/ClockWorkMod/Koush Superuser (当前版本,包括v1.0.2.1)
3、Chainfire SuperSU v1.69以前的版本
【漏洞原理】
1、 伪造包含恶意shell代码的app_process,该shell代码将/system/bin添加到环境变量,然后在data目录创建文件,由于默认情况下仅允许root权限才能创建,若创建成功就代表root提权成功,具体代码如下:
2、 利用chmod 755 app_process赋予恶意脚本app_process执行权限,然后将恶意脚本app_process所在目录添加到环境变量PATH=pwd
:$PATH;
3、 正常情况下,通过命令su –c ‘true’ 会执行系统的app_process程序,但由于恶意脚本所在目录已经被添加到环境变量,此时会导致恶意脚本app_process替换原系统的app_process程序被执行。
4、 环境变量BOOTCLASSPATH也存在上述问题。
二、AndroidSuperuser shell字符转义提权漏洞
【影响产品】
1、CyanogenMod/ClockWorkMod/Koush Superuser(当前版本,包括v1.0.2.1)
2、Chainfire SuperSU v1.69之前的版本
【漏洞原理】
1、 在ClockWorkMod Superuser 中对于执行“su –c ‘COMMAND’”命令时,是通过以下代码实现的,其中的关键函数在于get_command用于获取传入的“COMMAND”参数:
1 2 3 4 5 6 7 8 9 |
snprintf(user_result_command,sizeof(user_result_command),"exec /system/bin/am "ACTION_RESULT" --ei binary_version %d--es from_name '%s' --es desired_name '%s' --ei uid %d --ei desired_uid %d --escommand '%s' --es action %s --user %d",
VERSION_CODE,
ctx->from.name,ctx->to.name,
ctx->from.uid,ctx->to.uid,get_command(&ctx->to),
policy==ALLOW?"allow":"deny",ctx->user.android_user_id); |
2、 由于get_command对传递进来的“COMMAND”参数未作有效转义,通过以下命令可绕过限制以root权限执行命令:
1 |
su-c"'&touch /data/abc;'" |
3、 SuperSU虽然对字符有作一定过滤,但反点`与$符号可绕过过滤,可使用以下命令来执行root命令:
1 2 |
su-c'`touch /data/abc`' su-c'$(touch /data/abc)' |
三、AndroidSuperuser su –daemon提权漏洞
【影响产品】
Android >= 4.3 安装有以下授权管理应用的都可能受到影响:
1、CyanogenMod/ClockWorkMod/Koush Superuser 当前版本
【漏洞原理】
1、 攻击者必须拥有adb shell访问权限;
2、 创建恶意shell文件trojan,主要用于设置环境,并创建/data/trojan.out文件,由于data目录仅限于root权限才能创建,因此若生成trojan.out文件就说明root提权成功:
3、 将各种常用命令与shell文件trojan挂链接,添加trojan所在目录到环境变量,劫持常用命令来执行恶意脚本:
1 2 |
forxinidlscpcattouchchmodchowniptables dmesg;doln-strojan/data/local/tmp/$x;done PATH=/data/local/tmp:$PATH |
4、 攻击者需要一个非shell(uid不是2000)的拥有suid能力的linuxUID来避开su daemon的main函数中的检查。一个可行的办法是安装一个设置了”debuggable”标志的应用,并使用run-as以它的uid来运行。(由 于4.3的run-as有bug,所以没办法正常工作,而4.4中已经修复了这个问题,故这里采用run-as.422来运行应用):
1 |
setsid run-as.422my.debuggable.package/system/xbin/su--daemon。& |
5、当有程序向superuser请求root权限时,一使用到被挂链接的命令,恶意shell文件trojan.out就会以root权限来执行。
从以上文件分享中,我们很容易发现,其实在我们开发的源码中多多少少还是存在的大小不一的漏洞可以给黑客有可乘之机的。不管在应用上线前或者是已经 上线了,都还是建议大家能定期给最近的应用做检测。爱内测detect.cn专业的移动应用安全检测系统,可以给应用做一个彻底的检测。
相关推荐
Android Superuser源码详解 Android操作系统以其开放性和可定制性深受开发者喜爱,而Superuser则是Android系统中一个至关重要的组件,它为用户提供管理root权限的能力。本文将深入探讨Superuser的源码,揭示其在...
当一个应用请求Root权限时,superuser应用会弹出一个对话框,让用户决定是否允许。这样,用户可以控制哪些应用能够拥有Root权限,增加了安全性。 在安装过程中,"superuser3.2.apk"通常会与系统中的"system"分区相...
在Android等基于Linux内核的系统中,"Superuser"权限常用于对设备进行自定义和优化。 在描述中提到的"Superuser-3_super_user_chrome_",很可能是指针对Chrome操作系统的超级用户补丁程序。Chrome操作系统是Google...
主要分析了手机Root权限获取的过程,并介绍了常见的几个Root提权漏洞,最后通过分析su与SuperUser.apk的协作方式解了Root真正的原理。涉及的内容:Root的由来、Root漏洞的历史、CVE-2009-2692、CVE-2010-EASY、...
在Android操作系统中,"su"命令是获得超级用户或root权限的关键工具,它允许用户以..."Superuser.zip"这个压缩包提供了一个获取和管理root权限的途径,对于那些希望探索Android系统底层的用户来说,是一份宝贵的资源。
Superuser源码的分析对于理解Android系统的安全机制以及如何管理权限至关重要。下面我们将详细探讨Superuser的核心功能、工作原理以及源码中的关键部分。 一、Superuser概述 Superuser是Android设备上的一个系统...
在Android操作系统中,"超级用户授权工具汉化版(Superuser)"是一款至关重要的应用程序,它为用户提供了对手机系统的深度访问权限,也就是我们常说的"Root"权限。Root权限允许用户超越常规的权限限制,对系统进行更...
5. **superuser.apk**: 这是一个应用程序,用于管理设备上的Root权限。它提供了一个用户界面,让用户可以批准或拒绝对系统有root权限请求的应用程序,确保只有授权的软件才能访问高级权限。 6. **root**: 在这里,...
原理是利用了android的两个提权漏洞: CVE-2010-EASY 和 ZergRush。 我把大概原理简单说说: 1, CVE-2010-EASY : linux的内核的模块化程度很高,很多功能模块是需要到时候再加载,在 android中由init进程来管理...
当一个应用请求root权限时,superuser.apk会弹出提示,让用户决定是否允许。将此apk推送到`/system/priv-app/`目录是为了确保其作为系统应用运行,这样即使在没有用户交互的情况下,它也能处理权限请求。 3. **root...
3. **安装su和Superuser.apk**: 成功提升权限后,SuperOneClick会将su二进制文件(超级用户权限的执行程序)和Superuser.apk(管理权限请求的应用)安装到设备上。su文件允许其他应用以root权限运行,而Superuser....
"Superuser"通常指的是Android系统中的管理权限,它在Linux内核的基础上运行,允许用户对设备有完全控制权,执行需要root权限的操作。这个压缩包文件"Superuser-master"很可能包含了Superuser应用的源代码,这是一个...
在Android系统中,`su`命令是用于获取超级用户权限的关键工具,它是“superuser”的缩写,允许应用程序执行需要root权限的操作。Android 4.4.4_r1是Google发布的Android KitKat的一个修订版,它对系统的稳定性和安全...
从下载 Superuser,然后将 Superuser.apk 和适用于您的架构(通常是 ARM)的“su”二进制文件放在 checkout 目录中(与 doit.sh 所在的目录相同)。 它们应该是 su 和 Superuser.apk。 实际下载是签名的 zip,您...
- `su`是“Super User”的缩写,是实现ROOT权限的核心程序。它是一个二进制文件,当其他应用请求超级用户权限时,`su`会处理这些请求并控制权限的授予。 5. **风险与注意事项**: - **安全性**:开放ROOT权限可能...
传统上,SuperSU是一款流行的root管理应用,它通过安装一个自定义的su(superuser)二进制文件到系统目录,使得用户能够通过应用程序请求并获得超级用户权限。然而,这个“android 5.1_root_patch”补丁可能采用了一...
1. 安装`Superuser.apk`应用,该应用作为root权限的管理器,允许用户控制哪些应用可以获取root权限。 2. 重启设备,完成整个root过程。 #### 四、总结 通过SuperOneClick进行Android越狱的过程主要包括获取临时...
3. **superuser-1030.zip**:SuperUser是管理应用,它控制哪些应用可以使用ROOT权限。这个版本可能是SuperUser的更新,确保与最新的系统兼容并提供权限管理功能。 4. **BETA-SuperSU-v2.23.zip 和 UPDATE-SuperSU-v...
5. **安全检查与维护**:一旦设备root成功,记得安装一个可靠的SuperSU或SuperUser应用来管理root权限,并定期更新以防止安全漏洞。同时,避免安装来源不明的应用,因为root权限可能会增加设备被恶意软件感染的风险...