
يربط بين تجزئات NTLM وبيانات BloodHound وكلمات المرور المكسورة لاختبار الاختراق في Active Directory. يقوم باستيراد NTDS.dit، والمزامنة مع Neo4j، وتحليل جودة كلمة المرور، وإنشاء قوائم كلمات مخصصة.
يدعم KnowsMore رسميًا Python 3.8+.
knowsmore.py --word-list -o wl.txt --batch --name companyname
knowsmore.py --word-list -o wl.txt --batch --name companyname -l 1
ملاحظة: تشير المعامل
-lإلى مساحة الأحرف المستبدلة (leets char space)، حيث 1 يعني بدون استبدال و 3 هو أقصى استبدال متاح.
knowsmore --stats
سينتج هذا الأمر عدة إحصائيات حول كلمات المرور مثل الإخراج أدناه
KnowsMore v0.1.4 by Helvio Junior
Active Directory, BloodHound, NTDS hashes and Password Cracks correlation tool
https://github.com/helviojunior/knowsmore
[+] Startup parameters
command line: knowsmore --stats
module: stats
database file: knowsmore.db
[+] start time 2023-01-11 03:59:20
[?] General Statistics
+-------+----------------+-------+
| top | description | qty |
|-------+----------------+-------|
| 1 | Total Users | 95369 |
| 2 | Unique Hashes | 74299 |
| 3 | Cracked Hashes | 23177 |
| 4 | Cracked Users | 35078 |
+-------+----------------+-------+
[?] General Top 10 passwords
+-------+-------------+-------+
| top | password | qty |
|-------+-------------+-------|
| 1 | password | 1111 |
| 2 | 123456 | 824 |
| 3 | 123456789 | 815 |
| 4 | guest | 553 |
| 5 | qwerty | 329 |
| 6 | 12345678 | 277 |
| 7 | 111111 | 268 |
| 8 | 12345 | 202 |
| 9 | secret | 170 |
| 10 | sec4us | 165 |
+-------+-------------+-------+
[?] Top 10 weak passwords by company name similarity
+-------+--------------+---------+----------------------+-------+
| top | password | score | company_similarity | qty |
|-------+--------------+---------+----------------------+-------|
| 1 | company123 | 7024 | 80 | 1111 |
| 2 | Company123 | 5209 | 80 | 824 |
| 3 | company | 3674 | 100 | 553 |
| 4 | Company@10 | 2080 | 80 | 329 |
| 5 | company10 | 1722 | 86 | 268 |
| 6 | Company@2022 | 1242 | 71 | 202 |
| 7 | Company@2024 | 1015 | 71 | 165 |
| 8 | Company2022 | 978 | 75 | 157 |
| 9 | Company10 | 745 | 86 | 116 |
| 10 | Company21 | 707 | 86 | 110 |
+-------+--------------+---------+----------------------+-------+
يقوم pipx بتثبيت KnowsMore في بيئة افتراضية معزولة، مما يتجنب التعارض مع حزم النظام. هذه هي الطريقة الموصى بها على Kali Linux وبيئات Python المُدارة خارجيًا الأخرى (PEP 668).
# Install pipx (if you don't have it yet)
python3 -m pip install --user pipx
# Make sure pipx-installed apps are on your PATH
python3 -m pipx ensurepath
# Install KnowsMore
pipx install knowsmore
# Upgrade to the latest version
pipx upgrade knowsmore
ملاحظة: بعد تشغيل pipx ensurepath قد تحتاج إلى فتح نافذة طرفية جديدة (أو تشغيل source ~/.bashrc / source ~/.zshrc) حتى يصبح أمر knowsmore متاحًا.
ملاحظة: على Python 3.12+ لم تعد وحدة setuptools/pkg_resources مضمنة افتراضيًا. إذا واجهت خطأ No module named 'pkg_resources'، قم بحقن setuptools في بيئة KnowsMore:
pipx inject knowsmore setuptools
pip3 install --upgrade knowsmore
ملاحظة: إذا واجهت مشكلة مع إصدار التبعيات، راجع ملف البيئة الافتراضية
لا يوجد ترتيب إجباري لاستيراد البيانات، ولكن للحصول على ارتباط أفضل للبيانات نقترح تدفق التنفيذ التالي:
جميع البيانات مخزنة في قاعدة بيانات SQLite
knowsmore --create-db
يمكننا استيراد جميع ملفات BloodHound الكاملة إلى KnowsMore، وربط البيانات، ومزامنتها مع قاعدة بيانات Neo4J BloodHound. لذلك يمكنك استخدام KnowsMore فقط لاستيراد ملفات JSON مباشرة إلى قاعدة بيانات Neo4j بدلاً من استخدام واجهة BloodHound البطيئة للغاية.
# Bloodhound ZIP File
knowsmore --bloodhound --import-data ~/Desktop/client.zip
# Bloodhound JSON File
knowsmore --bloodhound --import-data ~/Desktop/20220912105336_users.json
ملاحظة: KnowsMore قادر على استيراد ملفات BloodHound بصيغة ZIP و JSON، لكننا نوصي باستخدام ملف ZIP لأن KnowsMore سيقوم تلقائيًا بترتيب الملفات لتحسين ربط البيانات.
# Bloodhound ZIP File
knowsmore --bloodhound --sync 10.10.10.10:7687 -d neo4j -u neo4j -p 12345678
ملاحظة: تم استلهام تنفيذ KnowsMore لمستورد BloodHound من تنفيذ Fox-It BloodHound Import. قمنا بتنفيذ عدة تغييرات لحفظ جميع البيانات في قاعدة بيانات KnowsMore SQLite ثم القيام بمزامنة تدريجية إلى قاعدة بيانات Neo4J. بهذه الاستراتيجية، لدينا عدة فوائد مثل سرعة أسرع بـ 10 مرات على الأقل من واجهة BloodHound الأصلية.
ملاحظة: استيراد التجزئات وكلمات المرور النصية مباشرة من NTDS.dit وسجل SYSTEM
knowsmore --secrets-dump -target LOCAL -ntds ~/Desktop/ntds.dit -system ~/Desktop/SYSTEM
ملاحظة: أولاً استخدم secretsdump لاستخراج تجزئات ntds بالأمر أدناه
secretsdump.py -ntds ntds.dit -system system.reg -hashes lmhash:ntlmhash LOCAL -outputfile ~/Desktop/client_name
بعد ذلك قم بالاستيراد
knowsmore --ntlm-hash --import-ntds ~/Desktop/client_name.ntds
knowsmore --word-list -o "~/Desktop/Wordlist/my_custom_wordlist.txt" --batch --name company_name
أولاً استخرج جميع التجزئات إلى ملف txt
# Extract NTLM hashes to file
nowsmore --ntlm-hash --export-hashes "~/Desktop/ntlm_hash.txt"
# Or, extract NTLM hashes from NTDS file
cat ~/Desktop/client_name.ntds | cut -d ':' -f4 > ntlm_hashes.txt
لاختراق التجزئات، أستخدم عادةً hashcat بالأمر أدناه