
تدقيق سريع دون اتصال لكلمات مرور Active Directory باستخدام Python.
تدقيق سريع دون اتصال لكلمات مرور Active Directory باستخدام Python.
Lil Pwny هو تطبيق Python لإجراء تدقيق دون اتصال لتجزئات NTLM لكلمات مرور المستخدمين، المستخرجة من Active Directory، مقابل كلمات المرور المخترقة المعروفة من Have I Been Pwned. سيتم إخراج النتائج بتنسيق JSON يحتوي على اسم المستخدم، التجزئة المطابقة (يمكن إخفاؤها)، وعدد مرات ظهور كلمة المرور المطابقة في HIBP.
يمكن العثور على مزيد من المعلومات حول Lil Pwny في مدونتي.
يوفر Lil Pwny وظيفة لتحسين قائمة كلمات المرور المخصصة الخاصة بك عن طريق إضافة أشكال شائعة الاستخدام من كلمات المرور المخصصة لديك. تشمل هذه:
P@ssw0rd)PASSWORD، Password)password!، !password)password123!، !passwordabc، passwordpassword)
password1950، password2034)قائمة كلمات مرور مخصصة مكونة من 100 كلمة مرور نصية تولد 49848660 شكلاً مختلفاً.
يبحث Lil Pwny عن المستخدمين الذين يستخدمون أشكالاً مختلفة من اسم المستخدم الخاص بهم ككلمة مرور.
يقوم بتحويل اسم المستخدم الخاص بالمستخدم إلى التنسيقات التالية:
ثم يتم تحويل هذه إلى تجزئات NTLM، ويتم تدقيقها مقابل تجزئات AD.
تم تطوير هذا التطبيق للاستفادة القصوى من المعالجة المتعددة في Python، بهدف العمل بأسرع ما يمكن على الأجهزة الاستهلاكية.
نظراً لأنه يستخدم المعالجة المتعددة، فكلما زاد عدد النوى المتوفرة لديك، زادت سرعة Lil Pwny. لا يزال لدي نتائج جيدة جداً مع عدد منخفض من النوى المنطقية:
سيقوم Lil Pwny بإخراج النتائج إما إلى stdout:
أو JSON:
{"localtime": "2021-00-00 00:00:00,000", "level": "NOTIFY", "source": "Lil Pwny", "match_type": "hibp", "detection_data": {"username": "RICKON.STARK", "hash": "32ED87BDB5FDC5E9CBA88547376818D4", "matches_in_hibp": "24230577", "obfuscated": "True"}}
يمكنك إعادة توجيه مخرجات JSON الخاصة بـ Lil Pwny إلى ملف:
lil-pwny -ad ... > lil-pwny-results.json
يمكن استيعاب هذا التسجيل المنسق بتنسيق JSON بسهولة في SIEM أو أداة تحليل سجلات أخرى، ويمكن تغذيته للنصوص البرمجية أو المنصات الأخرى لإجراءات الحل التلقائية.
التثبيت عبر pip
pip install lil-pwny
سيتم تثبيت Lil-pwny كأمر عام، استخدمه كالتالي:
usage: lil-pwny [-h] -hibp HIBP [-v] [-c CUSTOM] [-custom-enhance CUSTOM_ENHANCE] -ad AD_HASHES [-d] [-output {file,stdout,json}] [-o] [--verbose]
Fast offline auditing of Active Directory passwords using Python
options:
-h, --help show this help message and exit
-hibp HIBP, --hibp HIBP
The .txt file containing HIBP NTLM hashes
-v, --version show program's version number and exit
-c CUSTOM, --custom CUSTOM
.txt file containing additional custom passwords to check for
-custom-enhance CUSTOM_ENHANCE, --custom-enhance CUSTOM_ENHANCE
generate an enhanced custom password list based on the provided custom password list. Must be used with -c/--custom flag. The enhanced list will stored in memory and not
written to disk. Provide the minimum length of the passwords you want. Default is 8
-ad AD_HASHES, --ad-hashes AD_HASHES
The .txt file containing NTLM hashes from AD users
-d, --duplicates Output a list of duplicate password users
-output {file,stdout,json}, --output {file,stdout,json}
Where to send results
-o, --obfuscate Obfuscate hashes from discovered matches by hashing with a random salt
--verbose Turn on verbose logging
مثال:
lil-pwny -hibp ~/hibp_hashes.txt -ad ~/ad_user_hashes.txt -c ~/custom_passwords.txt -output stdout -do
على وحدة تحكم المجال استخدم ntdsutil لإنشاء تفريغ IFM لمجال AD الخاص بك. قم بتشغيل ما يلي في نافذة PowerShell مرتفعة الصلاحيات:
ntdsutil
activate instance ntds
ifm
create full **output path**
لاسترداد تجزئات NTLM من بيانات IFM الخاصة بـ AD، يلزم وحدة PowerShell DSInternals.
بمجرد التثبيت، استخدم خلية SYSTEM في بيانات IFM لاسترداد التجزئات بتنسيق username:hash وحفظها في الملف ad_ntlm_hashes.txt
$bootKey = Get-BootKey -SystemHivePath '.\registry\SYSTEM'
Get-ADDBAccount -All -DBPath '.\Active Directory\ntds.dit' -BootKey $bootKey | Format-Custom -View HashcatNT | Out-File ad_ntlm_hashes.txt -Encoding ASCII
يمكن تنزيل الملف من واجهة برمجة تطبيقات HIBP باستخدام أداة .NET هنا
يمكن استخدام نص PowerShell الموجود في دليل scripts لإزالة الحسابات غير المرغوب فيها من إخراج IFM قبل المعالجة. تتضمن هذه: