Writable Sys Path +Dll Hijacking Privesc
Introduction
यदि आप पाते हैं कि आप System Path फ़ोल्डर में लिख सकते हैं (ध्यान दें कि यह तब काम नहीं करेगा जब आप User Path फ़ोल्डर में लिख सकते हैं) तो यह संभव है कि आप system में privileges बढ़ा सकते हैं।
इसके लिए आप Dll Hijacking का दुरुपयोग कर सकते हैं जहाँ आप एक library को हाईजैक करने जा रहे हैं जिसे एक सेवा या प्रक्रिया द्वारा आपसे अधिक privileges के साथ लोड किया जा रहा है, और क्योंकि वह सेवा एक Dll लोड कर रही है जो शायद पूरे सिस्टम में मौजूद नहीं है, यह इसे उस System Path से लोड करने की कोशिश करेगी जहाँ आप लिख सकते हैं।
Dll Hijacking क्या है के बारे में अधिक जानकारी के लिए देखें:
Dll HijackingPrivesc with Dll Hijacking
Finding a missing Dll
आपको सबसे पहले एक प्रक्रिया की पहचान करनी होगी जो आपसे अधिक privileges के साथ चल रही है और जो System Path से Dll लोड करने की कोशिश कर रही है जिसमें आप लिख सकते हैं।
इन मामलों में समस्या यह है कि शायद वे प्रक्रियाएँ पहले से ही चल रही हैं। यह जानने के लिए कि कौन सी Dlls सेवाओं में कमी है, आपको जितनी जल्दी हो सके procmon लॉन्च करना होगा (प्रक्रियाएँ लोड होने से पहले)। इसलिए, कमी वाली .dlls खोजने के लिए करें:
Create the folder
C:\privesc_hijacking
and add the pathC:\privesc_hijacking
to System Path env variable. You can do this manually or with PS:
procmon
लॉन्च करें औरOptions
-->Enable boot logging
पर जाएं और प्रॉम्प्ट मेंOK
दबाएं।फिर, रीबूट करें। जब कंप्यूटर फिर से शुरू होगा,
procmon
तुरंत घटनाओं को रिकॉर्ड करना शुरू कर देगा।एक बार जब Windows शुरू हो जाए,
procmon
को फिर से चलाएं, यह आपको बताएगा कि यह चल रहा है और आपसे पूछेगा कि क्या आप घटनाओं को एक फ़ाइल में स्टोर करना चाहते हैं। हाँ कहें और घटनाओं को एक फ़ाइल में स्टोर करें।फाइल जनरेट होने के बाद, खुले हुए
procmon
विंडो को बंद करें और घटनाओं की फ़ाइल खोलें।ये फिल्टर जोड़ें और आप सभी Dlls पाएंगे जो कुछ प्रोसेस ने लिखने योग्य सिस्टम पथ फ़ोल्डर से लोड करने की कोशिश की:
मिस्ड Dlls
एक मुफ्त वर्चुअल (vmware) Windows 11 मशीन पर इसे चलाने पर मुझे ये परिणाम मिले:
इस मामले में .exe बेकार हैं इसलिए उन्हें नजरअंदाज करें, मिस्ड DLLs निम्नलिखित से थीं:
सेवा | Dll | CMD लाइन |
---|---|---|
टास्क शेड्यूलर (Schedule) | WptsExtensions.dll |
|
डायग्नोस्टिक पॉलिसी सेवा (DPS) | Unknown.DLL |
|
??? | SharedRes.dll |
|
इसका पता लगाने के बाद, मैंने एक दिलचस्प ब्लॉग पोस्ट पाया जो यह भी बताता है कि कैसे WptsExtensions.dll का दुरुपयोग करें privesc के लिए। जो हम अब करने जा रहे हैं।
शोषण
तो, अधिकारों को बढ़ाने के लिए हम WptsExtensions.dll पुस्तकालय को हाईजैक करने जा रहे हैं। पथ और नाम होने के बाद हमें बस दुष्ट dll जनरेट करने की आवश्यकता है।
आप इन उदाहरणों में से किसी का उपयोग करने की कोशिश कर सकते हैं। आप पे लोड चला सकते हैं जैसे: एक रिव शेल प्राप्त करें, एक उपयोगकर्ता जोड़ें, एक बीकन निष्पादित करें...
ध्यान दें कि सभी सेवाएं NT AUTHORITY\SYSTEM
के साथ नहीं चलतीं, कुछ NT AUTHORITY\LOCAL SERVICE
के साथ भी चलती हैं, जिनके पास कम अधिकार होते हैं और आप नया उपयोगकर्ता नहीं बना पाएंगे इसके अनुमतियों का दुरुपयोग करें।
हालांकि, उस उपयोगकर्ता के पास seImpersonate
विशेषाधिकार है, इसलिए आप पोटैटो सूट का उपयोग करके अधिकारों को बढ़ा सकते हैं। इसलिए, इस मामले में एक रिव शेल एक बेहतर विकल्प है बजाय एक उपयोगकर्ता बनाने की कोशिश करने के।
लेखन के समय टास्क शेड्यूलर सेवा Nt AUTHORITY\SYSTEM के साथ चल रही है।
दुष्ट Dll (मेरे मामले में मैंने x64 रिव शेल का उपयोग किया और मुझे एक शेल वापस मिला लेकिन डिफेंडर ने इसे मार दिया क्योंकि यह msfvenom से था) जनरेट करने के बाद, इसे लिखने योग्य सिस्टम पथ में WptsExtensions.dll नाम से सहेजें और कंप्यूटर को रीस्टार्ट करें (या सेवा को रीस्टार्ट करें या प्रभावित सेवा/प्रोग्राम को फिर से चलाने के लिए जो भी करना हो करें)।
जब सेवा फिर से शुरू होती है, तो dll को लोड और निष्पादित किया जाना चाहिए (आप procmon ट्रिक का पुनः उपयोग कर सकते हैं यह जांचने के लिए कि पुस्तकालय अपेक्षित रूप से लोड हुआ था)।
Last updated