Writable Sys Path +Dll Hijacking Privesc

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

परिचय

यदि आपने पाया है कि आप सिस्टम पथ फ़ोल्डर में लिख सकते हैं (ध्यान दें कि यह काम नहीं करेगा अगर आप किसी उपयोगकर्ता पथ फ़ोल्डर में लिख सकते हैं) तो संभावना है कि आप सिस्टम में व्यावसायिकता को उन्नत कर सकते हैं

इसके लिए आप एक Dll हाइजैकिंग का दुरुपयोग कर सकते हैं जहां आपको एक सेवा या प्रक्रिया द्वारा लोड की जा रही एक पुस्तकालय को हाइजैक करना है जिसमें आपकी से अधिक अधिकार हैं, और क्योंकि वह सेवा एक Dll को लोड कर रही है जो शायद पूरे सिस्टम में भी मौजूद नहीं है, इसे लोड करने की कोशिश करेगा सिस्टम पथ से जहां आप लिख सकते हैं।

अधिक जानकारी के लिए Dll हाइजैकिंग क्या है देखें:

pageDll Hijacking

Dll हाइजैकिंग के साथ प्राइवेस्क

एक गायब Dll खोजना

पहली चीज जो आपको चाहिए है एक प्रक्रिया की पहचान करना जो आपसे अधिक अधिकार वाले साथ चल रही ह। जो कोशिश कर रही है कि सिस्टम पथ से एक Dll लोड करें जिसमें आप लिख सकते ह।

इस प्रकार के मामलों में समस्या यह है कि शायद उन प्रक्रियाएँ पहले से ही चल रही हों। उन सेवाओं को कौन सी Dlls कमी है यह पता करने के लिए आपको प्रॉकमॉन को जल्द से जल्द लॉन्च करने की आवश्यकता है (प्रक्रियाएँ लोड होने से पहले)। तो, कमी होने वाली .dlls पता करने के लिए करें:

  • फ़ोल्डर बनाएं C:\privesc_hijacking और पथ C:\privesc_hijacking को सिस्टम पथ env वेरिएबल में जोड़ें। आप इसे मैन्युअल या PS के साथ कर सकते हैं:

# Set the folder path to create and check events for
$folderPath = "C:\privesc_hijacking"

# Create the folder if it does not exist
if (!(Test-Path $folderPath -PathType Container)) {
New-Item -ItemType Directory -Path $folderPath | Out-Null
}

# Set the folder path in the System environment variable PATH
$envPath = [Environment]::GetEnvironmentVariable("PATH", "Machine")
if ($envPath -notlike "*$folderPath*") {
$newPath = "$envPath;$folderPath"
[Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
}
  • शुरू करें procmon और जाएं Options --> Enable boot logging और प्रॉम्प्ट में OK दबाएं।

  • फिर, रीबूट करें। जब कंप्यूटर पुनः आरंभ होगा, procmon तुरंत घटनाएं रिकॉर्ड करना शुरू करेगा।

  • जब Windows शुरू हो जाए, तो procmon को फिर से चलाएं, यह आपको बताएगा कि यह चल रहा है और यह पूछेगा कि क्या आप इवेंट्स को फ़ाइल में स्टोर करना चाहते हैं। हाँ कहें और इवेंट्स को फ़ाइल में स्टोर करें

  • फ़ाइल उत्पन्न होने के बाद, खुली procmon विंडो को बंद करें और इवेंट्स फ़ाइल को खोलें

  • इन फ़िल्टर्स को जोड़ें और आपको पता चलेगा कि कौन से Dlls किसी प्रक्रिया ने लोड करने की कोशिश की थी लिखने योग्य सिस्टम पथ फ़ोल्डर से:

छूट गई Dlls

एक मुफ्त वर्चुअल (vmware) Windows 11 मशीन में इसे चलाने पर मुझे ये परिणाम मिले:

इस मामले में .exe अनर्थक हैं, इन्हें नजरअंदाज करें, छूट गई DLLs कहां से थीं:

सेवाDllCMD लाइन

Task Scheduler (Schedule)

WptsExtensions.dll

C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule

Diagnostic Policy Service (DPS)

Unknown.DLL

C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork -p -s DPS

???

SharedRes.dll

C:\Windows\system32\svchost.exe -k UnistackSvcGroup

इसे खोजने के बाद, मैंने इस दिलचस्प ब्लॉग पोस्ट को भी पाया जो यह भी समझाता है कि WptsExtensions.dll का दुरुपयोग कैसे करें. जिसे हम अब करने वाले हैं

शोषण

तो, वर्चस्व उन्नति के लिए हम पुस्तकालय WptsExtensions.dll को हाइजैक करने जा रहे हैं। पथ और नाम होने पर हमें केवल दुरुपयोगी dll उत्पन्न करने की आवश्यकता है।

आप इनमें से किसी भी उदाहरण का प्रयोग करने की कोशिश कर सकते हैं। आप payloads चला सकते हैं जैसे: रेव शैल, एक उपयोगकर्ता जोड़ें, बीकन का निष्पादन...

ध्यान दें कि **सभी सेवाएं** **`NT AUTHORITY\SYSTEM`** के साथ **चलाई नहीं जाती हैं** कुछ **`NT AUTHORITY\LOCAL SERVICE`** के साथ भी चलाई जाती हैं जिसमें **कम विशेषाधिकार** होते हैं और आप **नए उपयोगकर्ता नहीं बना पाएंगे** इसकी अनुमतियों का दुरुपयोग करें।\ हालांकि, उस उपयोगकर्ता के पास **`seImpersonate`** विशेषाधिकार होते हैं, इसलिए आप [**वर्चस्व उन्नति के लिए आलू सुइ सुइ सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई सूई स

Last updated