
سكربت بلغة Python يستخدم مكتبة Impacket لاختبار الثغرة الأمنية لاستغلال Zerologon (CVE-2020-1472).
يحاول تنفيذ تجاوز مصادقة Netlogon. سينهي السكربت تنفيذه فورًا عند نجاح عملية التجاوز، ولن ينفذ أي عمليات Netlogon. عندما تكون وحدة تحكم المجال محدّثة بالإصلاح، سيستسلم سكربت الكشف بعد إرسال 2000 زوج من استدعاءات RPC ويستنتج أن الهدف غير معرّض للثغرة (مع احتمال نتيجة سلبية خاطئة بنسبة 0.04%).
يتطلب Python 3.7 أو إصدارًا أحدث و Pip. ثبّت التبعيات على النحو التالي:
pip install -r requirements.txt
لاحظ أن تشغيل pip install impacket يجب أن يعمل أيضًا، طالما أن السكربت لم يُكسَر بسبب إصدارات Impacket المستقبلية.
يمكن استخدام أهداف السكربت لاستهداف وحدة تحكم مجال (DC) أو وحدة تحكم مجال احتياطية. من المحتمل أن يعمل أيضًا ضد وحدة تحكم مجال للقراءة فقط (read-only DC)، ولكن لم يتم اختبار ذلك. بافتراض وجود وحدة تحكم مجال باسم EXAMPLE-DC مع عنوان IP 1.2.3.4، شغّل السكربت على النحو التالي:
./zerologon_tester.py EXAMPLE-DC 1.2.3.4
يجب أن يكون اسم وحدة التحكم هو اسم الكمبيوتر NetBIOS الخاص بها. إذا لم يكن هذا الاسم صحيحًا، فمن المرجح أن يفشل السكربت مع خطأ STATUS_INVALID_COMPUTER_NAME.
سيتم نشر ورقة تقنية (Whitepaper) حول هذه الثغرة هنا: https://www.secura.com/blog/zero-logon يوم الاثنين 14 سبتمبر.