位置: 编程技术 - 正文

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 自定义控件)

  • 电子发票和纸质发票只能二选一吗
  • 制作费开票属于什么科目
  • 政府返还的个税怎么算
  • 利润总额与毛利的区别
  • 对公账户发工资怎么操作
  • 中小企业工会经费怎么算
  • 30万的车税可以抵多少
  • 发票查询发票代码有误
  • 如何在房产证上加父母名字
  • 企业缴纳的财产保险费会计分录
  • 商业承兑汇票有风险吗
  • 投资子公司的现金流量
  • 资产减值准备是
  • 企业所得税季报怎么申报
  • 企业所得税汇算清缴账务处理
  • 房地产开发经营属于什么行业类别
  • 老板带员工出去吃饭
  • 库存现金盘亏无法查明原因的分录
  • 商品进销差价的核算方法
  • 全额计提坏账的款项收回
  • 政府采购 汽车
  • 应交税费应交增值税明细科目设置
  • abs付款是现金吗
  • 以前年度损益调整借贷方向
  • 1697509966
  • 丧失控股权的后果
  • 收据可以入账的范围
  • linux默认文件类型
  • 哪些收入要纳税
  • 材料暂估入库需要备案吗
  • 接受捐赠收入要计入销售收入吗
  • 微信企业公众号开发平台
  • linux安装tk
  • 跨期发票怎么作废
  • 关于已开发票收到部分款项风险温馨提示
  • 所得税和所得税税率
  • 存货包括哪些会计账户
  • 补充养老保险税前扣除标准与扣除比例
  • laravel视频教程
  • 绿化管理服务经营范围
  • matlab用于图像处理
  • 小企业会计准则应付税款法
  • 织梦图片集如何调用
  • 在mysql中子查询是
  • 代收代付进项税转出吗
  • 什么是投资收益率
  • 发票抬头能否开分支机构
  • 待报解预算收入是什么意思,扣了钱
  • 材料采购账户的借方登记什么
  • 长期股权投资的核算方法
  • 承租人收到融资租赁款
  • 发票本月没有认证能用吗
  • 缴纳房产税和城镇房产税
  • 以物易物方式销售货物的增值税处理
  • 小规模公司一般开什么发票
  • 残保金管理使用办法
  • 工会经费计提比例是2%还是0.8%
  • 关联交易定价方法包括
  • win7安装mysql8.0.17
  • mysql innode
  • freebsd 升级
  • 修改双系统的引导顺序
  • 详细介绍的英文
  • win7系统系统
  • 重装系统 xp
  • ubuntu zmq
  • 利用windows资源管理
  • rasman.exe - rasman是什么进程 有什么作用
  • cocos 2d x
  • opengl缓冲区
  • JavaScript中的数据类型分为两大类
  • Android游戏开发案例教程小小弹球
  • opengl教程48讲
  • 基于nodejs的项目
  • javascript教程chm
  • ug合并命令在哪
  • 重写runnable
  • 四川国税网上申报大厅
  • 贵州省微企补助政策
  • 新沂恩华大药房会员日
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设