
Zerologon AutoExploit Tool | CVE-2020-1472
يتم تطبيق بروتوكول التشفير الضعيف بدلاً من آلية المصادقة في بروتوكول Netlogon. يمكن لمهاجم غير مصادق استخدام ثغرة Zerologon لإنشاء كلمة مرور حساب الكمبيوتر لجهاز Domain Controller فارغة (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0). وبالتالي، يمكن للمهاجم الوصول إلى جهاز Domain Controller باستخدام بيانات الاعتماد التي أنشأها والحصول على بيانات اعتماد المستخدمين الآخرين. من خلال الحصول على بيانات اعتماد المستخدمين المصرح لهم، يمكن الحصول على جلسة بصلاحيات عالية على جهاز Domain Controller.
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
python3 ADZero.py dc_ip
باستخدام أداة ADZero التي طورها فريق Privia Security، يمكن الحصول على جلسة Command Prompt بصلاحية nt authority\system على جهاز Domain Controller الذي يحتوي على ثغرة Zerologon.
بتشغيل الأمر python3 ADZero.py dc_ip، يتم الحصول على جلسة Command Prompt على جهاز Domain Controller الذي يحمل عنوان IP dc_ip.
ترسل أداة ADZero طلب تسجيل دخول SMB ببيانات اعتماد فارغة للحصول على معلومات dc_name (اسم الكمبيوتر) و dom_name (اسم المجال) لجهاز Domain Controller المستهدف. من الرد المستلم، يمكن الحصول على معلومات dc_name (اسم الكمبيوتر) و dom_name (المجال) الخاصة بجهاز Domain Controller.
يتم تشغيل الثغرة باستخدام معلومات dc_name (اسم الكمبيوتر)، و com_name (حساب الكمبيوتر الناتج عن إضافة الرمز $ إلى نهاية اسم الكمبيوتر)، و dc_ip (عنوان IP لـ Domain Controller). نتيجة لطلب يتم إجراؤه عبر بروتوكول Netlogon Remote، يتم تشغيل الثغرة مما يؤدي إلى إنشاء كلمة مرور فارغة لحساب com_name (حساب الكمبيوتر) (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0).
باستخدام وحدة secretdump.py، إحدى وحدات Impacket، يتم تفريغ معلومات كلمة المرور الخاصة بمستخدم Administrator من جهاز Domain Controller كـ LM:NTLM hash باستخدام com_name (حساب الكمبيوتر)، و dom_name، و dc_ip، وكلمة المرور الفارغة التي تم إنشاؤها لـ com_name. بالإضافة إلى ذلك، يتم كتابة LM:NTLM hash الذي تم الحصول عليه أثناء عملية التفريغ إلى ملف باسم out.
نتيجة استخدام LM:NTLM hash الذي تم الحصول عليه مع وحدة smbexec.py من وحدات Impacket، يتم الحصول على جلسة Command Prompt على جهاز Domain Controller. تسمى تقنية استخدام قيمة LM:NTLM hash ككلمة مرور بـ Pass The Hash. يمكن الحصول على جلسة meterpreter على جهاز Domain Controller عن طريق استخدام قيمة LM:NTLM hash المكتوبة في ملف out مع وحدة الاستغلال exploit/windows/smb/psexec في Metasploit Framework.
