
PoC لـ Zerologon - جميع حقوق البحث تعود إلى Tom Tervoort من Secura
يتطلب أحدث إصدار من impacket من GitHub مع إضافة هياكل netlogon.
لاحظ أن هذا الإعداد يغير كلمة مرور حساب وحدة التحكم بالمجال بشكل افتراضي. نعم، يتيح لك هذا استخدام DCSync، لكنه يقطع الاتصال بوحدات التحكم الأخرى بالمجال، لذا كن حذرًا مع هذا!
مزيد من المعلومات والبحث الأصلي هنا
يعمل فقط على Python 3.6 والإصدارات الأحدث! إذا كان نظام التشغيل لديك مثبتًا عليه impacket (مثل Kali)، فتأكد من إزالة جميع التثبيتات الحالية أولاً. إذا استمرت أخطاء الاستيراد بعد ذلك، فقم بتشغيله من virtualenv أو pipenv.
cve-2020-1472-exploit.py مع عنوان IP واسم netbios لوحدة التحكم بالمجال-just-dc و -no-pass أو تجزئات فارغة وحساب DCHOSTNAME$إذا قمت بتثبيت إصدار من impacket من GitHub تم تحديثه في 15 سبتمبر 2020 أو بعده، فسيقوم secretsdump تلقائيًا بتفريغ كلمة مرور الجهاز النصية (مشفرة بالنظام الست عشري) عند تفريغ أسرار السجل المحلي. لاحظ أن هذا يختلف عن DCSync، حيث يستخدم DCSync حساب الجهاز، بينما يتطلب تفريغ السجل تنفيذ secretsdump ضد وحدة التحكم بالمجال كمسؤول مجال (مثل حساب Administrator المدمج).
بدلاً من ذلك، في الإصدارات الأقدم قليلاً من secretsdump، يمكنك تفريغ كلمة المرور نفسها عن طريق استخراج خلايا السجل أولاً ثم تشغيل secretsdump دون اتصال (سيعرض دائمًا المفتاح النصي لأنه لا يمكنه حساب تجزئات Kerberos).
باستخدام كلمة المرور النصية هذه، يمكنك تشغيل restorepassword.py مع الوسيط -hexpass. سيقوم هذا أولاً بالمصادقة باستخدام كلمة المرور الفارغة لنفس وحدة التحكم بالمجال ثم تعيين كلمة المرور مرة أخرى إلى الأصلية. تأكد من توفير اسم netbios وعنوان IP مرة أخرى كهدف، على سبيل المثال:
python restorepassword.py testsegment/s2016dc@s2016dc -target-ip 192.168.222.113 -hexpass e6ad4c4f64e71cf8c8020aa44bbd70ee711b8dce2adecd7e0d7fd1d76d70a848c987450c5be97b230bd144f3c3...etc