يهدف هذا البرنامج النصي إلى تحديد نقاط الضعف في تصعيد الامتياز المحلي (LPE) والتي عادة ما تكون بسبب مشكلات تكوين Windows ، أو الممارسات السيئة. يمكنه أيضًا جمع معلومات مفيدة لبعض مهام الاستغلال وما بعد الاستغلال.
بعد تنزيل البرنامج النصي ونسخه على جهاز Windows الهدف ، قم بتشغيله باستخدام أحد الأوامر أدناه.
ملحوظة
لا تحتاج إلى استنساخ المستودع بأكمله. الملف PrivescCheck.ps1 هو نص powerShell المستقل الذي يحتوي على جميع التعليمات البرمجية المطلوبة بواسطة PrivescCheck لتشغيلها.
مهم
في الأوامر أدناه ، الأول . (DOT) يستخدم لـ "DOT Sourcing" البرنامج النصي ، بحيث يمكن استخدام الوظائف و CMDLETs في النطاق الحالي (انظر ميزة مصادر PowerShell DOT).
حدد القضايا المهمة بسرعة ، مثل نقاط الضعف على تصعيد الامتياز المحلي.
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 " جميع الشيكات التي تم تنفيذها في privesccheck لها نوع . هذه القيمة ، والأعلام المحددة في سطر الأوامر ، ستحدد ما إذا كانت يتم تشغيلها أم لا.
سيتم دائمًا تنفيذ عمليات التحقق من Base النوع ، ما لم يتم تشغيل البرنامج النصي كمسؤول. وهي مخصصة بشكل رئيسي لتحديد نقاط الضعف على تصعيد الامتياز ، أو غيرها من القضايا المهمة.
لا يمكن تنفيذ عمليات التحقق من النوع Extended إلا إذا تم تحديد الخيار -Extended في تحديد سطر الأوامر. وهي مخصصة بشكل أساسي لتوفير معلومات إضافية قد تكون مفيدة لتطوير استغلال ، أو بعد الاستغلال.
لا يمكن تنفيذ عمليات التحقق من Audit النوع إلا إذا تم تحديد الخيار -Audit على سطر الأوامر. وهي مخصصة بشكل أساسي لتوفير المعلومات ذات الصلة في سياق تدقيق التكوين.
لا يمكن تنفيذ عمليات التحقق من النوع Experimental إلا إذا تم تحديد الخيار -Experimental على سطر الأوامر. هذه شيكات غير مستقرة تحتاج إلى مزيد من العمل. استخدمها بحذر.
بشكل افتراضي ، تم تعيين سياسة تنفيذ PowerShell على Restricted العملاء ، وتم RemoteSigned على الخوادم ، عند بدء عملية powershell.exe الجديدة. هذه السياسات تمنع تنفيذ البرامج النصية (غير الموقعة) ، ولكن يمكن تجاوزها في النطاق الحالي على النحو التالي.
Set-ExecutionPolicy Bypass - Scope Process - Force
. .PrivescCheck.ps1ومع ذلك ، لا تعمل هذه الخدعة عندما يتم فرض سياسة التنفيذ من خلال GPO. في هذه الحالة ، بعد بدء جلسة PowerShell جديدة ، يمكنك تحميل البرنامج النصي على النحو التالي.
Get-Content .PrivescCheck.ps1 | Out-String | Invoke-Expressionتتمثل إحدى الطرق الشائعة لتجاوز وضع اللغة المقيدة في بدء الإصدار 2 من PowerShell لأنه لا ينفذ هذه الحماية. لذلك ، فإن جزءًا مهمًا من جهود التنمية يذهب إلى الحفاظ على هذا التوافق.
ملحوظة
على الرغم من أن PowerShell الإصدار 2 لا يزال يتم تمكينه افتراضيًا على الإصدارات الحديثة من Windows ، إلا أنه لا يمكن تشغيله بدون .NET Framework Version 2.0 ، والذي يتطلب تثبيتًا يدويًا.
إذا قمت بتشغيل هذا البرنامج النصي داخل جلسة متر ، فمن المحتمل أن تحصل على خطأ "مهلة". لدى 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. من الممكن تعيين قيمة مختلفة بفضل خيار -t لأمر sessions (الوثائق). في المثال التالي ، يتم تعيين مهلة دقيقتان للجلسة مع ID 1 .
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"