macOS PID Reuse
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 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)