macOS Installers Abuse
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
macOS का इंस्टॉलर पैकेज (जिसे .pkg
फ़ाइल के रूप में भी जाना जाता है) एक फ़ाइल प्रारूप है जिसका उपयोग macOS सॉफ़्टवेयर वितरित करने के लिए करता है। ये फ़ाइलें एक डिब्बे की तरह होती हैं जिसमें सॉफ़्टवेयर के सही ढंग से स्थापित और चलाने के लिए आवश्यक सभी चीजें होती हैं।
पैकेज फ़ाइल स्वयं एक संग्रह है जो फाइलों और निर्देशिकाओं की एक पदानुक्रम को रखता है जो लक्षित कंप्यूटर पर स्थापित की जाएंगी। इसमें स्क्रिप्ट भी शामिल हो सकती हैं जो स्थापना से पहले और बाद में कार्य करने के लिए होती हैं, जैसे कि कॉन्फ़िगरेशन फ़ाइलों को सेट करना या सॉफ़्टवेयर के पुराने संस्करणों को साफ़ करना।
Distribution (xml): कस्टमाइज़ेशन (शीर्षक, स्वागत पाठ…) और स्क्रिप्ट/स्थापना जांच
PackageInfo (xml): जानकारी, स्थापना आवश्यकताएँ, स्थापना स्थान, चलाने के लिए स्क्रिप्ट के पथ
Bill of materials (bom): फ़ाइलों की सूची जो स्थापित, अपडेट या हटा दी जाएंगी फ़ाइल अनुमतियों के साथ
Payload (CPIO archive gzip compresses): PackageInfo से install-location
में स्थापित करने के लिए फ़ाइलें
Scripts (CPIO archive gzip compressed): पूर्व और पश्चात स्थापना स्क्रिप्ट और निष्पादन के लिए अस्थायी निर्देशिका में निकाली गई अधिक संसाधन।
In order to visualize the contents of the installer without decompressing it manually you can also use the free tool Suspicious Package.
DMG फ़ाइलें, या Apple Disk Images, एक फ़ाइल प्रारूप हैं जो Apple के macOS द्वारा डिस्क इमेज के लिए उपयोग किया जाता है। एक DMG फ़ाइल मूल रूप से एक माउंट करने योग्य डिस्क इमेज है (इसमें अपना खुद का फ़ाइल सिस्टम होता है) जिसमें कच्चा ब्लॉक डेटा होता है जो आमतौर पर संकुचित और कभी-कभी एन्क्रिप्टेड होता है। जब आप एक DMG फ़ाइल खोलते हैं, तो macOS इसे एक भौतिक डिस्क की तरह माउंट करता है, जिससे आप इसकी सामग्री तक पहुँच सकते हैं।
Note that .dmg
installers support so many formats that in the past some of them containing vulnerabilities were abused to obtain kernel code execution.
The hierarchy of a DMG file can be different based on the content. However, for application DMGs, it usually follows this structure:
Top Level: यह डिस्क इमेज की जड़ है। इसमें अक्सर एप्लिकेशन और संभवतः Applications फ़ोल्डर का एक लिंक होता है।
Application (.app): यह वास्तविक एप्लिकेशन है। macOS में, एक एप्लिकेशन आमतौर पर एक पैकेज होता है जिसमें कई व्यक्तिगत फ़ाइलें और फ़ोल्डर होते हैं जो एप्लिकेशन बनाते हैं।
Applications Link: यह macOS में Applications फ़ोल्डर के लिए एक शॉर्टकट है। इसका उद्देश्य आपको एप्लिकेशन स्थापित करने में आसानी प्रदान करना है। आप एप्लिकेशन स्थापित करने के लिए .app फ़ाइल को इस शॉर्टकट पर खींच सकते हैं।
If a pre or post installation script is for example executing from /var/tmp/Installerutil
, and attacker could control that script so he escalate privileges whenever it's executed. Or another similar example:
This is a public function that several installers and updaters will call to execute something as root. This function accepts the path of the file to execute as parameter, however, if an attacker could modify this file, he will be able to abuse its execution with root to escalate privileges.
For more info check this talk: https://www.youtube.com/watch?v=lTOItyjTTkw
यदि एक इंस्टॉलर /tmp/fixedname/bla/bla
में लिखता है, तो आप /tmp/fixedname
पर कोई मालिक नहीं होने के साथ एक माउंट बना सकते हैं ताकि आप इंस्टॉलेशन के दौरान किसी भी फ़ाइल को संशोधित कर सकें और इंस्टॉलेशन प्रक्रिया का दुरुपयोग कर सकें।
इसका एक उदाहरण CVE-2021-26089 है जिसने एक आवधिक स्क्रिप्ट को ओवरराइट करने में सफलता प्राप्त की ताकि रूट के रूप में निष्पादन प्राप्त किया जा सके। अधिक जानकारी के लिए इस वार्ता को देखें: OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl
यह केवल .pkg
फ़ाइल को पूर्व और पश्चात-स्थापना स्क्रिप्ट के साथ उत्पन्न करना संभव है, जिसमें स्क्रिप्ट के अंदर केवल मैलवेयर होता है।
यह पैकेज के distribution xml फ़ाइल में <script>
टैग जोड़ना संभव है और वह कोड निष्पादित होगा और यह system.run
का उपयोग करके कमांड निष्पादित कर सकता है:
दुष्ट इंस्टॉलर जो स्क्रिप्ट और dist.xml के अंदर JS कोड का उपयोग करता है
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)