
CVE-2023-30367 के लिए मूल PoC
मल्टी-रिमोट नेक्स्ट जनरेशन कनेक्शन मैनेजर (mRemoteNG) एक मुफ्त सॉफ्टवेयर है जो उपयोगकर्ताओं को सिस्टम से दूरस्थ रूप से कनेक्ट करने के लिए बहु-प्रोटोकॉल कनेक्शन कॉन्फ़िगरेशन को संग्रहीत और प्रबंधित करने में सक्षम बनाता है।
mRemoteNG कॉन्फ़िगरेशन फ़ाइलों को डिस्क पर एन्क्रिप्टेड अवस्था में संग्रहीत किया जा सकता है। mRemoteNG संस्करण <= v1.76.20 और <= 1.77.3-dev एप्लिकेशन स्टार्ट-अप पर कॉन्फ़िगरेशन फ़ाइलों को (यदि आवश्यक हो तो उन्हें डिक्रिप्ट करने के बाद) सादे टेक्स्ट में मेमोरी में लोड करता है, भले ही अभी तक कोई कनेक्शन स्थापित न हुआ हो। यह हमलावरों को मेमोरी डंप के माध्यम से कॉन्फ़िगरेशन फ़ाइलों की सामग्री को सादे टेक्स्ट में एक्सेस करने की अनुमति देता है और इस प्रकार उपयोगकर्ता क्रेडेंशियल्स से समझौता करता है जब कोई कस्टम पासवर्ड एन्क्रिप्शन कुंजी सेट नहीं की गई हो। यह पहले से डिक्रिप्ट किए गए कॉन्फ़िगरेशन को मेमोरी से डंप करके कनेक्शन कॉन्फ़िगरेशन फ़ाइल एन्क्रिप्शन सेटिंग को भी बायपास करता है।
इस कमजोरी को CVE-2023-30367 निर्दिष्ट किया गया था।
mRemoteNG 1.77.3.1784-NB और mRemoteNG 1.76.20 के साथ विंडोज 11 (जर्मन) पर परीक्षण किया गया।
खोज की पुष्टि mRemoteNG के डेवलपर्स में से एक, दिमित्रिज गोरोदेकिज ने यहाँ की। फिक्स अभी भी विकास में है। तेज़ प्रतिक्रिया और सहयोग के लिए दिमित्रिज गोरोदेकिज को फिर से धन्यवाद! उम्मीद है कि यह जल्द ही ठीक हो जाएगा!
1. मजबूत (लंबे) कॉन्फ़िगरेशन पासवर्ड एन्क्रिप्शन पासवर्ड/कुंजियाँ का उपयोग करें:
मेमोरी डंप की स्थिति में, एक हमलावर को कॉन्फ़िगरेशन फ़ाइलों तक सादे टेक्स्ट में पहुंच प्राप्त होगी, लेकिन फिर भी उसे पासवर्ड एन्क्रिप्शन कुंजी को ब्रूटफोर्स करना होगा।
दुर्भाग्य से, कनेक्शन फ़ाइल एन्क्रिप्शन विकल्प को सक्षम करना इस हमले को रोकने में मदद नहीं करता है क्योंकि mRemoteNG कनेक्शन कॉन्फ़िगरेशन फ़ाइलें रनटाइम पर डिक्रिप्ट हो जाती हैं।
2. जब कोई फिक्स जारी किया जाए तो mRemoteNG को v1.77.3.1784-NB से अधिक संस्करण में अपडेट करें।
3. जैसे mRemoteNGDumper.exe के दुर्भावनापूर्ण निष्पादन को रोकने के लिए, एप्लिकेशन व्हाइटलिस्टिंग लागू की जानी चाहिए।
कृपया ध्यान रखें कि कॉन्फ़िगरेशन पासवर्ड एन्क्रिप्शन और कनेक्शन फ़ाइल एन्क्रिप्शन अलग-अलग सेटिंग्स हैं। कॉन्फ़िगरेशन पासवर्ड एन्क्रिप्शन का उपयोग केवल कॉन्फ़िगरेशन फ़ाइल के भीतर पासवर्ड को एन्क्रिप्ट करने के लिए किया जाता है, जबकि कनेक्शन फ़ाइल एन्क्रिप्शन का उपयोग पूरी कॉन्फ़िगरेशन फ़ाइल को एन्क्रिप्ट करने के लिए किया जाता है।
यह एक्सप्लॉइट पहले से डिक्रिप्ट किए गए कॉन्फ़िगरेशन को मेमोरी से डंप करके कनेक्शन फ़ाइल एन्क्रिप्शन को बायपास करता है। इनमें अभी भी एन्क्रिप्टेड पासवर्ड होते हैं जिन्हें डिफ़ॉल्ट कुंजी mR3m से डिक्रिप्ट किया जा सकता है। यदि कोई कस्टम कॉन्फ़िगरेशन पासवर्ड एन्क्रिप्शन कुंजी/पासवर्ड सेट किया गया है, तो एक हमलावर को अभी भी कस्टम कुंजी का अनुमान लगाना होगा। (देखें mremoteng-decrypt.py अनुभाग)
git clone https://github.com/S1lkys/CVE-2023-30367-mRemoteNG-password-dumper.git या इसे GitHub से डाउनलोड करेंmRemoteNG-password-dumper में प्रवेश करेंइसे विंडोज़ पर मैन्युअल रूप से परीक्षण करने का सबसे आसान तरीका है कि विंडोज टास्क मैनेजर का उपयोग करके mRemoteNG प्रक्रिया पर राइट-क्लिक करके और "Create dump file" चुनकर एक प्रोसेस डंप बनाया जाए। डंप को VisualStudio Code में खोला जा सकता है। फिर अपने कॉन्फ़िगर किए गए कनेक्शन मानों के लिए खोजें।
mRemoteNG पासवर्ड डंपर एक सरल प्रूफ-ऑफ-कॉन्सेप्ट टूल है जिसका उपयोग mRemoteNG की मेमोरी से कॉन्फ़िगरेशन फ़ाइलों को डंप करने के लिए किया जाता है। लक्ष्य सिस्टम पर कोई कोड निष्पादन आवश्यक नहीं है, बस एक मेमोरी डंप पर्याप्त है। यह एक त्वरित POC है, इसलिए संभवतः बहुत विश्वसनीय और मजबूत नहीं है। यदि आपको कोई समस्या मिलती है और उसे ठीक करते हैं, तो कृपया एक पुल रिक्वेस्ट बनाएं।
कॉन्फ़िगरेशन फ़ाइलें वर्तमान में इस प्रकार हार्डकोडेड हैं: (\<Node)(.*)(?=\/>)\/>
mremoteng_decrypt.py का उपयोग करके डिक्रिप्ट/ब्रूटफोर्स करें (देखें mremoteng-decrypt.py अनुभाग)मैंने mremoteng-decrypt में एक ब्रूटफोर्स कार्यक्षमता जोड़ी (स्वीकृतियां देखें)।
इसका उपयोग कस्टम mRemoteNG कॉन्फ़िगरेशन/पासवर्ड एन्क्रिप्शन कुंजियों को ब्रूटफोर्स करने के लिए किया जा सकता है। यदि कोई कस्टम कुंजी कॉन्फ़िगर नहीं की गई है, तो स्क्रिप्ट डिफ़ॉल्ट कुंजी mR3m से कॉन्फ़िग को डिक्रिप्ट करेगी। इस स्क्रिप्ट का उपयोग कस्टम एन्क्रिप्शन पासवर्ड वाली कॉन्फ़िगरेशन फ़ाइलों को डिक्रिप्ट करने के लिए भी किया जा सकता है। यह भी देखें डेमो।

