
विंडोज के लिए विशेषाधिकार वृद्धि गणना स्क्रिप्ट
सामान्य Windows कमजोरियों और कॉन्फ़िगरेशन समस्याओं की शीघ्रता से पहचान करें, जो सार्वजनिक सुरक्षा मानकों द्वारा आवश्यक रूप से कवर नहीं की जाती हैं, और शोषण तथा शोषण-पश्चात कार्यों के लिए उपयोगी जानकारी एकत्र करें।
[!IMPORTANT] इस टूल का उपयोग करते समय ध्यान देने योग्य एक प्रमुख पहलू यह है कि सभी एक्सेस कंट्रोल जाँच वर्तमान उपयोगकर्ता के संदर्भ में की जाती हैं। इसलिए, यदि इसे प्रशासकीय विशेषाधिकारों के साथ चलाया जाता है, तो गलत परिणाम उत्पन्न करने से बचने के लिए कई कमज़ोरी जाँचों को वास्तव में छोड़ दिया जाता है।
स्क्रिप्ट यहाँ डाउनलोड करें: PrivescCheck.ps1
[!TIP] उपरोक्त लिंक का उपयोग सीधे PowerShell टर्मिनल में
(New-Object Net.WebClient).DownloadString(...)के साथ भी किया जा सकता है।
क्या स्थानीय रूप से विशेषाधिकार बढ़ाने का कोई स्पष्ट तरीका है?
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck"
क्या ऐसी अतिरिक्त जानकारी है जिसका उपयोग शोषण-पश्चात या तृतीय-पक्ष सॉफ़्टवेयर में कमज़ोरियाँ खोजने के लिए किया जा सकता है?
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML"
क्या ऐसी कॉन्फ़िगरेशन समस्याएँ हैं जो सामान्य सुरक्षा मानकों द्वारा कवर नहीं की जाती हैं?
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Audit -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML,CSV,XML"
Invoke-PrivescCheck [-Extended] [-Audit] [-Experimental] [-Report <PREFIX>]
[-Format <FORMAT>[,...]] [-Risky] [-Silent] [-Force]
-Extended
Include all "extended" checks in the scan (see README).
-Audit
Include all "audit" checks in the scan.
-Experimental
Include all "experimental" checks in the scan. Use only if you know
what you are doing.
-Report <PREFIX>
Generate at least one report file. The output filename will be
"PREFIX.txt" by default. The extension is automatically appended
based on the report format (see "-Format <FORMAT>[,...]").
-Format <FORMAT>[,...]
Specify the format of the output report file(s). If not set, the
default value is "TXT". Supported formats are: "TXT", "HTML", "CSV",
and "XML".
-Risky
Include checks marked as "risky", i.e. checks that are likely to
trigger a blocking action by an endpoint protection solution. Use with
caution.
-Silent
Suppress terminal output. This can be useful if you want to run the
script as part of a batch file, in a scheduled task for instance.
-Force
Force execution and ignore warnings. Typically, the script stops if
it is executed with administrator privileges. Use this option to
execute it anyway.
-Format TXT)विकल्प -Report <PREFIX> (साथ -Format TXT) का उपयोग करें ताकि आप एक कच्चा टेक्स्ट रिपोर्ट उत्पन्न करना चाहते हैं। आउटपुट उसी के समान है जो आप टर्मिनल में देखेंगे, सिवाय इसके कि इसमें सभी टेक्स्ट संपादकों के साथ बेहतर (पुरानी-संगतता) के लिए केवल ASCII वर्ण हैं।

-Format HTML)विकल्प -Report <PREFIX> को -Format HTML के साथ उपयोग करें ताकि आप एक HTML रिपोर्ट उत्पन्न करना चाहते हैं। आउटपुट फ़ाइल को वेब ब्राउज़र में खोला जा सकता है। यह कच्चे टेक्स्ट रिपोर्ट की तुलना में डेटा को देखने के लिए अधिक सुविधाजनक है। इसके अलावा, यह सॉर्टिंग और फ़िल्टरिंग क्षमताएँ प्रदान करता है!

