macOS Installers Abuse
Pkg मूलभूत जानकारी
एक macOS इंस्टॉलर पैकेज (जिसे .pkg
फ़ाइल के रूप में भी जाना जाता है) एक फ़ाइल प्रारूप है जिसका macOS द्वारा सॉफ़्टवेयर वितरित करने के लिए उपयोग किया जाता है। ये फ़ाइलें एक डिस्ट्रीब्यूशन (xml): कस्टमाइज़ेशन (शीर्षक, स्वागत पाठ...) और स्क्रिप्ट/स्थापना जांचें, **पैकेज फ़ाइल स्वयं एक आर्काइव है जो एक विशिष्ट सॉफ़्टवेयर को स्थापित और सही रूप से चलाने के लिए सब कुछ जिसकी आवश्यकता है वह समेटती है।
पैकेज फ़ाइल स्वयं एक फ़ाइलों और निर्देशिकाओं का एक वर्गीकरण है जो लक्ष्य वाले कंप्यूटर पर स्थापित किए जाएंगे। यह उन्हें सेटअप कॉन्फ़िगरेशन फ़ाइलें सेट करने या पुराने संस्करणों को साफ़ करने जैसे कार्यों को करने के लिए स्क्रिप्ट भी शामिल कर सकता है।
वर्गीकरण
डिस्ट्रीब्यूशन (xml): कस्टमाइज़ेशन (शीर्षक, स्वागत पाठ...) और स्क्रिप्ट/स्थापना जांचें
पैकेज जानकारी (xml): जानकारी, स्थापना आवश्यकताएँ, स्थापना स्थान, स्क्रिप्ट के पथ चलाने के लिए
सामग्री का बिल (bom): फ़ाइलों की सूची जो स्थापित, अपडेट या हटाई जाएगी और फ़ाइल अनुमतियाँ
पेलोड (CPIO आर्काइव gzip संपीड़ित):
install-location
में स्थापित करने के लिए फ़ाइलेंस्क्रिप्ट (CPIO आर्काइव gzip संपीड़ित): प्री और पोस्ट स्थापना स्क्रिप्ट और अधिक संसाधन निष्कर्षित करने के लिए एक अस्थायी निर्देशिका में क्रियान्वयन।
डीकंप्रेस
DMG मूलभूत जानकारी
DMG फ़ाइलें, या एप्पल डिस्क इमेजेस, एप्पल के macOS द्वारा उपयोग किया जाने वाला एक फ़ाइल प्रारूप है। एक DMG फ़ाइल मूल रूप से एक माउंट करने योग्य डिस्क इमेज है (यह अपनी फ़ाइल सिस्टम शामिल करता है) जो सामान्यत: संपीड़ित और कभी-कभी एन्क्रिप्टेड रॉ ब्लॉक डेटा को शामिल करता है। जब आप एक DMG फ़ाइल खोलते हैं, macOS उसे एक भौतिक डिस्क की तरह माउंट करता है, जिससे आप इसकी सामग्री तक पहुँच सकते हैं।
ध्यान दें कि .dmg
इंस्टॉलर समर्थित इतने सारे प्रारूप हैं कि इससे पहले कुछ में सुरक्षा गड़बड़ी होने के कारण कर्नेल कोड निष्पादन प्राप्त करने के लिए दुरुपयोग किया गया था।
वर्गीकरण
DMG फ़ाइल का वर्गीकरण सामग्री के आधार पर भिन्न हो सकता है। हालांकि, एप्लिकेशन DMGs के लिए, यह आमतौर पर इस संरचना का पालन करता है:
शीर्ष स्तर: यह डिस्क इमेज की जड़ है। यह आमतौर पर एप्लिकेशन और संभावित रूप से एप्लिकेशन्स फ़ोल्डर के लिंक को शामिल करता है।
एप्लिकेशन (.app): यह वास्तविक एप्लिकेशन है। macOS में, एक एप्लिकेशन आमतौर पर एक पैकेज होता है जिसमें एप्लिकेशन का निर्माण करने वाली कई व्यक्तिगत फ़ाइलें और फ़ोल्डर होते हैं।
एप्लिकेशन्स लिंक: यह macOS में एप्लिकेशन इंस्टॉल करने को आसान बनाने के लिए एप्लिकेशन्स फ़ोल्डर का एक शॉर्टकट है। इसका उद्देश्य यह है कि आप एप्लिकेशन इंस्टॉल करने के लिए .app फ़ाइल को इस शॉर्टकट पर खींच सकते हैं।
pkg दुरुपयोग के माध्यम से विशेषाधिकार
सार्वजनिक निर्देशिकाओं से निष्पादन
यदि कोई पूर्व या पोस्ट स्थापना स्क्रिप्ट उदाहरण के लिए /var/tmp/Installerutil
से निष्पादित हो रहा है, और हमलावर उस स्क्रिप्ट को नियंत्रित कर सकता है तो वह जब भी निष्पादित होता है वह विशेषाधिकार बढ़ा सकता है। या एक और समान उदाहरण:
AuthorizationExecuteWithPrivileges
यह एक सार्वजनिक फ़ंक्शन है जिसे कई इंस्टॉलर और अपडेटर्स रूट के रूप में कुछ निष्पादित करने के लिए कहेंगे। यह फ़ंक्शन फ़ाइल का पथ स्वीकार करता है जिसे निष्पादित करने के लिए पैरामीटर के रूप में, हालांकि, यदि कोई हमलावर इस फ़ाइल को संशोधित कर सकता है, तो वह अपने विशेषाधिकारों को बढ़ाने के लिए इसका दुरुपयोग कर सकता है।
माउंटिंग द्वारा निष्पादन
यदि कोई स्थापक /tmp/fixedname/bla/bla
में लिखता है, तो /tmp/fixedname
पर कोई मालिक नहीं के साथ एक माउंट बनाना संभव है, जिससे आप स्थापना प्रक्रिया का दुरुपयोग करने के लिए किसी भी फ़ाइल को संशोधित कर सकते हैं।
इसका एक उदाहरण है CVE-2021-26089 जिसने एक आवधिक स्क्रिप्ट को अधिकारी के रूप में निष्पादित करने के लिए सफलतापूर्वक अधिकलेखन किया। अधिक जानकारी के लिए इस टॉक को देखें: OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl
मैलवेयर के रूप में pkg
खाली पेलोड
केवल पूर्व और पोस्ट स्थापना स्क्रिप्ट के साथ एक .pkg
फ़ाइल उत्पन्न करना संभव है बिना किसी पेलोड के।
वितरण xml में JS
पैकेज के वितरण xml फ़ाइल में <script>
टैग जोड़ना संभव है और उस कोड को निष्पादित किया जाएगा और यह system.run
का उपयोग करके कमांड्स निष्पादित कर सकता है:
संदर्भ
Last updated