Android提权漏洞分析——rageagainstthecage

本文介绍了Android的adb setuid提权漏洞,该漏洞被用于各种root工具和恶意代码中。漏洞源于adb源码在降权操作时未检查返回值,允许通过创建大量僵尸进程来维持root权限。修复后的adb源码增加了返回值检查。文章详细分析了漏洞利用方法和修复措施。
摘要由CSDN通过智能技术生成

Android adb setuid提权漏洞由Sebastian Krahmer在2010年公布,并发布利用工具RageAgainstTheCage (rageagainstthecage-arm5.bin)。该工具被广泛用于SuperOneClick、z4root等root工具和Trojan.Android.Rootcager、DreamDroid等恶意代码中。

该工具支持Gingerbreak 2.2.X及更低版本的系统。


漏洞原理:

adb启动时最初拥有root权限,在运行过程中需要降成shell权限。如下所示,adb源码中对于setgid()和setuid()没有检查返回值,导致降权失败后继续运行。

于是利用linux对shell进程存在数量限制的特点,产生大量僵尸进程来造成降权失败,这样继续运行的adb进程就拥有root权限。

从漏洞修补后的adb源码中我们可以看出,增加了对返回值的检查。


漏洞修补前的adb源码

int adb_main(int is_daemon) 
{ 
      ...... 
      property_get("ro.secure", value, ""); 
      if (strcmp(value, "1") == 0) { 
            secure = 1; 
      ...... 
      } 
     if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值