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功能强大 ...
随机推荐
- [同步到 MaixPy3 文档] 使用 Python 编程入门开源硬件项目
本文是给有一点 Python 基础但还想进一步深入的同学,有经验的开发者建议跳过. 前言 在写这篇案例系列的时候 junhuanchen 期望能够引导用户如何成为专业的开发者,不是只会调用代码就好,所 ...
- Java 常见对象 03
常见对象·StringBuffer类 StringBuffer类概述 * A:StringBuffer类概述 * 通过 JDk 提供的API,查看StringBuffer类的说明 * 线程安全的可变字 ...
- IDEA中便捷内存数据库H2的最简使用方式
在IDEA中有时候为了练习,需要使用到数据库,但如果自己工作或开发机子上本来没有安装数据库,也没有可用的远程数据库时,我们可以直接在IDEA环境上使用便捷式的内存数据库H2,关于H2更多知识就自己去找 ...
- ES6学习笔记(2)- 箭头函数
1. 箭头函数声明 箭头函数的声明方式示例: 1 const printValue = (condition) => { 2 let testValue = 55; 3 if (conditio ...
- 2019HDU多校第七场 HDU6656 Kejin Player H 【期望递归】
一.题目 Kejin Player H 二.分析 因为在当前等级$i$,如果升级失败可能会退回到原来的某一等级$x$,相当于就是失败的期望就是$E + (Sum[i-1] - Sum[x-1]) + ...
- 时间&空间(complexity)
时间&空间复杂度 时间复杂度: 通俗来说就是随着数据量的增加,程序运行的时间花费量是怎么变化的,时间复杂度常用大o表示.举个例子,猜数字,猜10个,100个.1000个,猜数的数据量是在增加的 ...
- POj1860(floyd+正权回路)
题目传送门 题意:有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 296 ...
- 得分(JAVA语言)
package 第三章习题; /* * 给出一个由O和X组成的串(长度为1~80),统计得分. * 每个O得分为目前连续出现的O的个数,X得分为0. * 例如,OOXXOXXOOO的得分为 * ...
- 神奇的魔方阵--(MagicSquare)(1)
本篇文章只对奇数阶以及偶数阶中阶数n = 4K的魔方阵进行讨论.下面就让我们进入正题: 1 :魔方阵的相关信息:(百度百科) https://baike.baidu.com/item/%E9%AD%9 ...
- 多线程安全的单例模式(使用判断nullptr和call_once两种方法)
转载请注明: https://blog.csdn.net/Stephen___Qin/article/details/115583694 使用判断nullptr #include <thread ...