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功能强大 ...
随机推荐
- Java 获取小程序openid(基于SpringBoot)
Java 获取小程序openid(基于SpringBoot) 官方文档 wx.login 1.引入Request封装依赖 <!--Request依赖--> <dependency&g ...
- java基础:数据类型拓展
public static void main(String[] args) { //单行注释 //输出hello,world! //System.out.println("hello,wo ...
- LNMP配置——Nginx配置 ——访问控制
#vi /usr/local/nginx/conf/vhost/test.com.conf 写入: server { listen 80; server_name test.com test1.com ...
- LNMP配置——Nginx配置 —— 配置静态文件不记录日志并添加过期时间
一.配置 #vi /usr/local/nginx/conf/vhost/test.com.conf 写入; server { listen 80; server_name test.com test ...
- Codeforces Round #575 (Div. 3) D2. RGB Substring (hard version) 【递推】
一.题目 D2. RGB Substring (hard version) 二.分析 思路一开始就想的对的,但是,用memset给数组初始化为0超时了!超时了! 然后我按照题解改了个vector初始化 ...
- PTA 求二叉树的深度
6-7 求二叉树的深度 (6 分) 本题要求实现一个函数,可返回二叉树的深度. 函数接口定义: int Depth(BiTree T); T是二叉树树根指针,函数Depth返回二叉树的深度,若树为 ...
- 攻防世界 reverse reverse-for-the-holy-grail-350
reverse-for-the-holy-grail-350 tu-ctf-2016 程序流程很简单,就一个检验函数: 1 __int64 __fastcall stringMod(__int64 ...
- Python的多进程和多线程
进程和线程 进程是系统进行资源分配的最小单位,线程是系统进行调度执行的最小单位: 一个应用程序至少包含一个进程,一个进程至少包含一个线程: 每个进程在执行过程中拥有独立的内存空间,而一个进程中的线程之 ...
- AutoPy开发文档
AutoPy 简介 AutoPy是为python开发者提供的一个安卓插件,由路飞大佬开发维护,主要功能为了实现使用python在安卓端完成一些操作,例如点击,滑动,返回 准备 安装AutoPy.apk ...
- 设计原则:开闭原则(OCP)
1.什么是开闭原则 开闭原则的英文是Open Closed Principle,缩写就是OCP.其定义如下: 软件实体(模块.类.方法等)应该"对扩展开放.对修改关闭". 从定义上 ...