位置: 编程技术 - 正文

Android提权漏洞分析——rageagainstthecage(sudo提权漏洞)

编辑:rootadmin

推荐整理分享Android提权漏洞分析——rageagainstthecage(sudo提权漏洞),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android提权漏洞emp,linux提权漏洞,linux提权漏洞,root提权漏洞,本地提权漏洞,root提权漏洞,android 提权,android提权漏洞emp,内容如对您有帮助,希望把文章链接给更多的朋友!

Android adb setuid提权漏洞由Sebastian Krahmer在年公布,并发布利用工具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源码:

漏洞修补后的adb源码:

The Android Exploid Crew小组后来发布了一份PoC代码:rageagainstthecage.c[1],我们对此进行分析。

Android提权漏洞分析——rageagainstthecage(sudo提权漏洞)

各函数功能:

函数 die():反馈错误信息

函数 find_adb():在当前进程空间中查找adb进程,并返回其进程号

函数 restart_adb():杀死adb进程

函数 wait_for_root_adb():循环检测adb进程是否重启(此处kill(-1, 9); ()不太理解,推测应该是结束所有僵尸进程),重启的adb进程应该就具有root权限

从main函数中我们可以看出漏洞利用具体方法:

main函数首先检测系统对shell进程数量是否存在上限(RLIMIT_NPROC),如果存在则查找adb进程。此处利用匿名管道(pepe[2])进行同步,fork()的父进程在read()处阻塞,而子进程无限循环fork()产生新的子进程,新的子进程直接exit(0)形成大量僵尸进程,占用shell进程号。直到达到进程号上限,fork()将失败,这时调用write()使得父进程解除阻塞重启adb进程。最后调用wait_for_root_adb等待新的adb启动即可(adb属于系统服务,如果终止会被系统自动重启)。

参考文献

[1

android SQLite数据库的简单用法 在android平台上使用的是嵌入式关系型数据库SQLite,SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(文本)、BLOB(二进制对象)数据类型。但实际上它也

Material Design 中文版-Introduction(概述) 概述我们挑战自我,为用户创造了崭新的视觉设计语言。与此同时,新的设计语言除了遵循经典设计定则,还汲取了最新的科技,秉承了创新的设计理

Android 自定义Dialog样式 1.首先在资源里面建立style的value;[html]viewplaincopy!--ShareDialog--stylename=Theme.ShareDialogparent=android:style/Theme.Dialogitemname=android:windowBackground@drawable/fill_box/itemitem

标签: sudo提权漏洞

本文链接地址:https://www.jiuchutong.com/biancheng/384189.html 转载请保留说明!

上一篇:android中解析doc、docx、xls、xlsx格式文件(安卓解析xml的几种方式)

下一篇:Android 自定义Dialog样式(Android 自定义控件)

  • 外购商品发给员工增值税要怎么算
  • 货物已到发票未开具
  • 商业承兑汇票贴现率
  • 固定资产报废需要哪些人签字
  • 增值税普通发票和专用发票有什么区别
  • 政府回购土地免税政策
  • 收到订金如何开票
  • 电子税务局财务负责人实名认证
  • 发放代扣代缴个人所得税分录
  • 增值税专用发票电子版
  • 企业的哪些活动对企业有长期影响呢
  • 普通发票开折扣销售能冲减销售吗
  • 建筑业红字发票备注
  • 企业生产设备产品有哪些
  • 期初未交增值税借方余额
  • 个人合伙企业有没有企业所得税
  • 发票逾期未认证个人要承担责任吗
  • 生产用的软件
  • 如何知道企业交了多少税
  • 个人缴纳物业费怎么开发票
  • 入职不满一年有年假吗
  • 个人抬头的医药费可以进费用吗
  • 专用发票密码区显示数电票号码
  • 买入返售金融资产是资产还是负债
  • 收取国外技术服务费如何在外管申报个税
  • 无形资产的入账价值包括什么
  • 资产负债率是用年初和年末数吗
  • 关于积分的三种账务处理方法
  • 在win7系统中文件属性有哪些
  • php创建表单
  • 苹果手机微信怎么迁移聊天记录到新手机
  • linux 查看文件内容 转换字符编码
  • php获取ftp文件目录
  • 应付债券的应付利息怎么计算
  • framework3.5怎么打开
  • 不带息票据按面值入账
  • 请假扣款会计分录
  • 深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)
  • 个税计税周期 一年
  • 增值税发票打印机
  • 顺丰电子发票开票失败需要怎么处理?
  • 没有盈利的单位叫什么
  • 怎么升级一般纳税人
  • 跨境电商小规模怎么做账报税
  • 房地产开发公司组织架构
  • mysql怎么处理特殊字符数据
  • 企业签发银行承兑汇票支付采购款
  • 个人所得税应补退税额怎么查
  • 公司借款利息可以约定由某一股东承担
  • 银行承兑汇票是商业汇票吗
  • 单位买车和个人买车交税有何不同
  • 收据不能入账如何处理
  • 专票多长时间
  • 固定资产的折余价值和账面价值如何确定
  • 税务机关如何对个人股东股权财务报表审核
  • 一般纳税人转小规模纳税人的条件
  • 住宿费报销该怎么报
  • 税收滞纳金的问题有哪些
  • 分公司往子公司投资如何做税务处理?
  • 代开发票的弊端是如何体现的?
  • 账务调整的原则
  • 查询sql server版本
  • sql kill进程
  • win7怎么不显示桌面图标
  • Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
  • win 8.1 preview ISO镜像安装方法简易教程
  • win8双系统安装教程
  • linux用户相关命令
  • Linux怎么添加用户
  • win8系统触摸板按键不能用
  • shell(bash)下“time” 命令的输出详解
  • android自定义属性详解
  • python3循环语句
  • 关于js的描述错误的是
  • js简单实现鼠标移动后面文字也移动
  • JavaScript中getUTCSeconds()方法的使用详解
  • 关于草丛:单局游戏内
  • JavaScript Try...Catch 声明的 使用方法
  • javascript编程语言
  • 如何判断python列表长度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设