Android 設(shè)備鎖屏繞過漏洞利用 (CVE-2022–20006)
聲明:文章中涉及的程序(方法)可能帶有攻擊性,僅供安全研究與教學(xué)之用,讀者將其信息做其他用途,由用戶承擔(dān)全部法律及連帶責(zé)任,文章作者不承擔(dān)任何法律及連帶責(zé)任。 |
背景介紹:
在過去的幾年中,Android 設(shè)備有多個(gè) CVE 被發(fā)現(xiàn),這些發(fā)現(xiàn)使人們能夠繞過屏幕鎖定從而獲得未經(jīng)授權(quán)的訪問或權(quán)限提升。例如,CVE-2015–3860 是一個(gè)早年間發(fā)現(xiàn)的 CVE,它利用緊急撥號(hào)和攝像頭進(jìn)程在鎖定屏幕的 PIN 上進(jìn)行類似于緩沖區(qū)溢出場景,緩沖區(qū)溢出使屏幕鎖定相關(guān)聯(lián)的一個(gè)或多個(gè)進(jìn)程崩潰致使設(shè)備所有者的主屏幕被暴露,有關(guān) CVE-2015–3860 的更多信息,可自行搜索了解。
在概念上,CVE-2022–20006 與之前的鎖屏繞過 CVE 類似,因?yàn)樗噲D在設(shè)備處于鎖定狀態(tài)時(shí),利用或強(qiáng)制訪問來自與鎖屏進(jìn)程沒有直接關(guān)系進(jìn)程的意外行為。CVE-2022–20006 利用的進(jìn)程與 Android 操作系統(tǒng)的多用戶功能有關(guān),如果設(shè)備打算由幾個(gè)人共享,Android 的多用戶功能在正常情況下很有用,每個(gè)用戶都可以在設(shè)備上擁有自己的配置文件,以及針對(duì)獨(dú)特需求或角色量身定制的應(yīng)用程序和配置,但是,多用戶功能在用戶配置文件之間轉(zhuǎn)換時(shí)有一些有趣的行為,用戶轉(zhuǎn)換是 CVE-2022–20006 利用的關(guān)鍵之處。
CVE-2022–20006 的先決條件:
要滿足利用 CVE-2022–20006 必須符合以下要求:
對(duì)設(shè)備的物理訪問
安全補(bǔ)丁需早于 2022 年 6 月 5 日的 Android 版本 10、11 或 12
通過 System>Accessibility>System Controls 進(jìn)行 3 鍵導(dǎo)航
必須通過設(shè)置>屏幕鎖定為目標(biāo)用戶配置文件啟用屏幕鎖定,且無屏幕鎖定設(shè)置以外的其它任何內(nèi)容
通過設(shè)置>系統(tǒng)>多用戶啟用多用戶功能,確保至少定義啟用了兩個(gè)用戶,一位用戶必須配置屏幕鎖定,為了更容易利用,建議第二個(gè)用戶是一個(gè)沒有鎖屏的簡單訪客帳戶
注意:作者已經(jīng)在 Google Pixel XL、Pixel 2 和 Pixel 3 設(shè)備以及一些運(yùn)行 Android 10 和 Android 11 的模擬設(shè)備上親自測試過這個(gè) CVE,該CVE 似乎更容易在具有較低規(guī)格處理器和 RAM 的設(shè)備上執(zhí)行,Google 已確認(rèn) CVE 適用于 Android 操作系統(tǒng),而不適用于作者測試過的設(shè)備,話雖如此,結(jié)果可能會(huì)有所不同。
利用CVE-2022–20006:
假設(shè)滿足以上先決條件,那么我們可以通過以下步驟開始利用多用戶功能。
1、在鎖定屏幕時(shí),展開通知托盤并單擊用戶選擇菜單圖標(biāo)

2、切換到可用的未鎖定或訪客用戶配置文件

3、進(jìn)入訪客資料后,從通知托盤中打開用戶選擇菜單,如第一步中所做的那樣,識(shí)別受鎖屏功能保護(hù)的目標(biāo)用戶配置文件,但在下一步之前不要單擊用戶圖標(biāo)

4、單擊目標(biāo)用戶并同時(shí)開始快速重復(fù)點(diǎn)擊主頁(Home)按鈕,主頁按鈕的重復(fù)點(diǎn)擊速度越快越好

屏幕將顯示為“切換到用戶”消息,但如果您啟用了觸覺反饋,您會(huì)感覺到設(shè)備在每次按下時(shí)都會(huì)振動(dòng),就好像設(shè)備仍在接收和處理輸入一樣,在過渡期間會(huì)有一個(gè)振動(dòng)反饋停止的時(shí)刻,此時(shí)你可以停止按主頁按鈕
步驟 4 可能需要 2 或 3 次嘗試才能發(fā)生鎖屏繞過,每次嘗試后,你可能會(huì)注意到輸入和轉(zhuǎn)換到目標(biāo)用戶配置文件的延遲增加,你可能還會(huì)注意到現(xiàn)在在鎖定屏幕通知托盤中顯示的敏感信息
如果成功,你將看到目標(biāo)用戶的主屏幕,并且能夠在最終顯示鎖定屏幕前的有限時(shí)間(通常為 5-30 秒)內(nèi)導(dǎo)航和訪問該目標(biāo)用戶配置文件中的任何內(nèi)容
雖然受限于 5-30 秒的訪問窗口,但很難可以采取額外的行動(dòng)來獲得對(duì)先前受限用戶配置文件的無限制訪問,例如,可以更改目標(biāo)用戶的屏幕鎖定設(shè)置、在目標(biāo)用戶配置文件下暫存和安裝惡意 APK、啟用開發(fā)者模式和 USB 調(diào)試、創(chuàng)建自己的管理員特權(quán)帳戶等
CVE-2022–20006 的視頻演示(科學(xué)訪問):
https://youtube.com/shorts/SLj08iK_ygM
觀察和結(jié)論:
CVE-2022–20006 是由于事件堆積在隊(duì)列中,以便在 Android 系統(tǒng) UI 的主線程上進(jìn)行處理,此事件隊(duì)列會(huì)在事件之間創(chuàng)建一種競爭條件,并阻礙重要的安全過程,例如與鎖屏 Keyguard 相關(guān)的安全過程,如果沒有優(yōu)先級(jí),事件會(huì)以處理器可以執(zhí)行的速度盡快處理,并且不會(huì)像先進(jìn)先出那樣被處理,CPU 和 RAM 規(guī)格較低的設(shè)備會(huì)加劇此處理問題,從而導(dǎo)致更多可能未經(jīng)授權(quán)的訪問窗口。
Google 已在 2022 年 6 月的安全補(bǔ)丁中發(fā)布了針對(duì)特定鎖定事件的優(yōu)先級(jí)緩解措施,以防止這種情況發(fā)生,2022年6月安全補(bǔ)丁通過 Build SQ3A.220605.009.A1 和 SQ3A.220605.009.B1 部署,具體取決于設(shè)備型號(hào),大家可在Android 2022 年 6 月安全公告中找到更新設(shè)備的補(bǔ)丁說明和說明。
