macOS PID Reuse
Last updated
Last updated
सीखें और अभ्यास करें AWS हैकिंग:HackTricks Training AWS Red Team Expert (ARTE) सीखें और अभ्यास करें GCP हैकिंग: HackTricks Training GCP Red Team Expert (GRTE)
जब एक macOS XPC सेवा कॉल की गई प्रक्रिया की जांच PID के आधार पर करती है और ऑडिट टोकन के आधार पर नहीं, तो यह PID पुन: उपयोग हमले के लिए संवेदनशील होती है। यह हमला एक रेस कंडीशन पर आधारित है जहां एक शोषण XPC सेवा को संदेश भेजने जा रहा है कार्यात्मकता का दुरुपयोग करते हुए और उसके बाद posix_spawn(NULL, target_binary, NULL, &attr, target_argv, environ)
को अनुमत बाइनरी के साथ निष्पादित करता है।
यह फ़ंक्शन अनुमत बाइनरी को PID का मालिक बनाएगा लेकिन दुष्ट XPC संदेश पहले ही भेजा जा चुका होगा। इसलिए, यदि XPC सेवा PID का उपयोग प्रेषक को प्रमाणित करने के लिए करती है और इसे posix_spawn
के निष्पादन के बाद जांचती है, तो यह सोचेगी कि यह एक अधिकृत प्रक्रिया से आया है।
यदि आप फ़ंक्शन shouldAcceptNewConnection
या इसे कॉल करने वाले फ़ंक्शन को पाते हैं जो processIdentifier
को कॉल करता है और auditToken
को कॉल नहीं करता है। यह अत्यधिक संभावित है कि यह प्रक्रिया PID की जांच कर रहा है और ऑडिट टोकन की नहीं।
जैसे कि इस छवि में उदाहरण के लिए (संदर्भ से लिया गया):
इस उदाहरण शोषण की जांच करें (फिर से, संदर्भ से लिया गया) ताकि शोषण के 2 भागों को देखा जा सके:
एक जो कई फोर्क उत्पन्न करता है
प्रत्येक फोर्क संदेश भेजने के तुरंत बाद posix_spawn
को निष्पादित करते हुए XPC सेवा को पेलोड भेजेगा।
शोषण के काम करने के लिए यह महत्वपूर्ण है कि export`` ``
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
या शोषण के अंदर डालें:
पहला विकल्प NSTasks
का उपयोग करते हुए और बच्चों को लॉन्च करने के लिए तर्क RC का शोषण करने के लिए
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)