
AES-CFB कुंजी निर्माण और प्रबंधन में भेद्यता, Reolink डेस्कटॉप एप्लिकेशन में
Reolink डेस्कटॉप एप्लिकेशन (संस्करण 8.18.12) कॉन्फ़िगरेशन फ़ाइलों और अन्य संवेदनशील डेटा को एन्क्रिप्ट करने के लिए AES-CFB एल्गोरिदम का उपयोग करता है।
हालाँकि, एन्क्रिप्शन कुंजी को असुरक्षित तरीके से संभाला जाता है, जिससे हमलावर संरक्षित कॉन्फ़िगरेशन डेटा को आसानी से डिक्रिप्ट कर सकते हैं।
Reolink एप्लिकेशन उपयोगकर्ता कॉन्फ़िगरेशन और अन्य संवेदनशील जानकारी को निम्नलिखित पथ पर संग्रहीत करता है:
%APPDATA%\reolink\<UUID>.json
<UUID> का यह प्रारूप है: 424e044d-aa27-4e59-873a-26b9f16be9ad
यह कॉन्फ़िगरेशन फ़ाइल AES-CFB का उपयोग करके एन्क्रिप्ट की जाती है, और डिक्रिप्शन के लिए उपयोग की जाने वाली AES कुंजी निम्नलिखित प्रक्रिया के माध्यम से प्राप्त की जाती है:
निम्नलिखित पथ पर स्थित फ़ाइल खोलें:
%APPDATA%\com.reolink.app.client
फ़ाइल में JSON प्रारूप में डेटा होता है, उदाहरण के लिए:
{
"data": "+lWlitlpr9vBiG71RCJYoPSJKVnUgGVbgu4v9W6K3N0kzgLv9HEQpqVi2fMnHdb7iWhYgb5KeRhYb6IPVWRR4kxTcwTDfQmMOvFWLuqHPRJBt9ozPSo4TYDXzjBN0YAW",
"__internal__": {
"migrations": {
"version": "8.18.12"
}
}
}
एप्लिकेशन प्राथमिक AES कुंजी के रूप में MD5("com.reolink.app").upper() का उपयोग करता है, और IV के रूप में bcswebapp1234567 का उपयोग करता है। एन्क्रिप्टेड स्ट्रिंग (data) को base64-डिकोड किया जाता है और फिर डिक्रिप्ट किया जाता है। डिक्रिप्ट की गई स्ट्रिंग का यह प्रारूप है: 59083200-3875-4f67-a067-d953286114a0
अंतिम कुंजी MD5("<DECRYPTED_STRING>").upper().encode() है, और IV वही रहता है (bcswebapp1234567)। इसका उपयोग कॉन्फ़िगरेशन फ़ाइल, <UUID>.json को डिक्रिप्ट करने के लिए किया जाता है।
poc.py निष्पादित करके, आप MD5 हैश होने से पहले अंतिम कुंजी (प्रारूप 59083200-3875-4f67-a067-d953286114a0 में) और कॉन्फ़िगरेशन फ़ाइल की सामग्री प्राप्त कर सकते हैं।
com.reolink.app जैसे हार्ड-कोडेड स्थिर स्ट्रिंग के हैश का उपयोग प्राथमिक कुंजी के रूप में नहीं किया जाना चाहिए।
इसके अतिरिक्त, कुंजियों को %APPDATA% जैसी पूर्वानुमानित स्थानीय फ़ाइल में संग्रहीत नहीं किया जाना चाहिए। सभी संवेदनशील क्रेडेंशियल्स की सुरक्षा के लिए ऑपरेटिंग सिस्टम द्वारा प्रदान किए गए मजबूत, सत्यापित सुरक्षित कीस्टोर, जैसे Windows DPAPI या macOS Keychain, का उपयोग किया जाना चाहिए।