
أداة تدقيق كلمات مرور المجال لمختبرِي الاختراق
DPAT هي أداة أمان مبنية على Python تقوم بتحليل تجزئات كلمات المرور المستخرجة من وحدات تحكم مجال Active Directory. تقوم بإنشاء تقارير HTML شاملة تعرض إحصائيات استخدام كلمات المرور، وانتهاكات السياسات، ورؤى أمنية من كل من تفريغات NTDS ونتائج كسر كلمات المرور.



تثبيت التبعيات الأساسية:
pip install -r requirements.txt
للتطوير والاختبار:
pip install -r requirements-dev.txt
إذا كنت تفضل تثبيت التبعيات بشكل فردي:
pip install pycryptodome
poetry install
python dpat.py -n customer.ntds -c hashcat.potfile -p 8
python dpat.py -n <ntds_file> -c <cracked_file> -p <min_password_length>
-n, --ntdsfile: ملف NTDS (مخرجات من secretsdump.py)-c, --crackfile: ملف مخرجات كسر كلمة المرور (hashcat.potfile, john.pot, إلخ.)-p, --minpasslen: الحد الأدنى لطول كلمة المرور من سياسة المجال-o, --outputfile: اسم ملف تقرير HTML (الافتراضي: _DomainPasswordAuditReport.html)-d, --reportdirectory: دليل الإخراج (الافتراضي: "DPAT Report")-s, --sanitize: تعقيم كلمات المرور والتجزئات في التقارير-g, --groupsdirectory: دليل يحتوي على ملفات العضوية الجماعية-m, --machineaccts: تضمين حسابات الأجهزة في التحليل-k, --krbtgt: تضمين حساب krbtgt في التحليل-kz, --kerbfile: ملف يحتوي على حسابات قابلة للـ Kerberoast-w, --writedb: كتابة قاعدة بيانات SQLite على القرص للفحص--no-prompt: تخطي مطالبة المتصفح (مفيد للأتمتة)-dbg, --debug: تمكين مخرجات التصحيحتحليل أساسي:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8
مع تحليل المجموعة:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -g /path/to/groups
تقرير معقم:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
مع حسابات قابلة للـ Kerberoast:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -kz kerberoastable.txt
يجب أن يكون ملف NTDS بالتنسيق الناتج عن secretsdump.py:
domain\username:RID:lmhash:nthash:::
تنسيق Hashcat:
nthash:password
lmhash:password
تنسيق John the Ripper:
$NT$nthash:password
$LM$lmhash:password
كلمات المرور المشفرة بالنظام الست عشري:
nthash:$HEX[68656c6c6f]
يجب أن تحتوي ملفات العضوية الجماعية على اسم مستخدم واحد في كل سطر:
domain\username
على وحدة تحكم المجال، قم بإنشاء نسخة احتياطية IFM (التثبيت من الوسائط):
ntdsutil "ac in ntds" "ifm" "cr fu c:\temp" q q
يؤدي ذلك إلى إنشاء:
c:\temp\Active Directory\ntds.ditc:\temp\registry\SYSTEMاستخدم secretsdump.py لتحويل النسخة الاحتياطية:
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer
لسجل كلمات المرور (إذا كان متاحًا):
secretsdump.py -system registry/SYSTEM -ntds "Active Directory/ntds.dit" LOCAL -outputfile customer -history
باستخدام Hashcat:
hashcat -m 1000 customer.ntds /path/to/wordlist
باستخدام John the Ripper:
john --format=NT customer.ntds
يقوم DPAT بإنشاء تقارير شاملة تتضمن:
يحتوي المستودع على بيانات عينة في دليل sample_data/ للاختبار:
customer.ntds: ملف NTDS عينةoclHashcat.pot: عينة كلمات مرور مكسورةhistory/: بيانات عينة مع سجل كلمات المرورالاختبار باستخدام بيانات العينة:
python dpat.py -n sample_data/customer.ntds -c sample_data/oclHashcat.pot -p 8
قم بإنشاء ملفات العضوية الجماعية باستخدام PowerShell:
Get-NetGroupMember -Recurse -GroupName "Domain Admins" > "Domain Admins.txt"
استخدم برنامج parse-kerberoastable.py من CypherHound لإنشاء ملفات حسابات قابلة للـ Kerberoast لتحليل محسّن.
يمكنك إدخال الملفات التي تم إنشاؤها بواسطة CypherHound في DPAT لتوفير إحصائيات إضافية لتقارير DPAT. حاليًا، الإحصائيات الإضافية هي:
إذا كنت ترغب في استخدامه لتوفير هذه الإحصائيات الإضافية، فستحتاج إلى استخدام البرامج النصية هنا:
-g.-kz.إنها برامج نصية بسيطة مع تعليمات الاستخدام المذكورة أعلاه، واستخدامها يجب أن يكون مباشرًا.
استخدم العلامة -s لإنشاء تقارير معقمة مناسبة للمشاركة:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -s
"No module named 'distutils'"
تقارير فارغة
روابط التفاصيل المفقودة
قم بتمكين مخرجات التصحيح لاستكشاف الأخطاء وإصلاحها:
python dpat.py -n customer.ntds -c hashcat.potfile -p 8 -dbg
تشغيل مجموعة الاختبار:
python -m unittest tests.unit.test_core -v
python -m unittest tests.integration.test_integration -v
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
للمشكلات أو الأسئلة أو المساهمات، يرجى استخدام متتبع المشكلات في GitHub.