Windows Local Privilege Escalation
Windows स्थानीय विशेषाधिकार वृद्धि वेक्टर की खोज के लिए सबसे अच्छा उपकरण: WinPEAS
प्रारंभिक Windows सिद्धांत
एक्सेस टोकन
यदि आप नहीं जानते कि Windows एक्सेस टोकन क्या हैं, तो आगे बढ़ने से पहले निम्नलिखित पृष्ठ को पढ़ें:
Access TokensACLs - DACLs/SACLs/ACEs
ACLs - DACLs/SACLs/ACEs के बारे में अधिक जानकारी के लिए निम्नलिखित पृष्ठ की जांच करें:
ACLs - DACLs/SACLs/ACEsइंटीग्रिटी लेवल्स
यदि आप नहीं जानते कि Windows में इंटीग्रिटी लेवल्स क्या हैं, तो आगे बढ़ने से पहले निम्नलिखित पृष्ठ को पढ़ें:
Integrity LevelsWindows सुरक्षा नियंत्रण
Windows में विभिन्न चीजें हैं जो आपको सिस्टम को सूचीबद्ध करने से रोक सकती हैं, निष्पादन योग्य फ़ाइलें चला सकती हैं या यहां तक कि आपकी गतिविधियों का पता लगा सकती हैं। आपको विशेषाधिकार वृद्धि सूचीकरण शुरू करने से पहले निम्नलिखित पृष्ठ को पढ़ना और इन सभी रक्षा यंत्रों को सूचीबद्ध करना चाहिए:
Windows Security Controlsसिस्टम जानकारी
संस्करण जानकारी सूचीकरण
जांचें कि क्या Windows संस्करण में कोई ज्ञात भेद्यता है (लागू पैच भी जांचें)।
Version Exploits
यह site Microsoft सुरक्षा कमजोरियों के बारे में विस्तृत जानकारी खोजने के लिए उपयोगी है। इस डेटाबेस में 4,700 से अधिक सुरक्षा कमजोरियाँ हैं, जो विशाल हमले की सतह को दर्शाती हैं जो एक Windows वातावरण प्रस्तुत करता है।
On the system
post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester
winpeas (Winpeas has watson embedded)
Locally with system information
Github repos of exploits:
Environment
क्या env variables में कोई क्रेडेंशियल/जूसि जानकारी सहेजी गई है?
PowerShell इतिहास
PowerShell Transcript files
आप सीख सकते हैं कि इसे कैसे चालू किया जाए https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/
PowerShell Module Logging
PowerShell पाइपलाइन निष्पादन का विवरण रिकॉर्ड किया जाता है, जिसमें निष्पादित कमांड, कमांड कॉल और स्क्रिप्ट के भाग शामिल होते हैं। हालाँकि, पूर्ण निष्पादन विवरण और आउटपुट परिणाम कैप्चर नहीं किए जा सकते हैं।
इसे सक्षम करने के लिए, दस्तावेज़ के "Transcript files" अनुभाग में दिए गए निर्देशों का पालन करें, "Powershell Transcription" के बजाय "Module Logging" का विकल्प चुनें।
Powershell लॉग से अंतिम 15 घटनाएँ देखने के लिए आप निम्नलिखित कमांड चला सकते हैं:
PowerShell Script Block Logging
स्क्रिप्ट के निष्पादन की पूरी गतिविधि और पूर्ण सामग्री रिकॉर्ड की जाती है, यह सुनिश्चित करते हुए कि कोड का हर ब्लॉक उसके चलने के समय दस्तावेजीकृत है। यह प्रक्रिया प्रत्येक गतिविधि का एक व्यापक ऑडिट ट्रेल बनाए रखती है, जो फॉरेंसिक्स और दुर्भावनापूर्ण व्यवहार का विश्लेषण करने के लिए मूल्यवान है। निष्पादन के समय सभी गतिविधियों को दस्तावेजीकृत करके, प्रक्रिया के बारे में विस्तृत जानकारी प्रदान की जाती है।
Windows Event Viewer में Script Block के लिए लॉगिंग इवेंट्स निम्नलिखित पथ पर स्थित हो सकते हैं: Application and Services Logs > Microsoft > Windows > PowerShell > Operational। अंतिम 20 इवेंट्स देखने के लिए आप उपयोग कर सकते हैं:
इंटरनेट सेटिंग्स
ड्राइव्स
WSUS
यदि अपडेट httpS का उपयोग करके अनुरोध नहीं किए जाते हैं, बल्कि http का उपयोग किया जाता है, तो आप सिस्टम को समझौता कर सकते हैं।
आप निम्नलिखित चलाकर जांच करना शुरू करते हैं कि क्या नेटवर्क गैर-SSL WSUS अपडेट का उपयोग कर रहा है:
यदि आपको इस तरह का उत्तर मिलता है:
And if HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
is equals to 1
.
Then, यह exploitable है। If the last registry is equals to 0, then, the WSUS entry will be ignored.
In orther to exploit this vulnerabilities you can use tools like: Wsuxploit, pyWSUS - These are MiTM weaponized exploits scripts to inject 'fake' updates into non-SSL WSUS traffic.
Read the research here:
WSUS CVE-2020-1013
यहाँ पूरा रिपोर्ट पढ़ें. Basically, this is the flaw that this bug exploits:
If we have the power to modify our local user proxy, and Windows Updates uses the proxy configured in Internet Explorer’s settings, we therefore have the power to run PyWSUS locally to intercept our own traffic and run code as an elevated user on our asset.
Furthermore, since the WSUS service uses the current user’s settings, it will also use its certificate store. If we generate a self-signed certificate for the WSUS hostname and add this certificate into the current user’s certificate store, we will be able to intercept both HTTP and HTTPS WSUS traffic. WSUS uses no HSTS-like mechanisms to implement a trust-on-first-use type validation on the certificate. If the certificate presented is trusted by the user and has the correct hostname, it will be accepted by the service.
You can exploit this vulnerability using the tool WSUSpicious (once it's liberated).
KrbRelayUp
A स्थानीय विशेषाधिकार वृद्धि vulnerability exists in Windows डोमेन environments under specific conditions. These conditions include environments where LDAP signing is not enforced, users possess self-rights allowing them to configure Resource-Based Constrained Delegation (RBCD), and the capability for users to create computers within the domain. It is important to note that these requirements are met using default settings.
Find the exploit in https://github.com/Dec0ne/KrbRelayUp
For more information about the flow of the attack check https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/
AlwaysInstallElevated
यदि ये 2 रजिस्टर सक्षम हैं (value is 0x1), then users of any privilege can install (execute) *.msi
files as NT AUTHORITY\SYSTEM.
Metasploit payloads
यदि आपके पास एक मीटरप्रेटर सत्र है, तो आप इस तकनीक को exploit/windows/local/always_install_elevated
मॉड्यूल का उपयोग करके स्वचालित कर सकते हैं।
PowerUP
Write-UserAddMSI
कमांड का उपयोग करें power-up से वर्तमान निर्देशिका के अंदर एक Windows MSI बाइनरी बनाने के लिए ताकि विशेषाधिकार बढ़ाए जा सकें। यह स्क्रिप्ट एक पूर्व-संकलित MSI इंस्टॉलर लिखती है जो उपयोगकर्ता/समूह जोड़ने के लिए संकेत देती है (इसलिए आपको GIU पहुंच की आवश्यकता होगी):
बस बनाए गए बाइनरी को कार्यान्वित करें ताकि विशेषाधिकार बढ़ सके।
MSI Wrapper
इस ट्यूटोरियल को पढ़ें ताकि आप इस उपकरणों का उपयोग करके एक MSI wrapper कैसे बनाएं। ध्यान दें कि आप एक ".bat" फ़ाइल को लपेट सकते हैं यदि आप बस कमांड लाइनों को कार्यन्वित करना चाहते हैं।
MSI WrapperWIX के साथ MSI बनाएं
Create MSI with WIXVisual Studio के साथ MSI बनाएं
Cobalt Strike या Metasploit के साथ एक नया Windows EXE TCP payload
C:\privesc\beacon.exe
में जनरेट करें।Visual Studio खोलें, Create a new project चुनें और खोज बॉक्स में "installer" टाइप करें। Setup Wizard प्रोजेक्ट चुनें और Next पर क्लिक करें।
प्रोजेक्ट को एक नाम दें, जैसे AlwaysPrivesc, स्थान के लिए
C:\privesc
का उपयोग करें, समाधान और प्रोजेक्ट को एक ही निर्देशिका में रखें चुनें, और Create पर क्लिक करें।Next पर क्लिक करते रहें जब तक आप 4 में से 3 चरण पर नहीं पहुँचते (शामिल करने के लिए फ़ाइलें चुनें)। Add पर क्लिक करें और उस Beacon payload को चुनें जिसे आपने अभी जनरेट किया है। फिर Finish पर क्लिक करें।
Solution Explorer में AlwaysPrivesc प्रोजेक्ट को हाइलाइट करें और Properties में, TargetPlatform को x86 से x64 में बदलें।
अन्य गुण भी हैं जिन्हें आप बदल सकते हैं, जैसे Author और Manufacturer जो स्थापित ऐप को अधिक वैध दिखा सकते हैं।
प्रोजेक्ट पर राइट-क्लिक करें और View > Custom Actions चुनें।
Install पर राइट-क्लिक करें और Add Custom Action चुनें।
Application Folder पर डबल-क्लिक करें, अपने beacon.exe फ़ाइल का चयन करें और OK पर क्लिक करें। यह सुनिश्चित करेगा कि beacon payload इंस्टॉलर चलने पर तुरंत कार्यान्वित हो।
Custom Action Properties के तहत, Run64Bit को True में बदलें।
अंत में, इसे बनाएं।
यदि चेतावनी
File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'
दिखाई देती है, तो सुनिश्चित करें कि आपने प्लेटफ़ॉर्म को x64 पर सेट किया है।
MSI स्थापना
पृष्ठभूमि में दुर्भावनापूर्ण .msi
फ़ाइल की स्थापना को कार्यान्वित करने के लिए:
इस कमजोरियों का लाभ उठाने के लिए आप उपयोग कर सकते हैं: exploit/windows/local/always_install_elevated
एंटीवायरस और डिटेक्टर्स
ऑडिट सेटिंग्स
ये सेटिंग्स यह तय करती हैं कि क्या लॉग किया जा रहा है, इसलिए आपको ध्यान देना चाहिए
WEF
Windows Event Forwarding, यह जानना दिलचस्प है कि लॉग कहाँ भेजे जाते हैं
LAPS
LAPS स्थानीय व्यवस्थापक पासवर्डों के प्रबंधन के लिए डिज़ाइन किया गया है, यह सुनिश्चित करते हुए कि प्रत्येक पासवर्ड विशिष्ट, यादृच्छिक, और नियमित रूप से अपडेट किया गया है उन कंप्यूटरों पर जो एक डोमेन से जुड़े हैं। ये पासवर्ड सक्रिय निर्देशिका में सुरक्षित रूप से संग्रहीत होते हैं और केवल उन उपयोगकर्ताओं द्वारा एक्सेस किए जा सकते हैं जिन्हें ACLs के माध्यम से पर्याप्त अनुमतियाँ दी गई हैं, जिससे उन्हें अधिकृत होने पर स्थानीय व्यवस्थापक पासवर्ड देखने की अनुमति मिलती है।
LAPSWDigest
यदि सक्रिय है, तो सादा-टेक्स्ट पासवर्ड LSASS (स्थानीय सुरक्षा प्राधिकरण उपप्रणाली सेवा) में संग्रहीत होते हैं। WDigest के बारे में अधिक जानकारी इस पृष्ठ पर.
LSA सुरक्षा
Windows 8.1 से शुरू होकर, Microsoft ने स्थानीय सुरक्षा प्राधिकरण (LSA) के लिए बेहतर सुरक्षा पेश की है ताकि अविश्वसनीय प्रक्रियाओं द्वारा इसके मेमोरी को पढ़ने या कोड इंजेक्ट करने के प्रयासों को ब्लॉक किया जा सके, जिससे सिस्टम को और अधिक सुरक्षित किया जा सके। LSA सुरक्षा के बारे में अधिक जानकारी यहाँ.
Credentials Guard
Credential Guard को Windows 10 में पेश किया गया था। इसका उद्देश्य एक डिवाइस पर संग्रहीत क्रेडेंशियल्स को पास-थ-हैश हमलों जैसे खतरों से सुरक्षित रखना है।| Credentials Guard के बारे में अधिक जानकारी यहाँ।
Cached Credentials
डोमेन क्रेडेंशियल्स को स्थानीय सुरक्षा प्राधिकरण (LSA) द्वारा प्रमाणित किया जाता है और ऑपरेटिंग सिस्टम के घटकों द्वारा उपयोग किया जाता है। जब किसी उपयोगकर्ता के लॉगिन डेटा को एक पंजीकृत सुरक्षा पैकेज द्वारा प्रमाणित किया जाता है, तो उपयोगकर्ता के लिए डोमेन क्रेडेंशियल्स आमतौर पर स्थापित किए जाते हैं। Cached Credentials के बारे में अधिक जानकारी यहाँ.
Users & Groups
Enumerate Users & Groups
आपको यह जांचना चाहिए कि क्या आप जिन समूहों में शामिल हैं, उनमें कोई दिलचस्प अनुमतियाँ हैं
Privileged groups
यदि आप किसी विशेषाधिकार प्राप्त समूह का हिस्सा हैं, तो आप विशेषाधिकार बढ़ाने में सक्षम हो सकते हैं। विशेषाधिकार प्राप्त समूहों के बारे में जानें और उन्हें विशेषाधिकार बढ़ाने के लिए कैसे दुरुपयोग करें यहाँ:
Privileged GroupsToken manipulation
और अधिक जानें कि token क्या है इस पृष्ठ पर: Windows Tokens. दिलचस्प tokens के बारे में जानने और उन्हें दुरुपयोग करने के लिए निम्नलिखित पृष्ठ देखें:
Abusing TokensLogged users / Sessions
होम फ़ोल्डर
पासवर्ड नीति
क्लिपबोर्ड की सामग्री प्राप्त करें
चल रहे प्रक्रियाएँ
फ़ाइल और फ़ोल्डर अनुमतियाँ
सबसे पहले, प्रक्रियाओं की सूची बनाते समय प्रक्रिया की कमांड लाइन के अंदर पासवर्ड की जांच करें। जांचें कि क्या आप कुछ बाइनरी को ओवरराइट कर सकते हैं या यदि आपके पास बाइनरी फ़ोल्डर की लिखने की अनुमतियाँ हैं ताकि संभावित DLL Hijacking हमलों का लाभ उठाया जा सके:
हमेशा संभावित electron/cef/chromium debuggers की जांच करें, आप इसका दुरुपयोग करके विशेषाधिकार बढ़ा सकते हैं.
प्रक्रियाओं के बाइनरी की अनुमतियों की जांच करना
प्रक्रियाओं के बाइनरी के फ़ोल्डरों की अनुमतियों की जांच (DLL Hijacking)
Memory Password mining
आप procdump का उपयोग करके एक चल रहे प्रक्रिया का मेमोरी डंप बना सकते हैं। FTP जैसी सेवाओं में स्मृति में स्पष्ट पाठ में क्रेडेंशियल्स होते हैं, मेमोरी को डंप करने और क्रेडेंशियल्स को पढ़ने का प्रयास करें।
असुरक्षित GUI ऐप्स
SYSTEM के रूप में चलने वाले एप्लिकेशन एक उपयोगकर्ता को CMD उत्पन्न करने या निर्देशिकाओं को ब्राउज़ करने की अनुमति दे सकते हैं।
उदाहरण: "Windows Help and Support" (Windows + F1), "command prompt" के लिए खोजें, "Command Prompt खोलने के लिए क्लिक करें" पर क्लिक करें
सेवाएँ
सेवाओं की सूची प्राप्त करें:
Permissions
आप sc का उपयोग करके एक सेवा की जानकारी प्राप्त कर सकते हैं
यह अनुशंसा की जाती है कि प्रत्येक सेवा के लिए आवश्यक विशेषाधिकार स्तर की जांच करने के लिए Sysinternals से बाइनरी accesschk हो।
यह अनुशंसा की जाती है कि यह जांचें कि क्या "प्रमाणित उपयोगकर्ता" किसी सेवा को संशोधित कर सकते हैं:
आप accesschk.exe को XP के लिए यहाँ डाउनलोड कर सकते हैं
सेवा सक्षम करें
यदि आपको यह त्रुटि मिल रही है (उदाहरण के लिए SSDPSRV के साथ):
सिस्टम त्रुटि 1058 हुई है. सेवा शुरू नहीं की जा सकती, या तो क्योंकि इसे अक्षम किया गया है या क्योंकि इसके साथ कोई सक्षम उपकरण नहीं है।
आप इसे सक्षम करने के लिए उपयोग कर सकते हैं
यह ध्यान में रखें कि सेवा upnphost SSDPSRV पर निर्भर करती है (XP SP1 के लिए)
इस समस्या का एक और समाधान यह है कि चलाएँ:
सेवा बाइनरी पथ को संशोधित करें
उस परिदृश्य में जहां "प्रमाणित उपयोगकर्ता" समूह के पास एक सेवा पर SERVICE_ALL_ACCESS है, सेवा के निष्पादन योग्य बाइनरी को संशोधित करना संभव है। sc को संशोधित और निष्पादित करने के लिए:
सेवा पुनः प्रारंभ करें
Privileges को विभिन्न अनुमतियों के माध्यम से बढ़ाया जा सकता है:
SERVICE_CHANGE_CONFIG: सेवा बाइनरी की पुनः कॉन्फ़िगरेशन की अनुमति देता है।
WRITE_DAC: अनुमति पुनः कॉन्फ़िगरेशन को सक्षम करता है, जिससे सेवा कॉन्फ़िगरेशन बदलने की क्षमता मिलती है।
WRITE_OWNER: स्वामित्व अधिग्रहण और अनुमति पुनः कॉन्फ़िगरेशन की अनुमति देता है।
GENERIC_WRITE: सेवा कॉन्फ़िगरेशन बदलने की क्षमता को विरासत में लेता है।
GENERIC_ALL: सेवा कॉन्फ़िगरेशन बदलने की क्षमता को भी विरासत में लेता है।
इस कमजोरियों का पता लगाने और शोषण के लिए, exploit/windows/local/service_permissions का उपयोग किया जा सकता है।
Services binaries कमजोर अनुमतियाँ
जांचें कि क्या आप उस बाइनरी को संशोधित कर सकते हैं जो एक सेवा द्वारा निष्पादित होती है या यदि आपके पास उस फ़ोल्डर पर लिखने की अनुमतियाँ हैं जहाँ बाइनरी स्थित है (DLL Hijacking). आप wmic (system32 में नहीं) का उपयोग करके हर बाइनरी प्राप्त कर सकते हैं जो एक सेवा द्वारा निष्पादित होती है और अपनी अनुमतियों की जांच करने के लिए icacls का उपयोग कर सकते हैं:
आप sc और icacls का भी उपयोग कर सकते हैं:
Services registry modify permissions
आपको यह जांचना चाहिए कि क्या आप किसी सेवा रजिस्ट्र्री को संशोधित कर सकते हैं। आप एक सेवा रजिस्ट्र्री पर अपनी अनुमति की जांच करने के लिए:
यह जांचना चाहिए कि Authenticated Users या NT AUTHORITY\INTERACTIVE के पास FullControl
अनुमतियाँ हैं या नहीं। यदि हाँ, तो सेवा द्वारा निष्पादित बाइनरी को बदला जा सकता है।
बाइनरी के निष्पादन के पथ को बदलने के लिए:
Services registry AppendData/AddSubdirectory permissions
यदि आपके पास एक रजिस्ट्री पर यह अनुमति है, तो इसका मतलब है कि आप इस रजिस्ट्री से उप रजिस्ट्री बना सकते हैं। Windows सेवाओं के मामले में, यह मनमाने कोड को निष्पादित करने के लिए पर्याप्त है:
AppendData/AddSubdirectory permission over service registryUnquoted Service Paths
यदि किसी निष्पादन योग्य फ़ाइल का पथ उद्धरण चिह्नों के अंदर नहीं है, तो Windows हर स्पेस से पहले समाप्त होने वाले को निष्पादित करने की कोशिश करेगा।
उदाहरण के लिए, पथ C:\Program Files\Some Folder\Service.exe के लिए Windows निष्पादित करने की कोशिश करेगा:
सूचीबद्ध करें सभी अनउद्धृत सेवा पथ, जो अंतर्निहित Windows सेवाओं से संबंधित नहीं हैं:
आप इस कमजोरियों का पता लगा सकते हैं और इसका लाभ उठा सकते हैं metasploit के साथ: exploit/windows/local/trusted\_service\_path
आप मैन्युअल रूप से एक सेवा बाइनरी बना सकते हैं metasploit के साथ:
Recovery Actions
Windows उपयोगकर्ताओं को यह निर्दिष्ट करने की अनुमति देता है कि यदि कोई सेवा विफल होती है तो क्या कार्रवाई की जानी चाहिए। इस सुविधा को एक बाइनरी की ओर इंगित करने के लिए कॉन्फ़िगर किया जा सकता है। यदि यह बाइनरी प्रतिस्थापनीय है, तो विशेषाधिकार वृद्धि संभव हो सकती है। अधिक विवरण आधिकारिक दस्तावेज़ में पाया जा सकता है।
Applications
Installed Applications
बाइनरी के अनुमतियों की जांच करें (शायद आप एक को अधिलेखित कर सकते हैं और विशेषाधिकार बढ़ा सकते हैं) और फोल्डरों (DLL Hijacking).
Write Permissions
जांचें कि क्या आप किसी कॉन्फ़िग फ़ाइल को संशोधित कर सकते हैं ताकि किसी विशेष फ़ाइल को पढ़ सकें या यदि आप किसी बाइनरी को संशोधित कर सकते हैं जो एक व्यवस्थापक खाते (schedtasks) द्वारा निष्पादित होने जा रही है।
सिस्टम में कमजोर फ़ोल्डर/फ़ाइल अनुमतियों को खोजने का एक तरीका है:
स्टार्टअप पर चलाएँ
जांचें कि क्या आप किसी रजिस्ट्री या बाइनरी को ओवरराइट कर सकते हैं जो किसी अन्य उपयोगकर्ता द्वारा निष्पादित होने वाली है। अधिकार बढ़ाने के लिए दिलचस्प autoruns स्थानों के बारे में अधिक जानने के लिए निम्नलिखित पृष्ठ पढ़ें:
Privilege Escalation with Autorunsड्राइवर
संभावित तीसरे पक्ष के अजीब/कमजोर ड्राइवरों की तलाश करें
PATH DLL Hijacking
यदि आपके पास PATH पर मौजूद एक फ़ोल्डर के अंदर लिखने की अनुमति है तो आप एक प्रक्रिया द्वारा लोड की गई DLL को हाईजैक कर सकते हैं और अधिकार बढ़ा सकते हैं।
PATH के अंदर सभी फ़ोल्डरों की अनुमतियों की जांच करें:
अधिक जानकारी के लिए कि इस चेक का दुरुपयोग कैसे करें:
Writable Sys Path +Dll Hijacking Privescनेटवर्क
शेयर
hosts file
hosts फ़ाइल पर हार्डकोडेड अन्य ज्ञात कंप्यूटरों की जांच करें
नेटवर्क इंटरफेस और DNS
Open Ports
बाहर से प्रतिबंधित सेवाओं की जांच करें
रूटिंग तालिका
ARP तालिका
फ़ायरवॉल नियम
फ़ायरवॉल से संबंधित कमांड के लिए इस पृष्ठ की जांच करें (नियमों की सूची, नियम बनाना, बंद करना, बंद करना...)
यहाँ और नेटवर्क एन्यूमरेशन के लिए कमांड
विंडोज़ सबसिस्टम फॉर लिनक्स (wsl)
बाइनरी bash.exe
भी C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe
में पाया जा सकता है।
यदि आप रूट उपयोगकर्ता प्राप्त करते हैं, तो आप किसी भी पोर्ट पर सुन सकते हैं (जब आप पहली बार nc.exe
का उपयोग करके किसी पोर्ट पर सुनते हैं, तो यह GUI के माध्यम से पूछेगा कि क्या nc
को फ़ायरवॉल द्वारा अनुमति दी जानी चाहिए)।
बश को रूट के रूप में आसानी से शुरू करने के लिए, आप --default-user root
आजमा सकते हैं।
आप WSL
फ़ाइल सिस्टम को फ़ोल्डर C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
में खोज सकते हैं।
Windows क्रेडेंशियल्स
Winlogon क्रेडेंशियल्स
Credentials manager / Windows vault
From https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault Windows Vault उपयोगकर्ताओं के क्रेडेंशियल्स को सर्वरों, वेबसाइटों और अन्य कार्यक्रमों के लिए संग्रहीत करता है जिनमें Windows उपयोगकर्ताओं को स्वचालित रूप से लॉग इन कर सकता है। पहले दृष्टिकोण में, यह ऐसा लग सकता है कि अब उपयोगकर्ता अपने फेसबुक क्रेडेंशियल्स, ट्विटर क्रेडेंशियल्स, जीमेल क्रेडेंशियल्स आदि को संग्रहीत कर सकते हैं, ताकि वे स्वचालित रूप से ब्राउज़रों के माध्यम से लॉग इन कर सकें। लेकिन ऐसा नहीं है।
Windows Vault उन क्रेडेंशियल्स को संग्रहीत करता है जिनसे Windows उपयोगकर्ताओं को स्वचालित रूप से लॉग इन कर सकता है, जिसका अर्थ है कि कोई भी Windows एप्लिकेशन जिसे किसी संसाधन (सर्वर या वेबसाइट) तक पहुँचने के लिए क्रेडेंशियल्स की आवश्यकता होती है इस Credential Manager और Windows Vault का उपयोग कर सकता है और उपयोगकर्ताओं द्वारा बार-बार उपयोगकर्ता नाम और पासवर्ड दर्ज करने के बजाय प्रदान किए गए क्रेडेंशियल्स का उपयोग कर सकता है।
जब तक एप्लिकेशन Credential Manager के साथ इंटरैक्ट नहीं करते, मुझे नहीं लगता कि उनके लिए किसी दिए गए संसाधन के लिए क्रेडेंशियल्स का उपयोग करना संभव है। इसलिए, यदि आपका एप्लिकेशन वॉल्ट का उपयोग करना चाहता है, तो इसे किसी न किसी तरह क्रेडेंशियल मैनेजर के साथ संवाद करना चाहिए और उस संसाधन के लिए क्रेडेंशियल्स का अनुरोध करना चाहिए डिफ़ॉल्ट स्टोरेज वॉल्ट से।
मशीन पर संग्रहीत क्रेडेंशियल्स की सूची बनाने के लिए cmdkey
का उपयोग करें।
फिर आप /savecred
विकल्पों के साथ runas
का उपयोग कर सकते हैं ताकि सहेजे गए क्रेडेंशियल्स का उपयोग किया जा सके। निम्नलिखित उदाहरण एक SMB शेयर के माध्यम से एक दूरस्थ बाइनरी को कॉल कर रहा है।
runas
का उपयोग एक प्रदान किए गए क्रेडेंशियल सेट के साथ।
Note that mimikatz, lazagne, credentialfileview, VaultPasswordView, or from Empire Powershells module.
DPAPI
डेटा प्रोटेक्शन एपीआई (DPAPI) डेटा के सममित एन्क्रिप्शन के लिए एक विधि प्रदान करता है, जो मुख्य रूप से विंडोज ऑपरेटिंग सिस्टम के भीतर सममित एन्क्रिप्शन के लिए असममित निजी कुंजियों के लिए उपयोग किया जाता है। यह एन्क्रिप्शन एक उपयोगकर्ता या सिस्टम रहस्य का उपयोग करता है जो एंट्रॉपी में महत्वपूर्ण योगदान देता है।
DPAPI उपयोगकर्ता के लॉगिन रहस्यों से निकाली गई सममित कुंजी के माध्यम से कुंजियों के एन्क्रिप्शन की अनुमति देता है। सिस्टम एन्क्रिप्शन के मामलों में, यह सिस्टम के डोमेन प्रमाणीकरण रहस्यों का उपयोग करता है।
DPAPI का उपयोग करके एन्क्रिप्टेड उपयोगकर्ता RSA कुंजियाँ %APPDATA%\Microsoft\Protect\{SID}
निर्देशिका में संग्रहीत होती हैं, जहाँ {SID}
उपयोगकर्ता के सुरक्षा पहचानकर्ता का प्रतिनिधित्व करता है। DPAPI कुंजी, जो उपयोगकर्ता की निजी कुंजियों को उसी फ़ाइल में सुरक्षित रखने वाले मास्टर कुंजी के साथ स्थित होती है, आमतौर पर 64 बाइट्स के यादृच्छिक डेटा से बनी होती है। (यह ध्यान रखना महत्वपूर्ण है कि इस निर्देशिका तक पहुँच प्रतिबंधित है, जिससे CMD में dir
कमांड के माध्यम से इसकी सामग्री को सूचीबद्ध करने से रोका जाता है, हालाँकि इसे PowerShell के माध्यम से सूचीबद्ध किया जा सकता है)।
आप mimikatz module dpapi::masterkey
को उपयुक्त तर्कों (/pvk
या /rpc
) के साथ इसका डिक्रिप्ट करने के लिए उपयोग कर सकते हैं।
मास्टर पासवर्ड द्वारा सुरक्षित क्रेडेंशियल फ़ाइलें आमतौर पर निम्नलिखित स्थान पर होती हैं:
आप mimikatz module dpapi::cred
का उपयोग उचित /masterkey
के साथ डिक्रिप्ट करने के लिए कर सकते हैं।
आप sekurlsa::dpapi
module के साथ memory से कई DPAPI masterkeys निकाल सकते हैं (यदि आप root हैं)।
PowerShell Credentials
PowerShell credentials अक्सर scripting और स्वचालन कार्यों के लिए एन्क्रिप्टेड क्रेडेंशियल्स को सुविधाजनक तरीके से स्टोर करने के लिए उपयोग किए जाते हैं। क्रेडेंशियल्स को DPAPI का उपयोग करके सुरक्षित किया जाता है, जिसका अर्थ है कि इन्हें केवल उसी उपयोगकर्ता द्वारा उसी कंप्यूटर पर डिक्रिप्ट किया जा सकता है जिस पर इन्हें बनाया गया था।
एक फ़ाइल से PS क्रेडेंशियल्स को decrypt करने के लिए जिसमें यह है, आप कर सकते हैं:
वाईफाई
Saved RDP Connections
आप इन्हें HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\
और HKCU\Software\Microsoft\Terminal Server Client\Servers\
में पा सकते हैं।
Recently Run Commands
रिमोट डेस्कटॉप क्रेडेंशियल प्रबंधक
Use the Mimikatz dpapi::rdg
module with appropriate /masterkey
to decrypt any .rdg files
आप Mimikatz sekurlsa::dpapi
मॉड्यूल के साथ मेमोरी से कई DPAPI मास्टरकीज़ निकाल सकते हैं।
Sticky Notes
लोग अक्सर Windows वर्कस्टेशनों पर StickyNotes ऐप का उपयोग पासवर्ड और अन्य जानकारी को सहेजने के लिए करते हैं, यह नहीं realizing कि यह एक डेटाबेस फ़ाइल है। यह फ़ाइल C:\Users\<user>\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite
पर स्थित है और इसे खोजना और जांचना हमेशा फायदेमंद होता है।
AppCmd.exe
ध्यान दें कि AppCmd.exe से पासवर्ड पुनर्प्राप्त करने के लिए आपको Administrator होना चाहिए और उच्च इंटीग्रिटी स्तर के तहत चलाना चाहिए।
AppCmd.exe %systemroot%\system32\inetsrv\
निर्देशिका में स्थित है।
यदि यह फ़ाइल मौजूद है तो संभव है कि कुछ क्रेडेंशियल्स कॉन्फ़िगर किए गए हों और उन्हें पुनर्प्राप्त किया जा सके।
This code was extracted from PowerUP:
SCClient / SCCM
जांचें कि C:\Windows\CCM\SCClient.exe
मौजूद है या नहीं।
इंस्टॉलर SYSTEM विशेषाधिकारों के साथ चलाए जाते हैं, कई DLL Sideloading के प्रति संवेदनशील हैं (जानकारी https://github.com/enjoiz/Privesc)।
फ़ाइलें और रजिस्ट्र्री (क्रेडेंशियल्स)
पुट्टी क्रेड्स
Putty SSH होस्ट कुंजी
SSH keys in registry
SSH निजी कुंजी रजिस्ट्री कुंजी HKCU\Software\OpenSSH\Agent\Keys
के अंदर संग्रहीत की जा सकती हैं, इसलिए आपको यह जांचना चाहिए कि क्या वहाँ कुछ दिलचस्प है:
यदि आप उस पथ के अंदर कोई प्रविष्टि पाते हैं, तो यह शायद एक सहेजा गया SSH कुंजी होगी। यह एन्क्रिप्टेड रूप में संग्रहीत होती है लेकिन https://github.com/ropnop/windows_sshagent_extract का उपयोग करके इसे आसानी से डिक्रिप्ट किया जा सकता है। इस तकनीक के बारे में अधिक जानकारी यहाँ: https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/
यदि ssh-agent
सेवा चल नहीं रही है और आप चाहते हैं कि यह बूट पर स्वचालित रूप से शुरू हो, तो चलाएँ:
ऐसा लगता है कि यह तकनीक अब मान्य नहीं है। मैंने कुछ ssh कुंजी बनाने की कोशिश की, उन्हें ssh-add
के साथ जोड़ा और ssh के माध्यम से एक मशीन में लॉगिन किया। रजिस्ट्री HKCU\Software\OpenSSH\Agent\Keys मौजूद नहीं है और procmon ने विषम कुंजी प्रमाणीकरण के दौरान dpapi.dll
के उपयोग की पहचान नहीं की।
अनटेंडेड फ़ाइलें
आप इन फ़ाइलों को metasploit का उपयोग करके भी खोज सकते हैं: post/windows/gather/enum_unattend
उदाहरण सामग्री:
SAM & SYSTEM बैकअप
क्लाउड क्रेडेंशियल्स
McAfee SiteList.xml
SiteList.xml नामक फ़ाइल के लिए खोजें
Cached GPP Pasword
एक विशेषता पहले उपलब्ध थी जो Group Policy Preferences (GPP) के माध्यम से मशीनों के एक समूह पर कस्टम स्थानीय व्यवस्थापक खातों को तैनात करने की अनुमति देती थी। हालाँकि, इस विधि में महत्वपूर्ण सुरक्षा खामियाँ थीं। सबसे पहले, Group Policy Objects (GPOs), जो SYSVOL में XML फ़ाइलों के रूप में संग्रहीत होते हैं, किसी भी डोमेन उपयोगकर्ता द्वारा पहुँचा जा सकता था। दूसरी बात, इन GPPs के भीतर पासवर्ड, जो एक सार्वजनिक रूप से प्रलेखित डिफ़ॉल्ट कुंजी का उपयोग करके AES256 के साथ एन्क्रिप्ट किए गए थे, किसी भी प्रमाणित उपयोगकर्ता द्वारा डिक्रिप्ट किए जा सकते थे। यह एक गंभीर जोखिम प्रस्तुत करता था, क्योंकि इससे उपयोगकर्ताओं को उच्चाधिकार प्राप्त करने की अनुमति मिल सकती थी।
इस जोखिम को कम करने के लिए, एक फ़ंक्शन विकसित किया गया था जो "cpassword" फ़ील्ड वाले स्थानीय रूप से कैश किए गए GPP फ़ाइलों को स्कैन करता है जो खाली नहीं है। ऐसी फ़ाइल मिलने पर, फ़ंक्शन पासवर्ड को डिक्रिप्ट करता है और एक कस्टम PowerShell ऑब्जेक्ट लौटाता है। यह ऑब्जेक्ट GPP और फ़ाइल के स्थान के बारे में विवरण शामिल करता है, जो इस सुरक्षा भेद्यता की पहचान और सुधार में मदद करता है।
इन फ़ाइलों के लिए खोजें C:\ProgramData\Microsoft\Group Policy\history
या C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history (W Vista से पहले):
Groups.xml
Services.xml
Scheduledtasks.xml
DataSources.xml
Printers.xml
Drives.xml
cPassword को डिक्रिप्ट करने के लिए:
Using crackmapexec to get the passwords: क्रैकमैपएक्सेक का उपयोग करके पासवर्ड प्राप्त करना:
IIS वेब कॉन्फ़िग
वेब.config का उदाहरण जिसमें क्रेडेंशियल्स हैं:
OpenVPN क्रेडेंशियल्स
लॉग्स
Ask for credentials
You can always ask the user to enter his credentials of even the credentials of a different user if you think he can know them (notice that asking the client directly for the credentials is really रिस्की):
संभावित फ़ाइल नाम जिनमें क्रेडेंशियल्स हो सकते हैं
जाने-माने फ़ाइलें जो कुछ समय पहले स्पष्ट-टेक्स्ट या Base64 में पासवर्ड रखती थीं
सभी प्रस्तावित फ़ाइलों की खोज करें:
Credentials in the RecycleBin
आपको बिन की जांच करनी चाहिए ताकि उसमें क्रेडेंशियल्स की तलाश की जा सके।
To recover passwords saved by several programs you can use: http://www.nirsoft.net/password_recovery_tools.html
Inside the registry
Other possible registry keys with credentials
Registry से openssh कुंजी निकालें।
ब्राउज़र्स इतिहास
आपको उन dbs की जांच करनी चाहिए जहाँ Chrome या Firefox से पासवर्ड संग्रहीत हैं। ब्राउज़रों के इतिहास, बुकमार्क और पसंदीदा की भी जांच करें ताकि शायद कुछ पासवर्ड वहाँ संग्रहीत हों।
ब्राउज़रों से पासवर्ड निकालने के लिए उपकरण:
Mimikatz:
dpapi::chrome
COM DLL ओवरराइटिंग
कंपोनेंट ऑब्जेक्ट मॉडल (COM) एक तकनीक है जो Windows ऑपरेटिंग सिस्टम के भीतर बनाई गई है जो विभिन्न भाषाओं के सॉफ़्टवेयर घटकों के बीच आपसी संचार की अनुमति देती है। प्रत्येक COM घटक को क्लास आईडी (CLSID) के माध्यम से पहचान किया जाता है और प्रत्येक घटक एक या एक से अधिक इंटरफेस के माध्यम से कार्यक्षमता को उजागर करता है, जिसे इंटरफेस आईडी (IIDs) के माध्यम से पहचाना जाता है।
COM वर्ग और इंटरफेस को रजिस्ट्री में HKEY_CLASSES_ROOT\CLSID और HKEY_CLASSES_ROOT\Interface के तहत परिभाषित किया गया है। यह रजिस्ट्री HKEY_LOCAL_MACHINE\Software\Classes + HKEY_CURRENT_USER\Software\Classes = HKEY_CLASSES_ROOT को मिलाकर बनाई गई है।
इस रजिस्ट्री के CLSIDs के अंदर आप बच्चे की रजिस्ट्री InProcServer32 पा सकते हैं जिसमें एक डिफ़ॉल्ट मान होता है जो एक DLL की ओर इशारा करता है और एक मान जिसे ThreadingModel कहा जाता है जो Apartment (सिंगल-थ्रेडेड), Free (मल्टी-थ्रेडेड), Both (सिंगल या मल्टी) या Neutral (थ्रेड न्यूट्रल) हो सकता है।
बुनियादी रूप से, यदि आप किसी भी DLL को ओवरराइट कर सकते हैं जो निष्पादित होने जा रही है, तो आप अधिकार बढ़ा सकते हैं यदि वह DLL किसी अन्य उपयोगकर्ता द्वारा निष्पादित होने जा रही है।
हमलावरों द्वारा COM Hijacking का उपयोग स्थिरता तंत्र के रूप में कैसे किया जाता है, यह जानने के लिए जांचें:
COM Hijackingफाइलों और रजिस्ट्री में सामान्य पासवर्ड खोजें
फाइल सामग्री के लिए खोजें
एक निश्चित फ़ाइल नाम के साथ फ़ाइल खोजें
रजिस्ट्री में कुंजी नामों और पासवर्ड के लिए खोजें
Tools that search for passwords
MSF-Credentials Plugin एक msf प्लगइन है जिसे मैंने शिकार के अंदर क्रेडेंशियल्स की खोज करने वाले हर मेटास्प्लॉइट POST मॉड्यूल को स्वचालित रूप से निष्पादित करने के लिए बनाया है। Winpeas स्वचालित रूप से इस पृष्ठ में उल्लिखित पासवर्ड वाले सभी फ़ाइलों की खोज करता है। Lazagne एक और शानदार उपकरण है जो एक सिस्टम से पासवर्ड निकालने के लिए है।
उपकरण SessionGopher सत्रों, उपयोगकर्ता नामों और पासवर्डों की खोज करता है कई उपकरणों के जो इस डेटा को स्पष्ट पाठ में सहेजते हैं (PuTTY, WinSCP, FileZilla, SuperPuTTY, और RDP)
Leaked Handlers
कल्पना करें कि एक प्रक्रिया जो SYSTEM के रूप में चल रही है एक नई प्रक्रिया खोलती है (OpenProcess()
) पूर्ण पहुंच के साथ। वही प्रक्रिया एक नई प्रक्रिया भी बनाती है (CreateProcess()
) कम विशेषाधिकार के साथ लेकिन मुख्य प्रक्रिया के सभी खुले हैंडल विरासत में लेते हुए।
फिर, यदि आपके पास कम विशेषाधिकार वाली प्रक्रिया तक पूर्ण पहुंच है, तो आप privileged प्रक्रिया के लिए खुला हैंडल प्राप्त कर सकते हैं जो OpenProcess()
के साथ बनाई गई थी और shellcode को इंजेक्ट कर सकते हैं।
इस उदाहरण को पढ़ें अधिक जानकारी के लिए इस भेद्यता का पता लगाने और शोषण करने के बारे में।
इस अन्य पोस्ट को पढ़ें अधिक पूर्ण व्याख्या के लिए कि कैसे विभिन्न स्तरों के अनुमतियों (केवल पूर्ण पहुंच नहीं) के साथ विरासत में मिली प्रक्रियाओं और थ्रेड्स के अधिक खुले हैंडल का परीक्षण और दुरुपयोग करें.
Named Pipe Client Impersonation
साझा मेमोरी खंड, जिसे pipes कहा जाता है, प्रक्रिया संचार और डेटा स्थानांतरण की अनुमति देते हैं।
Windows एक सुविधा प्रदान करता है जिसे Named Pipes कहा जाता है, जो असंबंधित प्रक्रियाओं को डेटा साझा करने की अनुमति देता है, यहां तक कि विभिन्न नेटवर्कों पर भी। यह एक क्लाइंट/सर्वर आर्किटेक्चर के समान है, जिसमें भूमिकाएँ named pipe server और named pipe client के रूप में परिभाषित होती हैं।
जब डेटा एक client द्वारा एक pipe के माध्यम से भेजा जाता है, तो server जिसने pipe सेट किया है, client की पहचान अपनाने की क्षमता रखता है, बशर्ते कि उसके पास आवश्यक SeImpersonate अधिकार हों। एक privileged प्रक्रिया की पहचान करना जो एक pipe के माध्यम से संवाद करती है जिसे आप अनुकरण कर सकते हैं, आपको उच्च विशेषाधिकार प्राप्त करने का अवसर प्रदान करता है जब वह प्रक्रिया उस pipe के साथ बातचीत करती है जिसे आपने स्थापित किया है। इस तरह के हमले को निष्पादित करने के लिए निर्देशों के लिए, सहायक मार्गदर्शिकाएँ यहाँ और यहाँ पाई जा सकती हैं।
इसके अलावा, निम्नलिखित उपकरण burp जैसे उपकरण के साथ एक named pipe संचार को इंटरसेप्ट करने की अनुमति देता है: https://github.com/gabriel-sztejnworcel/pipe-intercept और यह उपकरण सभी pipes को सूचीबद्ध करने और privescs खोजने की अनुमति देता है https://github.com/cyberark/PipeViewer
Misc
Monitoring Command Lines for passwords
जब एक उपयोगकर्ता के रूप में एक shell प्राप्त करते हैं, तो कुछ निर्धारित कार्य या अन्य प्रक्रियाएँ चल रही हो सकती हैं जो कमांड लाइन पर क्रेडेंशियल्स पास करती हैं। नीचे दिया गया स्क्रिप्ट हर दो सेकंड में प्रक्रिया कमांड लाइनों को कैप्चर करता है और वर्तमान स्थिति की तुलना पिछले स्थिति से करता है, किसी भी अंतर को आउटपुट करता है।
प्रक्रियाओं से पासवर्ड चुराना
कम विशेषाधिकार उपयोगकर्ता से NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC बायपास
यदि आपके पास ग्राफिकल इंटरफेस (कंसोल या RDP के माध्यम से) तक पहुंच है और UAC सक्षम है, तो Microsoft Windows के कुछ संस्करणों में एक अनधिकृत उपयोगकर्ता से "NT\AUTHORITY SYSTEM" जैसे किसी भी अन्य प्रक्रिया या टर्मिनल को चलाना संभव है।
यह विशेषाधिकारों को बढ़ाने और एक ही समय में UAC को बायपास करने की अनुमति देता है, उसी भेद्यता के साथ। इसके अतिरिक्त, कुछ भी स्थापित करने की आवश्यकता नहीं है और प्रक्रिया के दौरान उपयोग किया जाने वाला बाइनरी माइक्रोसॉफ्ट द्वारा हस्ताक्षरित और जारी किया गया है।
कुछ प्रभावित सिस्टम निम्नलिखित हैं:
इस कमजोरियों का लाभ उठाने के लिए, निम्नलिखित चरणों को करना आवश्यक है:
आपके पास निम्नलिखित GitHub रिपॉजिटरी में सभी आवश्यक फ़ाइलें और जानकारी हैं:
https://github.com/jas502n/CVE-2019-1388
व्यवस्थापक मध्यम से उच्च अखंडता स्तर / UAC बायपास
इससे अखंडता स्तरों के बारे में जानें:
Integrity Levelsफिर UAC और UAC बायपास के बारे में जानने के लिए इसे पढ़ें:
UAC - User Account Controlउच्च अखंडता से सिस्टम तक
नई सेवा
यदि आप पहले से ही उच्च अखंडता प्रक्रिया पर चल रहे हैं, तो SYSTEM पर पास करना केवल एक नई सेवा बनाकर और उसे निष्पादित करके आसान हो सकता है:
AlwaysInstallElevated
एक उच्च इंटीग्रिटी प्रक्रिया से आप AlwaysInstallElevated रजिस्ट्री प्रविष्टियों को सक्षम करने और एक रिवर्स शेल स्थापित करने की कोशिश कर सकते हैं, जिसका उपयोग .msi रैपर के रूप में किया जाता है। रजिस्ट्री कुंजियों के बारे में अधिक जानकारी और .msi पैकेज स्थापित करने के तरीके के लिए यहां पढ़ें।
High + SeImpersonate privilege to System
From SeDebug + SeImpersonate to Full Token privileges
यदि आपके पास ये टोकन विशेषाधिकार हैं (संभवतः आप इसे पहले से उच्च इंटीग्रिटी प्रक्रिया में पाएंगे), तो आप लगभग किसी भी प्रक्रिया को (संरक्षित प्रक्रियाएं नहीं) SeDebug विशेषाधिकार के साथ खोलने, प्रक्रिया का टोकन कॉपी करने, और उस टोकन के साथ एक मनमाना प्रक्रिया बनाने में सक्षम होंगे। इस तकनीक का उपयोग आमतौर पर SYSTEM के रूप में चल रही किसी भी प्रक्रिया को सभी टोकन विशेषाधिकारों के साथ चुना जाता है (हाँ, आप सभी टोकन विशेषाधिकारों के बिना SYSTEM प्रक्रियाएं पा सकते हैं)। आप एक कोड का उदाहरण यहां पा सकते हैं जो प्रस्तावित तकनीक को निष्पादित करता है।
Named Pipes
यह तकनीक मीटरप्रेटर द्वारा getsystem
में वृद्धि के लिए उपयोग की जाती है। यह तकनीक एक पाइप बनाने और फिर उस पाइप पर लिखने के लिए एक सेवा बनाने/दुरुपयोग करने पर आधारित है। फिर, सर्वर जिसने SeImpersonate
विशेषाधिकार का उपयोग करके पाइप बनाया, वह पाइप क्लाइंट (सेवा) के टोकन को प्रतिनिधित्व करने में सक्षम होगा, जिससे SYSTEM विशेषाधिकार प्राप्त होंगे।
यदि आप नाम पाइप के बारे में अधिक जानना चाहते हैं तो आपको यह पढ़ना चाहिए।
यदि आप उच्च इंटीग्रिटी से SYSTEM में जाने के लिए नाम पाइप का उपयोग करने का एक उदाहरण पढ़ना चाहते हैं तो आपको यह पढ़ना चाहिए।
Dll Hijacking
यदि आप एक dll को हाईजैक करने में सफल होते हैं जो SYSTEM के रूप में चल रही प्रक्रिया द्वारा लोड की जा रही है, तो आप उन अनुमतियों के साथ मनमाना कोड निष्पादित करने में सक्षम होंगे। इसलिए Dll Hijacking इस प्रकार के विशेषाधिकार वृद्धि के लिए भी उपयोगी है, और, इसके अलावा, यह उच्च इंटीग्रिटी प्रक्रिया से प्राप्त करना अधिक आसान है क्योंकि इसके पास dlls को लोड करने के लिए उपयोग की जाने वाली फ़ोल्डरों पर लिखने की अनुमति होगी। आप Dll हाईजैकिंग के बारे में अधिक जान सकते हैं यहां।
From Administrator or Network Service to System
From LOCAL SERVICE or NETWORK SERVICE to full privs
पढ़ें: https://github.com/itm4n/FullPowers
More help
Useful tools
Windows स्थानीय विशेषाधिकार वृद्धि वेक्टर की खोज के लिए सबसे अच्छा उपकरण: WinPEAS
PS
PrivescCheck
PowerSploit-Privesc(PowerUP) -- गलत कॉन्फ़िगरेशन और संवेदनशील फ़ाइलों की जांच करें (यहां जांचें)। पता चला।
JAWS -- कुछ संभावित गलत कॉन्फ़िगरेशन की जांच करें और जानकारी एकत्र करें (यहां जांचें)।
privesc -- गलत कॉन्फ़िगरेशन की जांच करें
SessionGopher -- यह PuTTY, WinSCP, SuperPuTTY, FileZilla, और RDP सहेजे गए सत्र की जानकारी निकालता है। स्थानीय में -Thorough का उपयोग करें।
Invoke-WCMDump -- क्रेडेंशियल मैनेजर से क्रेडेंशियल निकालता है। पता चला।
DomainPasswordSpray -- डोमेन के चारों ओर एकत्रित पासवर्ड को स्प्रे करें
Inveigh -- Inveigh एक PowerShell ADIDNS/LLMNR/mDNS/NBNS स्पूफर और मैन-इन-द-मिडल उपकरण है।
WindowsEnum -- बुनियादी privesc Windows एन्यूमरेशन
Sherlock ~~~~ -- ज्ञात privesc कमजोरियों की खोज करें (DEPRECATED for Watson)
WINspect -- स्थानीय जांच (एडमिन अधिकारों की आवश्यकता)
Exe
Watson -- ज्ञात privesc कमजोरियों की खोज करें (इसे VisualStudio का उपयोग करके संकलित करने की आवश्यकता है) (पूर्व-संकलित)
SeatBelt -- गलत कॉन्फ़िगरेशन की खोज के लिए होस्ट का एन्यूमरेशन करता है (यह privesc से अधिक जानकारी एकत्र करने का उपकरण है) (संकलन की आवश्यकता है) (पूर्व-संकलित)
LaZagne -- कई सॉफ़्टवेयर से क्रेडेंशियल निकालता है (गिटहब में पूर्व-संकलित exe)
SharpUP -- C# में PowerUp का पोर्ट
Beroot ~~~~ -- गलत कॉन्फ़िगरेशन की जांच करें (गिटहब में पूर्व-संकलित निष्पादन योग्य)। अनुशंसित नहीं। यह Win10 में ठीक से काम नहीं करता।
Windows-Privesc-Check -- संभावित गलत कॉन्फ़िगरेशन की जांच करें (पायथन से exe)। अनुशंसित नहीं। यह Win10 में ठीक से काम नहीं करता।
Bat
winPEASbat -- इस पोस्ट के आधार पर बनाया गया उपकरण (इसका सही तरीके से काम करने के लिए accesschk की आवश्यकता नहीं है लेकिन इसका उपयोग कर सकता है)।
Local
Windows-Exploit-Suggester -- systeminfo के आउटपुट को पढ़ता है और कार्यशील एक्सप्लॉइट्स की सिफारिश करता है (स्थानीय पायथन) Windows Exploit Suggester Next Generation -- systeminfo के आउटपुट को पढ़ता है और कार्यशील एक्सप्लॉइट्स की सिफारिश करता है (स्थानीय पायथन)
Meterpreter
multi/recon/local_exploit_suggestor
आपको सही संस्करण के .NET का उपयोग करके प्रोजेक्ट को संकलित करना होगा (यहां देखें)। पीड़ित होस्ट पर स्थापित .NET के संस्करण को देखने के लिए आप कर सकते हैं:
Bibliography
Last updated