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