macOS Memory Dumping
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)
स्वैप फ़ाइलें, जैसे कि /private/var/vm/swapfile0
, भौतिक मेमोरी भर जाने पर कैश के रूप में कार्य करती हैं। जब भौतिक मेमोरी में और जगह नहीं होती है, तो इसका डेटा एक स्वैप फ़ाइल में स्थानांतरित किया जाता है और फिर आवश्यकतानुसार भौतिक मेमोरी में वापस लाया जाता है। कई स्वैप फ़ाइलें हो सकती हैं, जिनके नाम जैसे swapfile0, swapfile1, आदि हो सकते हैं।
फ़ाइल जो /private/var/vm/sleepimage
पर स्थित है, हाइबरनेशन मोड के दौरान महत्वपूर्ण है। जब OS X हाइबरनेट करता है, तो मेमोरी से डेटा इस फ़ाइल में संग्रहीत किया जाता है। कंप्यूटर को जगाने पर, सिस्टम इस फ़ाइल से मेमोरी डेटा पुनः प्राप्त करता है, जिससे उपयोगकर्ता वहीं से जारी रख सकता है जहाँ उसने छोड़ा था।
यह ध्यान देने योग्य है कि आधुनिक MacOS सिस्टम पर, यह फ़ाइल आमतौर पर सुरक्षा कारणों से एन्क्रिप्टेड होती है, जिससे पुनर्प्राप्ति कठिन हो जाती है।
यह जांचने के लिए कि क्या sleepimage के लिए एन्क्रिप्शन सक्षम है, कमांड sysctl vm.swapusage
चलाया जा सकता है। यह दिखाएगा कि क्या फ़ाइल एन्क्रिप्टेड है।
MacOS सिस्टम में एक और महत्वपूर्ण मेमोरी-संबंधित फ़ाइल मेमोरी प्रेशर लॉग है। ये लॉग /var/log
में स्थित होते हैं और सिस्टम की मेमोरी उपयोग और प्रेशर घटनाओं के बारे में विस्तृत जानकारी प्रदान करते हैं। ये मेमोरी-संबंधित समस्याओं का निदान करने या यह समझने के लिए विशेष रूप से उपयोगी हो सकते हैं कि सिस्टम समय के साथ मेमोरी का प्रबंधन कैसे करता है।
MacOS मशीन में मेमोरी को डंप करने के लिए आप osxpmem का उपयोग कर सकते हैं।
Note: निम्नलिखित निर्देश केवल Intel आर्किटेक्चर वाले Macs के लिए काम करेंगे। यह उपकरण अब आर्काइव किया गया है और अंतिम रिलीज 2017 में थी। नीचे दिए गए निर्देशों का उपयोग करके डाउनलोड की गई बाइनरी Intel चिप्स को लक्षित करती है क्योंकि 2017 में Apple Silicon नहीं था। यह arm64 आर्किटेक्चर के लिए बाइनरी को संकलित करना संभव हो सकता है लेकिन आपको स्वयं प्रयास करना होगा।
यदि आप यह त्रुटि पाते हैं: osxpmem.app/MacPmem.kext लोड करने में विफल - (libkern/kext) प्रमाणीकरण विफलता (फाइल स्वामित्व/अनुमतियाँ); त्रुटियों के लिए सिस्टम/कर्नेल लॉग की जांच करें या kextutil(8) का प्रयास करें
आप इसे ठीक कर सकते हैं:
अन्य त्रुटियाँ को kext के लोड की अनुमति देकर ठीक किया जा सकता है "Security & Privacy --> General" में, बस अनुमति दें।
आप इस oneliner का उपयोग करके एप्लिकेशन डाउनलोड कर सकते हैं, kext लोड कर सकते हैं और मेमोरी डंप कर सकते हैं:
सीखें और AWS हैकिंग का अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) सीखें और GCP हैकिंग का अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)