
CVE-2022-44666 के लिए तकनीकी विवरण और प्रूफ-ऑफ-कॉन्सेप्ट, जो एक Windows Contacts syslink नियंत्रण href विशेषता एस्केप भेद्यता है जो क्राफ्टेड VCF/.contact फ़ाइलों और LDAP प्रोटोकॉल हैंडलर के माध्यम से रिमोट कोड निष्पादन सक्षम बनाती है।
यह एक और भूला हुआ 0day की कहानी है जिसे [John Page (aka hyp3rlinx)][R.1] द्वारा 4 साल से भी अधिक पहले पूरी तरह से प्रकट किया गया था। रिपोर्ट को समझने के लिए, आपको यह ध्यान रखना होगा कि मैं बेवकूफ हूँ :-) और मेरी बेवकूफी मुझे सरल समस्याओं को हल करने के लिए लंबे रास्ते लेने पर मजबूर करती है, लेकिन यह मुझे कुछ बग्स का शोषण करने के अन्य तरीकों का पता लगाने में भी मदद करती है। मैं यह क्यों कह रहा हूँ? क्योंकि मैं जल्दी से समझ नहीं पाया कि .contact फ़ाइल बनाने का तरीका संपर्क बनाने के लिए Contact फ़ोल्डर में ब्राउज़ करना है, इसके बजाय, मैंने इस जानकारी का उपयोग पहले एक VCF फ़ाइल बनाने के लिए किया और फिर, मैंने गलत तरीके से सोचा कि यह किसी प्रकार का वैरिएंट था। यह इसलिए भी था क्योंकि मेरा दिमाग यह नहीं समझ पाता कि कुछ 0days इतने लंबे समय तक भुलाए जाते हैं ¯\(ツ)/¯ एक बार ऐसा करने के बाद और [MSRC][R.2] और [ZDI][R.3] द्वारा "wontfix" जवाबों के बाद, गंभीरता बढ़ाने के लिए आगे की जाँच की गई, अंततः .contact फ़ाइलों और windows url प्रोटोकॉल हैंडलर "ldap" तक पहुँचा गया।
जब मैं [this vulnerability][R.4] के लिए exploit कोड पढ़ रहा था, जो वास्तव में 0day के रूप में जारी किया गया था और [ZDI's report][R.5] को खोजना संभव है।
Update 2022/07/21: इस मामले को MS को रिपोर्ट करने के बाद, MSRC के लोगों ने मुझे सही ढंग से बताया कि Windows Contacts, VCF फ़ाइलों को खोलने के लिए डिफ़ॉल्ट प्रोग्राम नहीं है।

आगे के शोध से अभी भी पता चलता है कि Win7 ESU और WinServer2019 पर VCF फ़ाइलों के लिए डिफ़ॉल्ट प्रोग्राम Windows Contacts (wab.exe) है, अन्यथा MS People (PeopleApp.exe) का उपयोग किया जाता है। इस परीक्षण की पूरी तालिका यहाँ है:
वैसे भी वे अभी भी तर्क देते हैं कि कुछ सोशल इंजीनियरिंग शामिल है जैसे कि एक क्राफ्टेड VCF फ़ाइल खोलना और बग का शोषण करने के लिए कुछ लिंक पर क्लिक करना, इसलिए यह सुरक्षा अपडेट के लिए MSRC बग बार को पूरा नहीं करता है।

Update 2022/07/25: खैर, आगे के शोध के बाद, यह वही बग है। मैं अंततः एक .contact proof of concept खोजने में सक्षम हुआ हूँ। HTML entities का उपयोग करके .contact फ़ाइल को सही ढंग से पार्स करना वास्तव में संभव है। ध्यान दें कि यह पिछली समस्या (Update 2022/07/21) को हल करता है और यह फ़ाइल स्वरूप (.contact) Windows Contacts द्वारा खोला जाता है, जो इस फ़ाइल एक्सटेंशन के लिए डिफ़ॉल्ट प्रोग्राम है, भले ही सिस्टम में MS Office स्थापित हो। यदि अभी तक नहीं किया गया है तो इसे केवल पहले फ़ाइल एसोसिएशन की आवश्यकता है, लेकिन ऐसा करने के लिए केवल एक प्रोग्राम डिफ़ॉल्ट रूप से स्थापित है, वह है Windows Contacts।
Update 2022/07/25: इस आगे के शोध ने मुझे उस बिंदु तक पहुँचा दिया जहाँ मैं कुछ समय पहले पहुँचने की कोशिश कर रहा था: बग का शोषण करने के लिए स्वचालित रूप से क्राफ्टेड संपर्क डेटा खोलने हेतु कुछ URL प्रोटोकॉल हैंडलर का उपयोग करना। मैं अंततः इसे ldap uri scheme की बदौलत काम करवाने में सक्षम हुआ, जो डिफ़ॉल्ट रूप से Windows Contacts एप्लिकेशन से संबद्ध है, इसलिए केवल एक rogue LDAP सर्वर स्थापित करके और payload डेटा को mail, url या wwwhomepage विशेषताओं के अंतर्गत प्रदान करके, शोषण का प्रभाव बढ़ जाता है क्योंकि अब एक दुर्भावनापूर्ण VCF/Contact फ़ाइल पर डबल क्लिक करने की आवश्यकता नहीं है, हम इसे url प्रोटोकॉल का उपयोग करके वितरित कर सकते हैं।
Update 2023/02/08: MSRC द्वारा सद्भावना के प्रतीक के रूप में, [CVE-2022-44666][R.10] खोज के लिए स्वीकृति पृष्ठ में [John Page (aka hyp3rlinx)][R.1] को शामिल किया गया है।

यह रिपोर्ट मूल रूप से उपरोक्त लिंक्स के समान है, हालाँकि मैंने इसमें शामिल सोशल इंजीनियरिंग को थोड़ा बेहतर किया है। वास्तव में, सबसे पहली चीज़ जो मैंने की वह यह थी कि लिंक्स को देखने के तरीके में सुधार किया, बिल्कुल जैसे यह एक XSS भेद्यता हो, यह वास्तव में एक HTML injection है इसलिए पहले anchor तत्व को बंद करके एक नया डालना संभव है। फिर, मैं उन HTML तत्वों की दृश्यता को हटाना चाहता था, इसलिए जब तक संभव हो उतना लंबा "innerHTML" सेट करना उन्हें छिपाने के लिए पर्याप्त होगा (क्योंकि वर्ण सीमाएँ हैं)।
यह उपयोग किया गया अंतिम payload है:```html URL;WORK:">CLICKMEEEEE...
क्या होता है यह देखने के लिए, procmon चलाएँ और href विशेषता का एक नकली लक्ष्य इस प्रकार सेट करें:```html
URL;WORK:"></a><a href="https://github.com/j00sean/cve-2022-44666/blob/main/foo.exe">CLICKMEEEEE...</a>
एक बार लिंक पर क्लिक करने पर, procmon में इस प्रकार का आउटपुट देखा जाता है:
