Android 设备锁屏绕过漏洞利用 (CVE-2022–20006)
共 2066字,需浏览 5分钟
·
2022-06-30 16:25
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 |
背景介绍:
在过去的几年中,Android 设备有多个 CVE 被发现,这些发现使人们能够绕过屏幕锁定从而获得未经授权的访问或权限提升。例如,CVE-2015–3860 是一个早年间发现的 CVE,它利用紧急拨号和摄像头进程在锁定屏幕的 PIN 上进行类似于缓冲区溢出场景,缓冲区溢出使屏幕锁定相关联的一个或多个进程崩溃致使设备所有者的主屏幕被暴露,有关 CVE-2015–3860 的更多信息,可自行搜索了解。
在概念上,CVE-2022–20006 与之前的锁屏绕过 CVE 类似,因为它试图在设备处于锁定状态时,利用或强制访问来自与锁屏进程没有直接关系进程的意外行为。CVE-2022–20006 利用的进程与 Android 操作系统的多用户功能有关,如果设备打算由几个人共享,Android 的多用户功能在正常情况下很有用,每个用户都可以在设备上拥有自己的配置文件,以及针对独特需求或角色量身定制的应用程序和配置,但是,多用户功能在用户配置文件之间转换时有一些有趣的行为,用户转换是 CVE-2022–20006 利用的关键之处。
CVE-2022–20006 的先决条件:
要满足利用 CVE-2022–20006 必须符合以下要求:
对设备的物理访问
安全补丁需早于 2022 年 6 月 5 日的 Android 版本 10、11 或 12
通过 System>Accessibility>System Controls 进行 3 键导航
必须通过设置>屏幕锁定为目标用户配置文件启用屏幕锁定,且无屏幕锁定设置以外的其它任何内容
通过设置>系统>多用户启用多用户功能,确保至少定义启用了两个用户,一位用户必须配置屏幕锁定,为了更容易利用,建议第二个用户是一个没有锁屏的简单访客帐户
注意:作者已经在 Google Pixel XL、Pixel 2 和 Pixel 3 设备以及一些运行 Android 10 和 Android 11 的模拟设备上亲自测试过这个 CVE,该CVE 似乎更容易在具有较低规格处理器和 RAM 的设备上执行,Google 已确认 CVE 适用于 Android 操作系统,而不适用于作者测试过的设备,话虽如此,结果可能会有所不同。
利用CVE-2022–20006:
假设满足以上先决条件,那么我们可以通过以下步骤开始利用多用户功能。
1、在锁定屏幕时,展开通知托盘并单击用户选择菜单图标
2、切换到可用的未锁定或访客用户配置文件
3、进入访客资料后,从通知托盘中打开用户选择菜单,如第一步中所做的那样,识别受锁屏功能保护的目标用户配置文件,但在下一步之前不要单击用户图标
4、单击目标用户并同时开始快速重复点击主页(Home)按钮,主页按钮的重复点击速度越快越好
屏幕将显示为“切换到用户”消息,但如果您启用了触觉反馈,您会感觉到设备在每次按下时都会振动,就好像设备仍在接收和处理输入一样,在过渡期间会有一个振动反馈停止的时刻,此时你可以停止按主页按钮
步骤 4 可能需要 2 或 3 次尝试才能发生锁屏绕过,每次尝试后,你可能会注意到输入和转换到目标用户配置文件的延迟增加,你可能还会注意到现在在锁定屏幕通知托盘中显示的敏感信息
如果成功,你将看到目标用户的主屏幕,并且能够在最终显示锁定屏幕前的有限时间(通常为 5-30 秒)内导航和访问该目标用户配置文件中的任何内容
虽然受限于 5-30 秒的访问窗口,但很难可以采取额外的行动来获得对先前受限用户配置文件的无限制访问,例如,可以更改目标用户的屏幕锁定设置、在目标用户配置文件下暂存和安装恶意 APK、启用开发者模式和 USB 调试、创建自己的管理员特权帐户等
CVE-2022–20006 的视频演示(科学访问):
https://youtube.com/shorts/SLj08iK_ygM
观察和结论:
CVE-2022–20006 是由于事件堆积在队列中,以便在 Android 系统 UI 的主线程上进行处理,此事件队列会在事件之间创建一种竞争条件,并阻碍重要的安全过程,例如与锁屏 Keyguard 相关的安全过程,如果没有优先级,事件会以处理器可以执行的速度尽快处理,并且不会像先进先出那样被处理,CPU 和 RAM 规格较低的设备会加剧此处理问题,从而导致更多可能未经授权的访问窗口。
Google 已在 2022 年 6 月的安全补丁中发布了针对特定锁定事件的优先级缓解措施,以防止这种情况发生,2022年6月安全补丁通过 Build SQ3A.220605.009.A1 和 SQ3A.220605.009.B1 部署,具体取决于设备型号,大家可在Android 2022 年 6 月安全公告中找到更新设备的补丁说明和说明。