android CVE
本文收集网上android cve的一些分析供后续学习:
Android uncovers master-key:android1.6—4.0
由于ZIP格式允许存在两个或以上完全相同的路径,而安卓系统没有考虑这种场景。在该情况下,android包管理器校验签名取的是最后一个文件的hash,而运行APK加载的dex文件却是zip的第一个dex文件。
参考资料:看雪zmworm http://www.kanxue.com/bbs/showthread.php?t=175129
launchAnyWhere: Activity组件权限绕过漏洞解析:—android4.4
// 此漏洞利用AccountManagerService去启动任意未导出的Activity,突破进程间组件访问隔离的限制
// 背景:appA拥有账号类型,可被添加到android中
// 1、在setting中添加appA账号,会在setting进程中打开appA传递进来的intent(正常是appA的注册activi)
// 2、恶意appA会传递任意的activity,由于是在setting(system权限)中执行,所以activity会被创建
// 修补:
// 1、androiod4.4中/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
// Session.onResult函数中判断intent中的active的SIGNATURE是否和appA相同
// 若不同则不允许创建intent包含的activity
// 2、在activity中检测下,自己是被谁创建的,若不是所属的app创建则退出;
// 如何检测:在app里创建activity前设置flag,activity的oncreate函数中查询flag即可判别
// 涉及到的资料和poc已收集到为知笔记;BTW,android账号类型的创建看参考资料
// 参考资料:
launchAnyWhere: Activity组件权限绕过漏洞解析:
http://retme.net/index.php/2014/08/20/launchAnyWhere.html
Android LaunchAnyWhere (Google Bug 7699048)漏洞详解及防御措施:
http://blog.csdn.net/l173864930/article/details/38755621
一步一步教你在 Android 里创建自己的账号系统
深入理解android卷2:第8章AccountManagerService
FakeID签名漏洞:Android2.1—4.4.1
// 此漏洞的成因是校验证书没对证书内容进行校验,而只是比对证书的字符串
// 参考研究:
// Android FakeID(Google Bug 13678484) 漏洞详解 http://blog.csdn.net/l173864930/article/details/38409521
// FakeID签名漏洞分析及利用(Google Bug 13678484) http://retme.net/index.php/2014/08/04/fakeid-bug.html
// 分析文档和资料已记录在为知笔记 /hacker/漏洞分析/android/FakeID目录下
BroadcastAnyWhere:Android 2.0—4.4.x
// 此漏洞的也是在添加账户时被会被利用:
// 添加账户会新建PendIntent,导致恶意软件可以用这个intent去构造来开启任意的广播
// 修复方案是新建PendIntent时先初始化intent,这样根据填充intent规则后续就不可以再修改intent了
// 参考资料:
// Android BroadcastAnyWhere(Google Bug 17356824)漏洞详细分析 http://blog.csdn.net/l173864930/article/details/41246255
// broadAnywhere:Broadcast组件权限绕过漏洞(Bug: 17356824)http://retme.net/index.php/2014/11/14/broadAnywhere-bug-17356824.html
// 安卓Bug 17356824 BroadcastAnywhere漏洞分析 http://xteam.baidu.com/?p=77
// 改漏洞资料也收集到为知了
CVE-2014-3153:—android4.4.2,linux3.4内核漏洞
// 以下转自CVE-2014-3153笔记 http://thecjw.0ginr.com/blog/archives/564
CVE-2014-3153可以说是相当经典的漏洞,影响范围相当广泛。这实际上是一个Linux内核的Use-After-Free漏洞,
利用得当可以转化为任意内核地址写入。Geohot的TowelRoot也利用了这个漏洞,在当时(以及现在)能够Root(或Crash)绝大多数Android设备。
由于工作的需要,收集了该漏洞的一些资料,并且对漏洞原理和利用方法进行了一些学习和分析。
以下是收集的资料:
http://blog.nativeflow.com/the-futex-vulnerability
http://blog.nativeflow.com/escalating-futex
http://blog.nativeflow.com/pwning-the-kernel-root
http://blog.topsec.com.cn/ad_lab/cve2014-3153/
https://github.com/timwr/CVE-2014-3153
https://github.com/android-rooting-tools/libfutex_exploit
https://github.com/nativeflow/pwntex
http://tinyhack.com/2014/07/07/exploiting-the-futex-bug-and-uncovering-towelroot
https://github.com/torvalds/linux/commit/e9c243a5a6de0be8e584c604d353412584b592f8
个人觉得NativeFlow的三篇文章详细的解释了各种细节以及利用方法,包括使用模拟器进行内核调试、问题代码补丁地址、Crash PoC以及图示。
天融信的文章结合了NativeFlow的三篇文章,并加入了自己的见解和分析,也挺不错,就是排版稍差。pwntex是NativeFlow给出的Relock和Requeue的PoC,
而CVE-2014-3153和libfutex_exploit则是两个可以在Android上获取Root权限的PoC
待续
android CVE的更多相关文章
- android CVE 漏洞汇总
arm exploits 技术教程: Learning Pentesting for Android Devices CVE-2015-1530 ,CVE-2015-1474 两个android整数溢 ...
- Android安全开发之WebView中的地雷
Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...
- Android安全研究经验谈
安全研究做什么 从攻击角度举例,可以是:对某个模块进行漏洞挖掘的方法,对某个漏洞进行利用的技术,通过逆向工程破解程序.解密数据,对系统或应用进行感染.劫持等破坏安全性的攻击技术等. 而防御上则是:查杀 ...
- android 用NineOldAndroid实现的弹出按钮
NineOldAndroid 1.首先上效果图: 左边这张是没有点击button的时候的效果, 右边这张是点击button 后是以该button为圆的展开5个button
- 【转】Android Canvas的save(),saveLayer()和restore()浅谈
Android Canvas的save(),saveLayer()和restore()浅谈 时间:2014-12-04 19:35:22 阅读:1445 评论:0 收藏: ...
- Android 图标上面添加提醒使用开源UI类库 Viewbadger
Viewbadger 1.BadgeView主要是继承了TextView,所以实际上就是一个TextView,底层放了一个label,可以自定义背景图,自定义背景颜色,是否显示,显示进入的动画效果以及 ...
- 小白日记15:kali渗透测试之弱点扫描-漏扫三招、漏洞管理、CVE、CVSS、NVD
发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...
- 使用.NET框架、Web service实现Android的文件上传(二)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYUAAAKpCAIAAADcx6fPAAAgAElEQVR4nOydd1hT5+LHg1attbfr1t ...
- Android安全开发之WebView中的大坑
0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等.WebView功能强大 ...
随机推荐
- mysql内一些可以延时注入的查询语句
一.sleep() 配合其他函数进行使用将十分方便,如下所示: 拆分讲解: select substr(database(),1,1) ; 截取当前数据库的第一位,转换为ascii码值: se ...
- 任务队列 与 Celery概述
一.任务队列(Task Queues) 1.1 什么是任务队列? 任务队列用于管理后台工作,通常这些后台工作必须在 HTTP请求-响应循环 之外执行. 1.2 为什么需要任务队列? 对于那些不是由客户 ...
- 2019HDU多校第六场 6641 TDL
一.题目 TDL 二.分析 题意就是找一个$n$满足题目中的公式,找不到就输出$-1$. 对于$${( f (n,m) - n )} \oplus {n} =k$$ 可以转换一下变成$( f (n,m ...
- Codeforces Round #575 (Div. 3) D2. RGB Substring (hard version) 【递推】
一.题目 D2. RGB Substring (hard version) 二.分析 思路一开始就想的对的,但是,用memset给数组初始化为0超时了!超时了! 然后我按照题解改了个vector初始化 ...
- 使用shell脚本替换Hadoop配置文件的值
因为懒汉式的实现是线程安全的,所以会降低整个访问速度,而且每次访问都要判断一次.有没有更好的方式实现呢?可以使用"双重检查枷锁"的方式来实现. 所谓"双重检查加锁&quo ...
- matplotlib常规使用方法
1,指定图片大小和像素 Python绘图问题:Matplotlib中指定图片大小和像素 2,绘图命令的基本架构及其属性设置 绘图与可视化 3,python基础语法(二)--- plt的一些函数使用 p ...
- java例题_10小球 自由落体
1 /*10 [程序 10 自由落体] 2 题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半: 3 求它在 第 10 次落地时,共经过多少米? 4 第 10 次反弹多高? 5 */ ...
- springboot的拦截器报错plicationFilterChain.java:193) ~[tomcat-embed-core-9.0.36.jar:9.0.36]
解决方案: spingboot的拦截器"index.html"少"/",太粗心了
- abp加DDD开发:低耦合、可复用、可扩展的【工单】业务模块-简介和集成
前言 很多场景[单体+模块化]比微服务更合适,开发难度低.代码可复用性强.可扩展性强.模块化开发有些难点,模块启动与卸载.模块之间的依赖和通讯.asp.net core abp为我们提供了模块化开发能 ...
- 痞子衡嵌入式:MCUXpresso IDE下在线调试时使用不同复位策略的现象总结
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下在线调试时使用不同复位策略的现象总结. 本篇实际上是<IAR在线调试时设不同复位类型可能会导致i.M ...