位置: 编程技术 - 正文

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

  • 销售商品返还现金
  • 出口退税通俗理解
  • 外籍人员税收优惠政策
  • 公司内部个人股份怎么算
  • 公司收到生育津贴不发给员工 分录
  • 公积金个人缴纳多少
  • 发票税率开错了3%开成5%怎么办
  • 外贸企业出口怎么写
  • 什么费用可以报销工会经费
  • 开业前的其他费用
  • 资产减值损失为正
  • 计算错误多缴税怎么处理
  • 销售预付卡的成本是什么
  • 事业支出期末如何结转?
  • 资产减值损失负数是好是坏
  • 出口供货企业
  • 股权0元转让
  • 进项税额转出后企业所得税怎么处理?
  • 买牛奶的公司会计怎么做账
  • 混营纳税人有什么影响
  • 租赁农民土地应该开发票吗
  • 没发票大额费用支出能税前扣除吗?
  • 银行承兑汇票承兑手续费是多少
  • 缴纳的教育费附加可以税前扣除吗
  • 做账的是什么会计
  • 公司固定资产一般谁负责
  • 审计调整以前年度投资收益怎么处理
  • linux常用的命令大全
  • 股东不发工资只给员工钱
  • 启动器
  • 应交增值税有哪些
  • 内存坏了电脑会黑屏吗
  • win10教育版用户账户控制怎么取消
  • win10玩游戏fps低怎么办
  • 内置管理员无法激活
  • 正常开机进不去系统
  • PHP aes (ecb)解密后乱码问题
  • thinkphp5 分页
  • 接受捐赠会计准则
  • vue qrcode生成二维码
  • AI工具大全
  • 用友u8删除凭证的步骤
  • Linux下DedeCMS/织梦CMS安全设置教程
  • 自制原始凭证代码怎么填
  • 公司发放工作服账务处理
  • 帝国cms移动端
  • 小型微利企业可以享受研发费加计扣除吗
  • 社保年审流程示意图
  • 查看db2状态
  • 财政拨款方式有哪几种
  • Mysql创建通用设备管理信息系统数据库
  • 每月材料进出库明细表
  • 小企业附加税减免政策
  • 应收票据周转率怎么分析
  • 建筑安装业经营范围
  • 在建工程的
  • 给客户优惠货款怎么写
  • 退款产生的手续费怎么算
  • 运费可以抵扣进项税额
  • 总包分包怎么区分
  • 会计准则规定了什么
  • 增值税相关的问题
  • 公司的钱如何提出来
  • 忘交残保金了怎么补交
  • 公司增资需要哪些材料
  • sql server怎么执行
  • win8安装虚拟机的步骤
  • ghost后不能启动
  • hkcmd.exe损坏文件
  • win8怎么禁用更新
  • win10天气预报设置
  • win10没空间
  • 关于模型视图变化的说法
  • 纯js代码实现一进一出
  • JavaScript中数组长度的属性
  • Re: Latest Version: 3.7.9 (January 18th, 2015)
  • jQuery实现table中的tr上下移动并保持序号不变的实例代码
  • 社保缴费电子回单在哪里截图
  • 企业所得税核定征收和查账征收的区别
  • 残疾人就业保障金怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设