
CVE-2023-38571 के लिए एक्सप्लॉइट
macOS Music और TV एक असुरक्षित नाम परिवर्तन करते हैं जिसके परिणामस्वरूप उपयोगकर्ता के TCC.db पर पूर्ण नियंत्रण प्राप्त करके FDA प्राप्त होता है।
मैंने इस बग को प्रत्येक ऐप के लिए अलग-अलग टिकटों में रिपोर्ट किया, यदि लागू हो तो विलय करने में संकोच न करें।
अंतर्निहित समस्या यह है कि इन ऐप्स के पास FDA है लेकिन वे अपने फ़ाइल संचालन को स्वच्छ करने में विफल रहते हैं।
Music और TV इस संबंध में लगभग समान हैं, केवल पथ अलग-अलग हैं। मैं यहाँ से Music को एक उदाहरण के रूप में उपयोग कर रहा हूँ। TV के लिए कृपया शोषण कोड देखें, यह बहुत सीधा है।
Music में एक विशेष फ़ोल्डर का उपयोग करके उपयोगकर्ता की लाइब्रेरी में फ़ाइलों को कॉपी करने की कार्यक्षमता है, जिसमें उपयोगकर्ता फ़ाइलें "ड्रॉप" कर सकता है।
एक उपयोगकर्ता बस ~/Music/Music/Media.localized/Automatically Add to Music.localized/ में एक फ़ाइल बना सकता है
Music इस फ़ाइल को लेगा और ~/Music/Music/Media.localized/Automatically Add to Music.localized/Not Added.localized में एक असुरक्षित नाम परिवर्तन करेगा।
यदि हम एक वैध TCC.db (जो शोषण उत्पन्न करता है) का उपयोग करते हैं, तो यह "Not Added.localized" फ़ोल्डर में कॉपी हो जाएगा क्योंकि यह एक मीडिया फ़ाइल नहीं है। यह बहुत सहायक है, क्योंकि हम एक साधारण सिमलिंक रेस का उपयोग करके इस नाम परिवर्तन को TCC.db के वास्तविक स्थान पर रीडायरेक्ट कर सकते हैं।
शोषण तकनीकी रूप से एक रेस कंडीशन है, हालांकि यह इतना विश्वसनीय है कि मैंने इसे पुनः प्रयास करने के लिए भी लागू नहीं किया क्योंकि यह हमेशा पहले प्रयास में सफल होता है।
Music के लिए उपयोग:
DEBUG=1 ./librarian.py 1
TV के लिए उपयोग:
DEBUG=1 ./librarian.py 2
परीक्षणों के बीच tcc db को रीसेट करने के लिए:
launchctl stop com.apple.tccd launchctl start com.apple.tccd sleep 1 tccutil reset All