位置: 编程技术 - 正文

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

  • 收取违约金是否交税
  • 劳务费税率计算公式
  • 应交税费为什么记借方
  • 其他应付款二级科目明细
  • 电信充值调账什么意思
  • 固定资产出售损益
  • 房产税和城市房地产税
  • 企业所得税收益计算公式
  • 融资租入的企业有哪些
  • 收到加工劳务发票怎么做
  • 收到第三方利息会计分录
  • 财产转让所得税计算方法
  • 增值税专用发票几个点
  • 未分配利润转增股本要交税吗
  • 季度报税过了怎么办
  • 企业有哪些资金结构
  • 预付账款如何计提折旧
  • 用工会经费给员工发工资
  • 主营业务成本是借方增加还是贷方增加
  • 少数股东持股比例
  • 鸿蒙系统怎么隐藏状态栏
  • php函数返回值类型
  • 支付的测试流程
  • cmd. exe 程序错误
  • win10系统修改密码
  • 怎样识别?
  • apache配置多个项目
  • 利息年化率怎么算化利率怎么算
  • 银行承兑汇票的会计分录
  • 阿里云搭建hexo
  • 债券投资账务处理例题
  • 企业股权转让所得可以弥补亏损吗
  • 木制家具出口流程
  • 4、nerf(pytorch)
  • CNN卷积神经网络/手写数字识别[VHDL][MATLAB]带源码
  • 销售产品的包装费
  • 石油预付款发票怎么开
  • 资产负债表中的货币资金怎么算
  • 收保险公司工伤怎么赔偿
  • 纳税收入包括居民个人在境外取得的收入吗?
  • 盈余公积转增资本会计科目
  • 政府奖励收入会计分录
  • 管理费用核算的是
  • 应交增值税进项税额和销项税额区别
  • 会计从业资格证取消了吗
  • 车辆维修费会计分录
  • 转账结算的原则是什么
  • 调账的基本方法及要点都有哪些?
  • 公司法人的车辆给公司用可以报销费用吗
  • 土地使用税的账务处理分录
  • 汇算清缴补交的所得税怎么记帐
  • 销项负数发票给对方哪一联
  • 电子银行承兑汇票能拆票吗
  • 人工工资会计科目
  • 社保个人部分如何继承
  • 领用包装物的会计处理
  • 个人独资企业取得拆迁补偿款税收规定
  • 计划成本法和实际成本法的适用范围
  • 总帐设置在哪
  • 一家企业至少要运转几个月以上
  • sqlserver批量删除数据
  • 输入法是全角在哪里设置
  • UBUNTU怎么安装MPEG-4解码器
  • freebsd使用wifi
  • mac如何用u盘安装win10
  • executor进程
  • win7连接xp共享
  • linux抓包语句
  • centos设置ftp
  • linux共享内存同步机制
  • grep正则表达式运用举例
  • unity动画调速度
  • 如何正确使用零钱
  • python3gui
  • 爱加密企业版
  • 机票的抵扣率是多少
  • 江苏囯税电子
  • 陕西国家税务总局官网登录入口
  • 北京国家税务局总局官网
  • 企业房产如何过户给个人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设