-Format CSV) & XML (-Format XML)विकल्प -Report <PREFIX> को -Format CSV या -Format XML के साथ उपयोग करें ताकि आप एक CSV या XML रिपोर्ट उत्पन्न करना चाहते हैं। आउटपुट फ़ाइल स्वचालित रिपोर्टिंग टूल द्वारा परिणामों के पार्सिंग को सुविधाजनक बनाने के लिए होती है।
[!NOTE] हालाँकि आउटपुट प्रारूप अभी तक प्रलेखित नहीं है, आप पहले से उत्पन्न फ़ाइल की संरचना का विश्लेषण करके आसानी से इसका पता लगा सकते हैं। आप प्रत्येक जाँच के
Idमान का उपयोग उनकी पहचान करने के लिए कर सकते हैं।
Base प्रकार की जाँच हमेशा निष्पादित की जाएगी, जब तक कि स्क्रिप्ट प्रशासक के रूप में न चलाई जाए। वे मुख्य रूप से विशेषाधिकार वृद्धि कमजोरियों या अन्य महत्वपूर्ण मुद्दों की पहचान करने के लिए होती हैं।
-Extended)Extended प्रकार की जाँच केवल तभी निष्पादित की जा सकती है यदि कमांड लाइन पर -Extended विकल्प निर्दिष्ट किया गया हो। वे मुख्य रूप से अतिरिक्त जानकारी प्रदान करने के लिए होती हैं जो शोषण विकास या शोषण-पश्चात के लिए उपयोगी हो सकती है।
-Audit)Audit प्रकार की जाँच केवल तभी निष्पादित की जा सकती है यदि कमांड लाइन पर -Audit विकल्प निर्दिष्ट किया गया हो। वे मुख्य रूप से कॉन्फ़िगरेशन ऑडिट के संदर्भ में प्रासंगिक जानकारी प्रदान करने के लिए होती हैं।
डिफ़ॉल्ट रूप से, PowerShell निष्पादन नीति क्लाइंट पर Restricted और सर्वर पर RemoteSigned पर सेट होती है, जब एक नई powershell.exe प्रक्रिया शुरू की जाती है। ये नीतियाँ (अहस्ताक्षरित) स्क्रिप्ट के निष्पादन को अवरुद्ध करती हैं, लेकिन उन्हें वर्तमान दायरे में निम्नानुसार ओवरराइड किया जा सकता है।
Set-ExecutionPolicy Bypass -Scope Process -Force
. .\PrivescCheck.ps1
हालाँकि, यह तरकीब तब काम नहीं करती जब निष्पादन नीति GPO के माध्यम से लागू की जाती है। इस मामले में, एक नया PowerShell सत्र शुरू करने के बाद, आप स्क्रिप्ट को निम्नानुसार लोड कर सकते हैं।
Get-Content .\PrivescCheck.ps1 | Out-String | Invoke-Expression
प्रतिबंधित भाषा मोड को बायपास करने का एक सामान्य तरीका PSv2 का उपयोग करना है क्योंकि यह इस सुरक्षा को लागू नहीं करता है। इसलिए, विकास प्रयास का एक महत्वपूर्ण हिस्सा इस पूर्व-संगतता को बनाए रखने में जाता है।
[!NOTE] हालाँकि PowerShell संस्करण 2
अभी भी Windows के हाल के संस्करणों पर डिफ़ॉल्ट रूप से सक्षम है(Windows से PowerShell 2.0 हटाना), यह .Net framework संस्करण 2.0 के बिना नहीं चल सकता, जिसके लिए मैन्युअल इंस्टॉल की आवश्यकता होती है।
यदि आप इस स्क्रिप्ट को Meterpreter सत्र के भीतर चलाते हैं, तो आपको संभवतः "टाइमआउट" त्रुटि मिलेगी। ऐसा इसलिए है क्योंकि Metasploit 15 सेकंड का डिफ़ॉल्ट टाइमआउट मान उपयोग करता है, जो स्क्रिप्ट के विशिष्ट निष्पादन को पूरा करने के लिए पर्याप्त नहीं है।
meterpreter > load powershell
Loading extension powershell...Success.
meterpreter > powershell_import /local/path/to/PrivescCheck.ps1
[+] File successfully imported. No result was returned.
meterpreter > powershell_execute "Invoke-PrivescCheck"
[-] Error running command powershell_execute: Rex::TimeoutError Operation timed out.
sessions कमांड के -t विकल्प के कारण एक अलग टाइमआउट सेट करना संभव है (दस्तावेज़ीकरण)। निम्नलिखित उदाहरण में, ID 1 वाले सत्र के लिए 2 मिनट का टाइमआउट सेट किया गया है, लेकिन आप एक और भी अधिक मान सेट करना चाह सकते हैं।
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"