कस्टम एन्क्रिप्शन पासवर्ड 123 के साथ कॉन्फ़िगरेशन फ़ाइल डिक्रिप्ट करें: python3 mremoteng_decrypt.py -rf "C:\Users\mbzra\source\repos\mRemoteNG Dumper\dump\extracted_Configfile_mRemoteNG_0_09.07.2023.11.01_confCons.xml" -p 123
कस्टम एन्क्रिप्शन पासवर्ड 123 के साथ पासवर्ड स्ट्रिंग डिक्रिप्ट करें: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -p 123
बिना कस्टम एन्क्रिप्शन पासवर्ड के पासवर्ड स्ट्रिंग डिक्रिप्ट करें: python3 mremoteng_decrypt.py -s "yW0Ypq/cTcwfHwYxIiHgczcsIKU+jWlfnZBcTdKQImsMbBnP3SLv2h75Z7IAbkFOsD2YzBo2wGk2fhDLpRFH2y8="
ब्रूटफोर्स उपयोग: python3 mremoteng_decrypt.py -s "[extracted encrypted configuration password]" -b y -w [path to wordlist]
ब्रूटफोर्स उदाहरण: python3 mremoteng_decrypt.py -s "QHrcb7I0KHi6YLFXxv93jenrUmNj5qO30zTM9qXqRUd7ImVm5/ROU7CLQ5u7+7+iOiFrY2BtZSpJ8RrR3jV6LoE=" -b y -w .\wordli.txt
यह आपके खतरे के मॉडल पर निर्भर करता है। यदि आपका कंप्यूटर पहले से ही मैलवेयर से संक्रमित है जो आपके उपयोगकर्ता के विशेषाधिकारों के साथ पृष्ठभूमि में चल रहा है, तो यह खोज आपकी स्थिति को बहुत खराब नहीं करती है। हालाँकि, मैलवेयर के लिए चुपके से रहना और एंटीवायरस से बचना आसान हो सकता है, क्योंकि KeeTheft या KeeFarce के विपरीत, किसी प्रक्रिया इंजेक्शन या अन्य प्रकार के कोड निष्पादन की आवश्यकता नहीं है।
यदि आपको उचित संदेह है कि कोई आपके कंप्यूटर तक पहुँच प्राप्त कर सकता है और फोरेंसिक विश्लेषण कर सकता है, तो यह बुरा हो सकता है।
यदि आप एक मजबूत पासवर्ड के साथ कॉन्फ़िगरेशन फ़ाइल एन्क्रिप्शन का उपयोग करते हैं और आपका सिस्टम साफ है, तो आपको ठीक होना चाहिए। इस खोज के साथ अकेले कोई भी इंटरनेट पर दूरस्थ रूप से आपके पासवर्ड चुरा नहीं सकता।
