
MTK उपकरणों के लिए प्रमाणपत्र शोषण। MTK प्रमाणपत्र सत्यापन प्रक्रिया में एक तर्क दोष है। CVE-2023-20696 के समान।
MTK उपकरणों के लिए प्रमाणपत्र शोषण। MTK प्रमाणपत्र सत्यापन प्रक्रिया में एक तर्क दोष है। CVE-2023-20696 के समान। जून में पैच किया जा सकता है।
यह परियोजना केवल अनुसंधान के लिए उपयोग की जाती है। सुनिश्चित करें कि आप इसका उपयोग करने से पहले अधिकृत हैं। अवैध उपयोग की अनुमति नहीं है। इस शोषण का उपयोग भुगतान सेवाएं प्रदान करने के लिए अनुमति नहीं है।
MTK उपकरणों के लिए, प्रीलोडर bl2_ext/lk/atf को सत्यापित करता है और फिर उस पर कूदता है।
ये छवियाँ ASN.1 प्रमाणपत्रों के साथ हस्ताक्षरित हैं।
लेकिन ASN.1 पार्सिंग प्रक्रिया में एक तर्क दोष है।
पुराने V5/V6 उपकरणों के लिए, प्रमाणपत्र सामग्री की पहचान bypass_mode 1 द्वारा की जाती है।
इस मोड में, कोई भी ऑब्जेक्ट प्रवेश करेगा।
इसलिए हम 0x3(बिट स्ट्रिंग) ऑब्जेक्ट के साथ एक नकली प्रमाणपत्र बना सकते हैं।
नकली प्रमाणपत्र अपरिवर्तित है। इसलिए यह सत्यापन पास कर सकता है।
असली प्रमाणपत्र नकली प्रमाणपत्र के नीचे है। और हम छवि हैश और छवि hdr हैश को असली प्रमाणपत्र की शुरुआत में रख सकते हैं।
नए V6 उपकरणों के लिए, प्रमाणपत्र सामग्री की पहचान bypass_mode 0 द्वारा की जाती है।
इस मोड में, 0x30 को छोड़कर कोई भी ऑब्जेक्ट छोड़ दिया जाएगा।
इसलिए हम छवि हैश और छवि hdr हैश को प्रमाणपत्र की शुरुआत में रख सकते हैं।
फिर अन्य चीजों को अपरिवर्तित रखें।
फिर हम छवि सामग्री को संशोधित कर सकते हैं।
इसलिए हम EL3 नियंत्रण प्राप्त करते हैं।
आपको lk या atf के सत्यापन को हटाने के लिए BL2_EXT को पैच करना होगा।
और फिर lk_main_dtb के सत्यापन को हटाने के लिए LK को पैच करें (अन्यथा यह क्रैश हो जाएगा)
और आपको लॉक बैक या कुछ क्रैश से बचने के लिए set_lock_state सहित सभी बूटलोडर लॉक को हटाने के लिए LK को पैच करना होगा।
python parse-part-img.py [the original image file] --split -o out
तब आप अलग-अलग छवियाँ देख सकते हैं (जैसे lk, bl2_ext, lk_main_dtb, aee)
python parse_preloader.py [preloader image]
आप इस स्क्रिप्ट के माध्यम से lk/bl2_ext लोड पता प्राप्त कर सकते हैं।
पैच करने के बाद नए v6 उपकरणों के लिए python sign_mtk_cert.py [single image file] -w पुराने v6 उपकरणों/v5 उपकरणों के लिए python sign_mtk_cert.py [single image file] -w --legacy
फिर नई हस्ताक्षरित छवि को वापस सम्मिलित करें
python build-part-img.py replace [original image file] --name [the single image name you want to insert back] -- file [the new signed single image]