
CVE-2020-1971 स्वचालित स्कैन एवं रिमोट एक्सप्लॉइट स्क्रिप्ट। स्वचालित लोकल स्कैन एवं पैच स्क्रिप्ट।
CVE-2020-1971 ऑटो स्कैन और रिमोट एक्सप्लॉइट स्क्रिप्ट। ऑटो लोकल स्कैन और पैच स्क्रिप्ट।
5:03pm
मैं वर्तमान में स्क्रिप्ट विकसित कर रहा हूँ और उम्मीद है कि आज रात तक सब कुछ जारी कर दूँगा। अभी के लिए इस रिपॉजिटरी में केवल पैच किया गया OpenSSL 1.1.1i स्रोत है। मैं इंस्टॉल/अपडेट पैच स्क्रिप्ट पर काम कर रहा हूँ।
5:50pm
Debian/Ubuntu Linux इंस्टॉलेशन स्क्रिप्ट अपलोड की गई। इंस्टॉल निर्देशों के लिए "लिनक्स इंस्टॉलेशन" देखें।
6:40pm
X.509 GeneralName प्रकार विभिन्न प्रकार के नामों को दर्शाने के लिए एक सामान्य प्रकार है। उन नाम प्रकारों में से एक को EDIPartyName के रूप में जाना जाता है। OpenSSL एक फ़ंक्शन GENERAL_NAME_cmp प्रदान करता है जो यह देखने के लिए GENERAL_NAME के विभिन्न उदाहरणों की तुलना करता है कि वे समान हैं या नहीं। यह फ़ंक्शन गलत व्यवहार करता है जब दोनों GENERAL_NAME में EDIPARTYNAME होता है। NULL पॉइंटर डीरेफ़रेंस और क्रैश हो सकता है, जिससे संभावित denial of service हमला हो सकता है।
OpenSSL स्वयं GENERAL_NAME_cmp फ़ंक्शन का उपयोग दो उद्देश्यों के लिए करता है
उपलब्ध CRL और X509 प्रमाणपत्र में एम्बेडेड CRL वितरण बिंदु के बीच CRL वितरण बिंदु नामों की तुलना करना
यह सत्यापित करते समय कि टाइमस्टैम्प प्रतिक्रिया टोकन हस्ताक्षरकर्ता टाइमस्टैम्प प्राधिकरण नाम से मेल खाता है (API फ़ंक्शन TS_RESP_verify_response और TS_RESP_verify_token के माध्यम से उजागर)
यदि कोई हमलावर तुलना किए जा रहे दोनों आइटमों को नियंत्रित कर सकता है, तो वह हमलावर क्रैश ट्रिगर कर सकता है। उदाहरण के लिए, यदि हमलावर किसी क्लाइंट या सर्वर को दुर्भावनापूर्ण CRL के विरुद्ध दुर्भावनापूर्ण प्रमाणपत्र की जांच करने के लिए धोखा दे सकता है, तो यह हो सकता है।
ध्यान दें कि कुछ एप्लिकेशन प्रमाणपत्र में एम्बेडेड URL के आधार पर स्वचालित रूप से CRL डाउनलोड करते हैं। यह जाँच प्रमाणपत्र और CRL पर हस्ताक्षर सत्यापित होने से पहले होती है। OpenSSL के s_server, s_client और verify टूल में "-crl_download" विकल्प के लिए समर्थन है जो स्वचालित CRL डाउनलोडिंग लागू करता है और यह हमला उन टूल के विरुद्ध काम करता हुआ प्रदर्शित किया गया है।
ध्यान दें कि एक असंबंधित बग का अर्थ है कि OpenSSL के प्रभावित संस्करण EDIPARTYNAME के सही एन्कोडिंग को पार्स या निर्मित नहीं कर सकते हैं। हालाँकि, एक विकृत EDIPARTYNAME का निर्माण करना संभव है जिसे OpenSSL का पार्सर स्वीकार कर लेगा और इस प्रकार यह हमला ट्रिगर हो सकता है।
OpenSSL 1.1.1 और 1.0.2 के सभी संस्करण इस समस्या से प्रभावित हैं। अन्य OpenSSL रिलीज़ समर्थन से बाहर हैं और उनकी जाँच नहीं की गई है। OpenSSL 1.1.1i में ठीक किया गया (प्रभावित 1.1.1-1.1.1h)। OpenSSL 1.0.2x में ठीक किया गया (प्रभावित 1.0.2-1.0.2w)।
sudo chmod +x Linux_Patched_Install_From_Source_Script
चलाएँ:
sudo ./Linux_Patched_Install_From_Source_Script
"Native" OpenSSL रन टाइम पर सीधे Windows API का उपयोग करता है। नेटिव OpenSSL बनाने के लिए आप निम्न में से किसी एक का उपयोग कर सकते हैं:
Microsoft Visual C++ (MSVC) C कंपाइलर कमांड लाइन पर
या
MinGW क्रॉस कंपाइलर GNU-जैसे डेवलपमेंट वातावरण MSYS2 पर चलाएँ या Linux या Cygwin पर चलाएँ
"Hosted" OpenSSL बिल्डिंग (GNU/Unix शेल, कंपाइलर और टूल का उपयोग करके) और रन टाइम पर एक बाहरी POSIX संगतता परत पर निर्भर करता है। इस विकल्प के लिए आप Cygwin का उपयोग कर सकते हैं।
INSTALL.md में सूचीबद्ध आवश्यकताओं और निर्देशों के अतिरिक्त, ये भी आवश्यक हैं:
Perl. Strawberry Perl, http://strawberryperl.com/ से उपलब्ध है। अधिक जानकारी के लिए कृपया NOTES.PERL पढ़ें, जिसमें CPAN का उपयोग भी शामिल है। एक विकल्प ActiveState Perl है, https://www.activestate.com/ActivePerl जिसके लिए आपको https://platform.activestate.com/ActiveState के माध्यम से Perl मॉड्यूल Win32/Console.pm स्पष्ट रूप से बनाने और फिर इसे डाउनलोड करने की आवश्यकता हो सकती है।
Microsoft Visual C कंपाइलर।
Netwide Assembler (NASM), https://www.nasm.us से उपलब्ध है। ध्यान दें कि NASM एकमात्र समर्थित असेंबलर है।
Perl इंस्टॉल करें
NASM इंस्टॉल करें
सुनिश्चित करें कि Perl और NASM दोनों आपके %PATH% पर हैं
प्रशासनिक विशेषाधिकारों के साथ Visual Studio डेवलपर कमांड प्रॉम्प्ट का उपयोग करें, इच्छित आर्किटेक्चर के आधार पर इसके किसी एक वेरिएंट को चुनें। या "cmd" चलाएँ और निम्न विकल्पों में से एक के साथ "vcvarsall.bat" निष्पादित करें: x86, x86_amd64, x86_arm, x86_arm64, amd64, amd64_x86, amd64_arm, या amd64_arm64। यह nmake.exe, cl.exe आदि के लिए आवश्यक पर्यावरण चर सेट करता है। यह भी देखें https://docs.microsoft.com/cpp/build/building-on-the-command-line
OpenSSL स्रोत निर्देशिका के मूल से निम्न दर्ज करें perl Configure VC-WIN32 यदि आप 32-bit OpenSSL चाहते हैं या perl Configure VC-WIN64A यदि आप 64-bit OpenSSL चाहते हैं या perl Configure Configure को प्लेटफ़ॉर्म पता लगाने दें
nmake
nmake test
nmake install
पूर्ण इंस्टॉलेशन निर्देशों के लिए, या यदि किसी भी चरण में कुछ गलत होता है, तो INSTALL.md फ़ाइल देखें।
डिफ़ॉल्ट इंस्टॉलेशन निर्देशिकाएँ पर्यावरण चर से प्राप्त होती हैं।
VC-WIN32 के लिए, निम्नलिखित डिफ़ॉल्ट उपयोग होते हैं:
PREFIX: %ProgramFiles(86)%\OpenSSL
OPENSSLDIR: %CommonProgramFiles(86)%\SSL
VC-WIN64 के लिए, निम्नलिखित डिफ़ॉल्ट उपयोग होते हैं:
PREFIX: %ProgramW6432%\OpenSSL
OPENSSLDIR: %CommonProgramW6432%\SSL
यदि वे पर्यावरण चर मौजूद नहीं हैं (उदाहरण के लिए शुद्ध Win32 इंस्टॉलेशन पर), तो ये फ़ॉलबैक उपयोग किए जाते हैं:
PREFIX: %ProgramFiles%\OpenSSL
OPENSSLDIR: %CommonProgramFiles%\SSL
यह भी ध्यान दें कि वे निर्देशिकाएँ आमतौर पर राइट प्रोटेक्टेड होती हैं, भले ही आपका खाता Administrators समूह में हो। इससे निपटने के लिए, 'nmake install' चलाने से पहले कमांड प्रॉम्प्ट पर राइट-क्लिक करके "Run as Administrator" चुनें। दूसरा समाधान, निश्चित रूप से, कॉन्फ़िगर करते समय --prefix और --openssldir का उपयोग करके निर्देशिकाओं का एक अलग सेट चुनना है।
UWP लक्ष्य केवल स्टैटिक और डायनेमिक लाइब्रेरी बनाने का समर्थन करते हैं।
संकलन से पहले आपको प्लेटफ़ॉर्म प्रकार "uwp" और लक्ष्य आर्क "vcvarsall.bat" के माध्यम से परिभाषित करना चाहिए। उदाहरण के लिए, यदि आप "arm64" बिल्ड बनाना चाहते हैं, तो आपको "vcvarsall.bat x86_arm64 uwp" चलाना चाहिए।
संदर्भ पाठक की सुविधा के लिए प्रदान किए गए हैं ताकि भेद्यताओं के बीच अंतर करने में मदद मिल सके।