
Сопоставляет 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указывает уровень подстановки символов (leet), где 1 — без leet, а 3 — максимальный доступный leet.
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).
# Установите pipx (если ещё не установлен)
python3 -m pip install --user pipx
# Убедитесь, что приложения, установленные через pipx, находятся в PATH
python3 -m pipx ensurepath
# Установите KnowsMore
pipx install knowsmore
# Обновитесь до последней версии
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
Примечание: Если у вас возникли проблемы с версиями зависимостей, проверьте файл Virtual ENV
Нет обязательного порядка импорта данных, но для лучшей корреляции мы предлагаем следующий порядок:
Все данные хранятся в базе данных SQLite.
knowsmore --create-db
Мы можем импортировать все полные файлы BloodHound в KnowsMore, коррелировать данные и синхронизировать их с базой данных Neo4J BloodHound. Таким образом, вы можете использовать только KnowsMore для импорта JSON-файлов напрямую в Neo4j вместо использования «чрезвычайно медленного пользовательского интерфейса BloodHound».
# ZIP-файл BloodHound
knowsmore --bloodhound --import-data ~/Desktop/client.zip
# JSON-файл BloodHound
knowsmore --bloodhound --import-data ~/Desktop/20220912105336_users.json
Примечание: KnowsMore может импортировать ZIP-файлы BloodHound и JSON-файлы, но мы рекомендуем использовать ZIP-файл, так как KnowsMore автоматически упорядочит файлы для лучшей корреляции данных.
# ZIP-файл BloodHound
knowsmore --bloodhound --sync 10.10.10.10:7687 -d neo4j -u neo4j -p 12345678
Примечание: Реализация импортёра BloodHound в KnowsMore вдохновлена реализацией Fox-It BloodHound Import. Мы внесли несколько изменений для сохранения всех данных в базе данных SQLite KnowsMore, а затем выполнения инкрементальной синхронизации с базой данных 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-файл.
# Извлечение NTLM-хешей в файл
knowsmore --ntlm-hash --export-hashes "~/Desktop/ntlm_hash.txt"
# Или извлеките NTLM-хеши из файла NTDS
cat ~/Desktop/client_name.ntds | cut -d ':' -f4 > ntlm_hashes.txt
Для взлома хешей я обычно использую hashcat со следующими командами:
# Атака по словарю
hashcat -m 1000 -a 0 -O -o "~/Desktop/cracked.txt" --remove "~/Desktop/ntlm_hash.txt" "~/Desktop/Wordlist/*"
# Атака по маске
hashcat -m 1000 -a 3 -O --increment --increment-min 4 -o "~/Desktop/cracked.txt" --remove "~/Desktop/ntlm_hash.txt" ?a?a?a?a?a?a?a?a
knowsmore --ntlm-hash --company clientCompanyName --import-cracked ~/Desktop/cracked.txt
Примечание: Замените clientCompanyName на название вашей компании.
Поскольку пароли и их хеши являются чрезвычайно конфиденциальными данными, существует модуль для замены паролей в открытом виде и соответствующих хешей.
Примечание: Эта команда сохранит всю сгенерированную статистику и импортированные данные пользователей.
knowsmore --wipe
Во время оценки вы можете различными способами узнать пароль пользователя, поэтому вы можете добавить его в базу данных Knowsmore.
knowsmore --user-pass --username administrator --password Sec4US@2023
# или с указанием названия компании
knowsmore --user-pass --username administrator --password Sec4US@2023 --company sec4us
Интеграция всех взломанных учётных данных в базу данных Neo4j BloodHound.
knowsmore --bloodhound --mark-owned 10.10.10.10 -d neo4j -u neo4j -p 123456
Для удалённого подключения убедитесь, что сервер базы данных Neo4j принимает удалённые соединения. Измените следующую строку в файле конфигурации /etc/neo4j/neo4j.conf и перезапустите службу.
server.bolt.listen_address=0.0.0.0:7687