
مقدمة مختبرية لـ ZeroLogon
إعداد مخبري لاختبار ثغرة في استغلال ZeroLogon (CVE-2020-1472). يحتوي على نص Python يستخدم مكتبة Impacket لاختبار الثغرة، وجهاز افتراضي (VM) مع Windows Server 2019 مهيأ كوحدة تحكم بالمجال (DC).
يحاول النص تنفيذ تجاوز مصادقة Netlogon. سينهي فورًا عند نجاح التجاوز، ولن ينفذ أي عمليات Netlogon. عندما يتم تحديث DC، سيستسلم نص الكشف بعد إرسال عدد من أزواج استدعاءات RPC ويستنتج أن الهدف ليس عرضة للخطر (مع احتمال سلبي كاذب بنسبة 0.04%).
اختياري
ما عليك سوى كتابة vagrant up لتحميل بناء ضعيف لـ Windows Server 2019 كجهاز افتراضي.
ثم، قم بتكوين VM كوحدة تحكم بالمجال باتباع هذا البرنامج التعليمي.
أخيرًا، أطلق الهجوم على DC (zerologon_tester.py).
يوصى باستخدام النسخة المحملة في Docker من هذا الهجوم أو في بيئة افتراضية.
خيار Docker. قم بتشغيل:
# NOTE: On Windows, you may need to enable the `Hyper-V` Wiwndows feature.
# NOTE2: On Windows, you may need to switch to `Linux Containers`.
$ docker build -f Dockerfile . -t zerologon
# This command run the zerologon test on the DC with domain VAGRANT in the address 192.168.33.10
$ docker run zerologon VAGRANT 192.168.33.10
خيار VirtualEnv. قم بتشغيل:
$ python3 -m virtualenv zerologon
$ zerologon/Scripts/Activate.ps1
# NOTE: This may give you some issues with your firewall!!
$ pip install git+https://github.com/SecureAuthCorp/impacket
$ pip install -r requirements.txt
$ python zerologon_tester.py VAGRANT 192.168.33.10
يجب أن يبدو مخرجات هذا الهجوم شيئًا كهذا:

هذا النص مخصص فقط لاختبار جدوى الهجوم، ولا يستغل الخادم بأي طريقة أخرى. لا يقوم النص بأي تغييرات على DC. إذا كنت فضوليًا حول كيفية تنفيذ هجوم إثبات المفهوم (PoC)، فاطلع على هذا المقال أو مقال مشابه.
يمكن استخدام أهداف البرنامج النصي لاستهداف DC أو DC احتياطي. من المحتمل أن يعمل أيضًا ضد DC للقراءة فقط، ولكن لم يتم اختبار ذلك. يجب أن يكون اسم DC هو اسم الكمبيوتر NetBIOS الخاص به. إذا لم يكن هذا الاسم صحيحًا، فمن المحتمل أن يفشل النص مع خطأ STATUS_INVALID_COMPUTER_NAME. سيتم نشر ورقة بيضاء حول هذه الثغرة هنا.
ملاحظة: إذا سارت الأمور بشكل خاطئ وتلقيت خطأ
STATUS_INVALID_COMPUTER_NAME، قم بتشغيلnbtstat -A 192.168.33.10، سيعطيك ذلك بعض الإيضاح حول ما يحدث في ذلك العنوان. بخلاف ذلك، يمكنك دائمًا اختبار ما إذا كان الجهاز قابلًا للوصول من مضيفك عن طريق اختبار الاتصال به (ping 192.168.33.10).ملاحظة2: إذا فشل الهجوم، فقد يكون الجهاز قد تم تحديثه بتصحيحات أمان. تحقق من التحديثات وأزل أي شيء يشبه
تصحيحات الأمانمن عام 2020 فصاعدًا.