位置: 编程技术 - 正文

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

  • 出口企业何时选择免(征)税申报方式?
  • 税控是干什么用的
  • 企业微信里的钱
  • 第一次开电子普票怎么开
  • 有红字发票如何入账
  • 航空运单能当发票使用吗
  • 处置子公司全部股权会计处理 企业会计准则
  • 负债类会计科目表
  • 保修期内免费维修
  • 租赁的房子
  • 车辆买的商业险有家庭包
  • 仓库产品出库到货时间
  • 出口货物如果没收怎么办
  • 出租车公司给车都上什么保险
  • 购买股票如果公司亏损
  • 单位会计需要去税务局实名认证吗?
  • 餐饮发票可以抵扣个人所得税吗
  • 不是房屋产权人可以卖房吗
  • 中介公司属于工业企业吗
  • 直接人工属于哪个科目
  • 工资不用交税还用上报么
  • 收到上月发票怎么写分录
  • 财会报告需要哪些证书
  • 如何预防计算机病毒的方法
  • 对公账户是否有银行卡号
  • 员工垫付款怎么做分录
  • ps4运行windows
  • macbook隐藏
  • 出租设备收取租金合法吗
  • 行政单位预付款已收到货物无发票
  • php空间怎么用
  • 巴拉诺维奇市
  • 禁止input标签输入
  • php use function
  • 计提资产减值准备是利好还是利空
  • 注销后怎么补缴社保
  • 若依框架使用教程
  • 土地出让金返还的税务处理
  • 库存商品盘亏计入哪个科目
  • 购买样品入库的账务处理
  • 增值税进项税加计抵扣
  • 公司支付的广告费是什么
  • p f和p a的区别
  • dedecms官网
  • python中exec执行如何获取返回值
  • 普票不能抵扣要他干嘛
  • 销售人员的工资属于什么会计科目
  • 账务核对的主要内容
  • 银行代发工资流程
  • sqlserver2012备份
  • mysql常见报错
  • 住房公积金有什么好处和优势?
  • ce认证所需的模块有哪些
  • 固定资产损失税前扣除备查资料有哪些
  • 开票软件服务费全额抵扣怎么做账
  • 财务规定保险柜存放现金最多不超过多少
  • 补提当年折旧会计分录
  • 每月增值税怎么做账
  • 装修属于营业费用还是管理费用
  • 融资租赁承租方怎么做账
  • 预付账款业务
  • sql server数据表
  • 腾讯云centos7有界面吗
  • 微软提示
  • solaris syslog
  • win7桌面右键菜单设置
  • fedoral
  • Win10虚拟内存怎么转移
  • ubuntu如何清理垃圾
  • mac计算器怎么用
  • windows更新88
  • win10电脑cmd命令大全
  • win10更新补丁后共享打印机无法使用
  • linux 压缩rar
  • javascriptz
  • Extjs中通过Tree加载右侧TabPanel具体实现
  • javascript概述及作用
  • js标志
  • echarts图表
  • 珠海市中心
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设