CVE-2017-0199 की कोड निष्पादित करने की क्षमता को हटाने के लिए .hta फ़ाइलों के लिए डिफ़ॉल्ट हैंडलर बदलें। OLE2 (COM ऑब्जेक्ट्स) के माध्यम से आहूत फ़ाइलों के लिए डिफ़ॉल्ट हैंडलर स्थानीय सिस्टम के डिफ़ॉल्ट एप्लिकेशन से अलग संग्रहीत किया जाता है और केवल रजिस्ट्री के माध्यम से बदला जा सकता है।
मूल लॉजिक एक्सप्लॉइट
यह इस एक्सप्लॉइट का एक व्यावहारिक उदाहरण है, और इसे मेरी समझ के अनुसार समझाया गया है। सभी घटनाएँ इस पैटर्न का पालन नहीं कर सकती हैं और मेरा मूल्यांकन गलत हो सकता है। हालाँकि अगले भाग में प्रस्तुत समाधान उन स्थितियों में काम करता है जिनका मैंने परीक्षण किया है।
वेब सर्वर पर होस्ट किया गया RTF दस्तावेज़ अंत में एक दुर्भावनापूर्ण हाइपरटेक्स्ट एप्लिकेशन (HTA) पेलोड को 'cat' करता है।
होस्टिंग सर्वर फ़ाइल के GET अनुरोधों का जवाब एक हेडर के साथ देता है जो सामग्री को HTA फ़ाइल बताता है।
Microsoft Word वेब सर्वर से RTF दस्तावेज़ प्राप्त करने के लिए एक OLE2 ऑब्जेक्ट चलाता है।
Microsoft Word को फ़ाइल प्रकार को मान्य करने के लिए मजबूर किया जाता है क्योंकि .rtf एक्सटेंशन HTA सामग्री प्रकार से मेल नहीं खाता है।
Microsoft Word फ़ाइल के अंत से पहचानने योग्य डेटा संरचनाओं की जाँच करता है और HTA डेटा संरचनाओं को HTA सामग्री प्रकार से मेल कराता है।
Microsoft Word स्वचालित रूप से फ़ाइल प्रकार को सही करता है और इसे HTA फ़ाइलों के लिए COM हैंडलर (mshta.exe) को भेजता है।
Mshta.exe फ़ाइल के अंत से दुर्भावनापूर्ण हाइपरटेक्स्ट एप्लिकेशन कोड चलाता है।
COM हैंडलर फ़ाइल प्रकार सत्यापन प्रक्रिया में त्रुटियों को रोकने के लिए सिस्टम हैंडलर से अलग रजिस्ट्री में संग्रहीत किए जाते हैं।
बुनियादी समाधान
RegEdit.exe में HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon पर जाएँ
DefaultIcon के लिए उन्नत अनुमतियाँ खोलें
स्वामी को Administrators (समूह) में बदलें
अपने वर्तमान उपयोगकर्ता खाते को सुरक्षा प्रिंसिपलों की सूची में जोड़ें, इसे "पूर्ण नियंत्रण" असाइन करें
(Default) कुंजी को C:\Windows\System32\notepad.exe,1 में संपादित करें
DefaultIcon के लिए उन्नत अनुमतियों में अपने उपयोगकर्ता को हटाएँ, और SYSTEM को फिर से स्वामी नियुक्त करें
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32 के लिए चरण 1 से 6 दोहराएँ, (Default) कुंजी मान को C:\Windows\System32\notepad.exe में बदलें
यह OLE2 के माध्यम से आहूत .hta ऑब्जेक्ट्स के लिए डिफ़ॉल्ट हैंडलर को notepad में बदलकर CVE-2017-0199 की कोड निष्पादित करने की क्षमता को हटाता है। यह OLE2 द्वारा .hta फ़ाइलों को आहूत करने के सभी उदाहरणों पर लागू होगा। इससे notepad खुलेगा और त्रुटियाँ उत्पन्न होंगी, लेकिन कोड निष्पादित नहीं होगा।
HKCR को सीधे संपादित न करें। HKCU या HKLM में संबंधित कुंजियों को संपादित करें।
आप रजिस्ट्री कुंजी का स्वामित्व लेने के बाद उसे SYSTEM या अन्य को वापस कर सकते हैं।
रजिस्ट्री के साथ छेड़छाड़ न करें। परिवर्तन करने के बाद इसे वैसे ही छोड़ें जैसे आपने पाया था।
प्रोसेस मॉनिटर में शोर कम करने के लिए शक्तिशाली राइट-क्लिक फ़िल्टरिंग है।
प्रोसेस मॉनिटर की खोज सुविधा सभी फ़ील्ड्स में एक स्ट्रिंग खोजती है।
pscp.exe (Putty) एक कमांड-लाइन SSH फ़ाइल ट्रांसफर टूल है।
Linux अभी भी एक बड़ा दर्द है।
समापन टिप्पणी
मैं इस शमन के कारण होने वाली किसी भी क्षति या समस्याओं के लिए, या notepad और ढेर सारी त्रुटियों के परिणामस्वरूप उपयोगकर्ता के भ्रम के लिए कोई जिम्मेदारी नहीं लेता। यह एक गंदा फिक्स है और मुझे नहीं पता कि क्या यह उत्पादन वातावरण में व्यापक समस्याएँ पैदा करेगा। हमेशा की तरह, अपने विशिष्ट वातावरण और आवश्यकताओं को ध्यान में रखते हुए शमन का मूल्यांकन करें।
मैं बाद में इस शमन के पहले और बाद के प्रभाव दिखाने के लिए स्क्रीनशॉट जोड़ूँगा। साथ ही इसे एक स्क्रिप्ट के रूप में किया जा सकता है, लेकिन मुझे रजिस्ट्री कुंजी की अनुमतियाँ बदलने में कठिनाई हो रही है, इसलिए मैं बाद में उसे संभालूँगा।