
ETS5 Password Recovery Tool CVE-2021-36799 के लिए एक PoC है
क्या आप अपने एक ETS5 प्रोजेक्ट का पासवर्ड भूल गए हैं और अब KNX स्थापना के कॉन्फ़िगरेशन तक नहीं पहुँच सकते? ETS5 पासवर्ड रिकवरी टूल आपको ETS5 के प्रोजेक्ट स्टोर में सहेजे गए प्रोजेक्ट पासवर्ड और अन्य रहस्यों को पुनर्प्राप्त करने की अनुमति देता है। यह संभव है क्योंकि ETS5 में एक महत्वपूर्ण डिज़ाइन दोष है, यह प्रोजेक्ट जानकारी को एन्क्रिप्ट करने के लिए एक हार्ड-कोडेड पासवर्ड और सॉल्ट का उपयोग करता है (CVE-2021-36799)।
स्रोत कोड में क्रिप्टोग्राफ़िक रहस्यों को संग्रहीत करना अनुचित है क्योंकि उन्हें सॉफ़्टवेयर के रिवर्स इंजीनियरिंग द्वारा पुनर्प्राप्त किया जा सकता है, इस प्रकार जानकारी को स्पष्ट पाठ के रूप में संग्रहीत करने की तुलना में थोड़ी अधिक सुरक्षा प्रदान करता है। यह KNX स्थापनाओं की सुरक्षा के लिए खतरा पैदा कर सकता है। यदि कोई हमलावर प्रोजेक्ट स्टोर में फाइलों तक पहुँच प्राप्त करने में सक्षम है, तो वे प्रोजेक्ट पासवर्ड जाने बिना भी उन्हें डिक्रिप्ट कर सकते हैं। इसमें निहित जानकारी KNX उपकरणों पर जासूसी करने, उनका प्रतिरूपण करने और पुन: कॉन्फ़िगर करने की अनुमति देती है। यह विशेष रूप से समस्याजनक है, क्योंकि ETS5 उपयोगकर्ताओं को यह आभास देता है कि प्रोजेक्ट पासवर्ड का उपयोग प्रोजेक्ट जानकारी को एन्क्रिप्ट करने के लिए किया जाएगा, न कि केवल निर्यात किए गए प्रोजेक्टों के लिए। इसलिए, यह संभावना है कि कई उपयोगकर्ताओं और सिस्टम इंटीग्रेटर्स ने प्रोजेक्ट स्टोर की गोपनीयता सुनिश्चित करने के लिए अतिरिक्त कदम नहीं उठाए हैं। यदि ETS5 एन्क्रिप्शन को ठीक से लागू करता है और एक मजबूत प्रोजेक्ट पासवर्ड चुना जाता है, तो यह हमलावर के लिए एक कठिन चुनौती प्रदान करेगा, भले ही वे कंप्यूटर तक दूरस्थ पहुँच प्राप्त करने में सफल हों।
निम्नलिखित गोपनीय जानकारी अनुचित रूप से एन्क्रिप्ट की गई है:
ETS5 पासवर्ड रिकवरी टूल एक प्रूफ ऑफ कॉन्सेप्ट है जो संवेदनशील जानकारी को डिक्रिप्ट और प्रदर्शित करके समस्या को प्रदर्शित करता है। इसे समन्वित भेद्यता प्रकटीकरण के भाग के रूप में विकसित किया गया था और KNX एसोसिएशन की अनुमति से जारी किया गया है। टूल को प्रकाशित करने के निम्नलिखित उद्देश्य हैं:
चेतावनी: इस टूल का उपयोग केवल तभी करें जब आप प्रोजेक्ट जानकारी देखने के लिए कानूनी रूप से अधिकृत हों। सुरक्षा उपायों को दरकिनार करना, भले ही वे अप्रभावी हों, उस जानकारी तक पहुँच प्राप्त करने के लिए जिसे देखने की आपको अनुमति नहीं है, आपके क्षेत्राधिकार में एक अपराध हो सकता है।
निष्पादन योग्य रिलीज़ अनुभाग से डाउनलोड किया जा सकता है। इसे स्थापित करने की आवश्यकता नहीं है और इसे पसंद के किसी भी निर्देशिका में रखा जा सकता है।
वैकल्पिक रूप से, यदि आप अपने सिस्टम पर एक अविश्वसनीय बाइनरी नहीं चलाना चाहते हैं, तो आप CyberChef वेबसाइट पर प्रोजेक्ट की XML फ़ाइलों से व्यक्तिगत विशेषताओं को डिक्रिप्ट कर सकते हैं।
सॉफ़्टवेयर .NET Framework 4.6 या बाद के संस्करण पर निर्भर करता है। Windows 10 में पहले से ही डिफ़ॉल्ट रूप से एक उपयुक्त .NET संस्करण शामिल है। पुराने Windows संस्करणों के उपयोगकर्ताओं को सॉफ़्टवेयर चलाने के लिए एक वर्तमान .NET Framework संस्करण स्थापित करना होगा।
उपयोगकर्ता इंटरफ़ेस के विपरीत, ETS5 आपके स्थानीय रूप से संग्रहीत प्रोजेक्ट फ़ाइलों को C:\ProgramData\KNX\ETS5\ProjectStore में प्रोजेक्ट पासवर्ड से एन्क्रिप्ट नहीं करता है। इसके बजाय, यह प्रोजेक्ट की XML फ़ाइलों में विशिष्ट विशेषताओं को अस्पष्ट करने के लिए हार्ड-कोडेड पासवर्ड ETS5Password और सॉल्ट Ivan Medvedev का उपयोग करता है। हार्ड-कोडेड क्रिप्टोग्राफ़िक रहस्य सर्वोत्तम प्रथाओं के विरुद्ध हैं, जैसा कि CWE-798 और CWE-321 में समझाया गया है।
डीओबफस्केशन की प्रक्रिया इस प्रकार है:
Ivan Medvedev का बाइट प्रतिनिधित्व ASCII या UTF-8 एन्कोडेड स्ट्रिंग के रूप में प्राप्त करें।ETS5Password और सॉल्ट के रूप में Ivan Medvedev के बाइट प्रतिनिधित्व के साथ किया जाता है। कुंजी व्युत्पत्ति आउटपुट के पहले 32 बाइट्स का उपयोग कुंजी के रूप में और अगले 16 बाइट्स का उपयोग IV के रूप में किया जाएगा।डीओबफस्केशन का एक कार्यान्वयन Deobfuscator.cs फ़ाइल में पाया जा सकता है। चूंकि पासवर्ड और सॉल्ट स्थिर हैं, इसलिए कुंजी व्युत्पत्ति को छोड़ने के लिए कुंजी और IV की पूर्व-गणना करना संभव होगा। यह इस सॉफ़्टवेयर के कार्यान्वयन में नहीं किया गया है, क्योंकि इसका उद्देश्य डीओबफस्केशन के सभी चरणों को दिखाना है। हालाँकि, यदि आपको कुंजी और IV की आवश्यकता है, तो वे नीचे सूचीबद्ध हैं।
| हेक्स | बेस64 | |
|---|---|---|
| कुंजी | 22BD16CDBB96B0E18E977BB3FEFADD8886E7E38A2F8A6FD9D2F2F5663AC20371 | Ir0WzbuWsOGOl3uz/vrdiIbn44ovim/Z0vL1ZjrCA3E= |
| IV | 8E977BB3FEFADD88E6AE6CBEAE3E7CAF | jpd7s/763Yjmrmy+rj58rw== |