本文收集網上android cve的一些分析供後續學習:php
Android uncovers master-key:android1.6—4.0html
因爲ZIP格式容許存在兩個或以上徹底相同的路徑,而安卓系統沒有考慮這種場景。在該狀況下,android包管理器校驗簽名取的是最後一個文件的hash,而運行APK加載的dex文件倒是zip的第一個dex文件。 參考資料:看雪zmworm http://www.kanxue.com/bbs/showthread.php?t=175129
launchAnyWhere: Activity組件權限繞過漏洞解析:—android4.4java
// 此漏洞利用AccountManagerService去啓動任意未導出的Activity,突破進程間組件訪問隔離的限制 // 背景:appA擁有帳號類型,可被添加到android中 // 一、在setting中添加appA帳號,會在setting進程中打開appA傳遞進來的intent(正常是appA的註冊activi) // 二、惡意appA會傳遞任意的activity,因爲是在setting(system權限)中執行,因此activity會被建立 // 修補: // 一、androiod4.4中/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java // Session.onResult函數中判斷intent中的active的SIGNATURE是否和appA相同 // 若不一樣則不容許建立intent包含的activity // 二、在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.1linux
// 此漏洞的成因是校驗證書沒對證書內容進行校驗,而只是比對證書的字符串 // 參考研究: // 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.xandroid
// 此漏洞的也是在添加帳戶時被會被利用: // 添加帳戶會新建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內核漏洞git
// 如下轉自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
待續github