zoukankan      html  css  js  c++  java
  • 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
    View Code

      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
    View Code

       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目录下
    View Code

      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
    // 改漏洞资料也收集到为知了
    View Code

       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
    View Code

    待续

  • 相关阅读:
    关于秒杀的系统架构优化思路
    如何设计一个秒杀系统
    RabittMQ实践(二): RabbitMQ 与spring、springmvc框架集成
    RabittMQ实践(一): RabbitMQ的安装、启动
    Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
    Linux 网络 I/O 模型简介(图文)
    Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
    Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
    Java 网络编程(四) InetAddress类
    Java 网络编程(三) 创建和使用URL访问网络上的资源
  • 原文地址:https://www.cnblogs.com/vendanner/p/5100025.html
Copyright © 2011-2022 走看看