
armv7 (MSM8960) के लिए baton drop (CVE-2022-21894) का एक कार्यान्वयन
यह देखते हुए कि policyhax (उर्फ golden key) का फिक्स वास्तव में Qualcomm सिस्टम पर काम करता है, मैंने baton drop को MSM8960 पर पोर्ट करने के लिए एक काम करने वाला, लेकिन पुर्जों के लिए बेचा गया Dell XPS 10 उठाया।
यह रहा परिणाम।
image.7z को अपने GPT fat32-फॉर्मेटेड USB डिवाइस में एक्सट्रेक्ट करें, अपने अहस्ताक्षरित EFI बूट एप्लिकेशन को \boot.efi में कॉपी करें, अपने MSM8960 Windows RT डिवाइस को इसके साथ बूट करें, आनंद लें।
सभी payload स्रोत (जिसमें MS CRT से divide.obj शामिल है, जिसकी stage2 को आवश्यकता है) शामिल हैं। बिल्ड करने के लिए, MSVC क्रॉस-कंपाइलर कमांड प्रॉम्प्ट का उपयोग करें। सेल्फ-साइन्ड सर्टिफिकेट बनाने के लिए make_cert.bat चलाएँ, stage1 बनाने के लिए build_mcupdate.bat, stage2 बनाने के लिए build_stage2.bat, और hello world boot.efi बनाने के लिए build_boot.bat चलाएँ।
0xA000_0000 पर है। अगर आप baton drop को केवल UMCI जेलब्रेक के लिए उपयोग करना चाहते हैं तो इसे शायद बाद में सेट किया जा सकता है (baton drop का शोषण करते समय, एडवांस्ड ऑप्शन्स मेनू में nointegritychecks विकल्प दिखाई देता है); याद रखें कि win8.x पर शोषण के लिए आवश्यक है कि osdevice एक BitLocker-एन्क्रिप्टेड वॉल्यूम हो जिसमें key flag bit 0 सेट हो (इसे मैन्युअली सेट किया जा सकता है जैसा कि payload.vhd के मामले में है, लेकिन आमतौर पर इंटीग्रिटी वैलिडेशन के लिए secure boot के साथ TPM द्वारा सील किए गए VMK के लिए सेट होता है)।hal.dll को पैच किया गया है ताकि इसके imports में mcupdate.dll जुड़ जाए, और इसे सेल्फ-साइन्ड किया गया है।mcupdate.dll efiesp:\stage2.dll और efiesp:\boot.efi लोड करता है, stage2 को आवश्यक सभी पॉइंटर्स प्राप्त करता है और stage2 एंट्रीपॉइंट को कॉल करता है।BlpArchSwitchContext को कॉल करता है