
CVE-2020-1472
CVE-2020-1472 - ثغرة Zero Logon - تنفيذ بايثون
الوصف
- برنامج بايثون يستخدم مكتبة Impacket لاختبار ثغرة CVE-2020-1472 - Zerologon (شكرًا لأبحاث Secura).
- ينبع الخلل من بروتوكول Netlogon عن بعد، المتاح على وحدات تحكم النطاق في ويندوز، والذي يُستخدم لمهام مختلفة تتعلق بمصادقة المستخدمين والآلات.
- تحديدًا، تكمن المشكلة في استخدام تشفير AES-CFB8 لجلسات Netlogon. يتطلب معيار AES-CFB8 أن يكون لكل "بايت" من النص العادي متجه تهيئة (IV) عشوائي، مما يمنع المهاجمين من تخمين كلمات المرور. ومع ذلك، تقوم دالة ComputeNetlogonCredential في Netlogon بتعيين الـ IV إلى 16 بت ثابتة – وليست عشوائية – مما يعني أن المهاجم يمكنه التحكم في النص المُفكَّك.
- وفقًا لباحثي Secura: "بسبب الاستخدام غير الصحيح لوضع تشغيل AES، من الممكن انتحال هوية أي حساب كمبيوتر (بما في ذلك حساب [وحدة تحكم النطاق] نفسها) وتعيين كلمة مرور فارغة لذلك الحساب في النطاق."

- يحاول البرنامج تجاوز مصادقة Netlogon. سينتهي البرنامج عند نجاح التجاوز.
- عندما تكون وحدة تحكم النطاق مصححة، سيتوقف البرنامج بعد إرسال 2000 زوج من استدعاءات RPC (الهدف غير معرض للخطر مع احتمال نتيجة سلبية خاطئة بنسبة 0.04%).
- لاحظ أن هذا يغير كلمة مرور حساب وحدة تحكم النطاق افتراضيًا. يتيح ذلك تنفيذ DCSync، ولكنه يقطع الاتصال بوحدات تحكم النطاق الأخرى.
- مزيد من المعلومات والبحث الأصلي هنا
المتطلبات الأساسية
pip install impacket
أو قم بتنزيل إصدار impacket هنا. قم بفك ضغطه، وفي الدليل الذي وضعته فيه، قم بتشغيل:
pip install .
الاستخدام
عند وجود وحدة تحكم نطاق باسم DC-NAME مع عنوان IP X.X.X.X، قم بتشغيل البرنامج كالتالي:
python cve-2020-1472.py DC-NAME X.X.X.X
اسم DC هو اسم كمبيوتر NetBIOS. إذا كان هذا الاسم غير صحيح، سيفشل البرنامج مع خطأ STATUS_INVALID_COMPUTER_NAME.