Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
jackdaw — собирать собирать собирать | Kitploit
Инструменты/GitHubGitHub/skelsec/jackdaw
Взлом паролейСбор информацииТестирование на ПроникновениеОбнаружение Аномалий
GitHubskelsec/jackdaw

jackdaw

собирать собирать собирать

Репозиторий
585861 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

jackdaw

собирай, собирай, собирай jackdaw_card

Что это такое?

Jackdaw предназначен для сбора всей информации в вашем домене, хранения её в SQL-базе данных и отображения красивых графиков того, как объекты вашего домена взаимодействуют друг с другом и как потенциальный злоумышленник может использовать эти взаимодействия. Также он имеет удобную функцию для помощи в проекте по взлому паролей: хранение/поиск/отчёты по хэшам/паролям/пользователям.

Краткая информация по использованию

  • Если вы не используете автоматический сбор (например, не на Windows), вам нужно будет создать начальную пустую базу данных с помощью dbinit
  • Сначала нужно выполнить enum. Это можно сделать автоматически в Windows двойным щелчком по исполняемому файлу или вводом jackdaw.exe auto.
  • Во-вторых, вам нужно будет запустить nest для веб-интерфейса. По умолчанию он доступен по адресу http://127.0.0.1:5000/nest, также есть API с документацией SWAGGER по адресу http://127.0.0.1:5000/ui.
  • В веб-интерфейсе нужно зайти в представление домена и нажать «Generate graph cache» только один раз, чтобы получить информацию о рёбрах в кэш-файле. Это может занять некоторое время, но в командной строке вы увидите прогресс-бар.
  • После завершения создания кэша графа вы можете работать с графом в представлении графа, но не забудьте выбрать правильный номер кэша в верхнем левом углу.

Советы по производительности

Этот раздел будет регулярно обновляться на основе отзывов пользователей.

Сбор данных

Здесь советов нет, хотя некоторые улучшения можно внести в код, но ничего такого, что мог бы сделать обычный пользователь.

Генерация файла кэша данных графа

Генерация файла кэша данных графа должна быть выполнена для каждого графа один раз (и только один раз), что может занять много времени при использовании стандартного инструмента sqlalchemy.
Производительность и скорость могут быть значительно улучшены (более чем в 50 раз по скорости и в 20 раз меньше по памяти), если использовать бэкенд sqlite И поместить утилиту командной строки «sqlite3» где-нибудь в PATH. Я рекомендую это каждому пользователю.

Вычисление путей и загрузка данных графа

Теперь наступает часть с большим компромиссом. В ранних реализациях Jackdaw использовал модуль networkx в качестве бэкенда графа, поскольку он полностью написан на Python. Но это приводило к значительным затратам памяти и скорости. Чтобы сохранить Jackdaw чисто Python, эта опция всё ещё существует, однако использование бэкенда igraph теперь является стандартным.
Примечание: igraph — это библиотека на C++ с привязками Python. У неё есть предварительно скомпилированные колеса для Windows и основных дистрибутивов Linux, но если вы используете Jackdaw на чём-то другом (встраиваемые системы, мобильные телефоны, веб-браузеры), вам придётся либо вернуться к networkx, либо страдать от многочасовой компиляции.

Примеры команд

Автоматическое перечисление — только Windows, с пользователем, входящим в домен

Нет необходимости предварительно инициализировать базу данных, это будет сделано автоматически. Используя распространяемый бинарный файл, вы можете просто дважды щелкнуть на jackdaw.exe
При использовании в качестве Python-скрипта: jackdaw auto

Инициализация БД

jackdaw --sql sqlite:///<full path here>/test.db dbinit
В СИСТЕМАХ LINUX <полный путь> включает первый /, поэтому у вас будет //// четыре (4) косые черты перед именем файла. Не пугайтесь.

Перечисление

Полное перечисление со встроенным SSPI — только Windows

jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<domain>\<placeholder>@10.10.10.2' 'smb+sspi-ntlm://<domain>\<placeholder>@10.10.10.2'

Полное перечисление с именем пользователя и паролем — платформонезависимое

Пароль: Passw0rd!
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'

Перечисление только LDAP с именем пользователя и паролем — платформонезависимое

Пароль: Passw0rd!
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'

Запуск интерактивного веб-интерфейса для построения графа и доступа к дополнительным функциям

jackdaw --sql sqlite:///<FULL PATH TO DB> nest

Откройте http://127.0.0.1:5000/ui для API

Пожалуйста, обратитесь к разделу «Сборка UI» ниже, чтобы узнать, как собрать интерфейс. После сборки:

Откройте http://127.0.0.1:5000/nest для интерфейса графа (показывает граф, но далёк от работоспособности)

Возможности

Сбор данных

через LDAP

Фаза перечисления LDAP собирает данные об объектах AD: пользователи, компьютеры, OU, группы, которые будут представлены в виде узлов графа и отдельных таблиц в БД. Кроме того, будет разобран дескриптор безопасности всех вышеупомянутых объектов, а ACL для DACL добавлены в БД. Эта информация вместе с информацией о членстве будет представлена в виде рёбер графа. Также при необходимости могут выполняться пользовательские SQL-запросы к любому из вышеперечисленных типов данных.

через SMB

Фаза перечисления SMB собирает данные об общих ресурсах, локальных группах, сессиях, NTLM-данные путём подключения к каждой машине в домене (которая получена через LDAP).

через Kerberos

Модуль Kerberos выполняет автоматические kerberoasting и asrep-roasting.

через дампы LSASS (опционально)

Фреймворк позволяет пользователям загружать дампы памяти LSASS для хранения учётных данных и расширения таблицы информации о сессиях. Оба будут использоваться как дополнительные рёбра в графе (общий пароль и сессия соответственно). Фреймворк также использует эту информацию для создания отчёта о слабых/общих/взломанных учётных данных.

через результаты DCSYNC (опционально)

Фреймворк позволяет пользователям загружать файлы DCSYNC от impacket для хранения учётных данных. Это будет использоваться как дополнительные рёбра в графе (общий пароль). Фреймворк также использует эту информацию для создания отчёта о слабых/общих/взломанных учётных данных.

через ручную загрузку (опционально)

Фреймворк позволяет вручную расширять доступную БД во всех аспектах. Пример: когда информация о пользовательских сессиях на определённом компьютере обнаружена (вне автоматического перечисления), есть возможность вручную загрузить эти сессии, что заполнит БД и результирующий граф.

Граф

Фреймворк может генерировать граф, используя доступную информацию в базе данных, и отображать его через веб-интерфейс (nest). Кроме того, генерация графа и вычисления путей могут быть вызваны программно, либо через веб-API (endpoint /ui), либо через функции объекта графа.

Обнаружение аномалий

Фреймворк может выявлять распространённые ошибки конфигурации AD без генерации графа. В настоящее время только через веб-API.

Пользователь

Обнаружение аномалий пользователей включает выявление небезопасных разрешений UAC и обширных значений описания пользователей. Ожидается, что в будущем этот набор функций будет расширяться по мере внедрения новых возможностей.

Компьютер

Обнаружение аномалий компьютеров включает выявление небезопасных разрешений UAC, необязательной подписи SMB, устаревшей версии ОС, машин вне домена. Ожидается, что в будущем этот набор функций будет расширяться.

Взлом паролей

Фреймворк не выполняет взлом, а только организует хэши и результаты взлома
в настоящее время основное внимание уделяется результатам dcsync от impacket и aiosmb, только !NT и LM хэши!
Пример процесса:

  1. Сбор учётных данных в виде текстового файла через impacket/aiosmb или в виде дампов памяти процесса LSASS с помощью любого подходящего инструмента.
  2. Загрузка собранных учётных данных через API
  3. Запрос невзломанных хэшей через API
  4. Взлом их (hashcat?)
  5. Загрузка результатов в фреймворк через API
  6. Генерация отчёта о взломанных/невзломанных пользователях, стойкости паролей и общих паролях.

Примечание автора: Эта функция была реализована как для атакующих, так и для защитников. Лично я не вижу особой ценности ни для одной из сторон, поскольку, получив NT-хэш пользователя, он так же хорош, как и пароль... Тем не менее, всё больше компаний проводят упражнения по стойкости паролей, и эта функция может им помочь. Что касается атакующих: на данный момент это просто хвастовство, но пожалуйста. Может быть, запугать руководство для дополнительных баллов.

Важно

Этот проект находится в экспериментальной фазе! Это означает несколько вещей:

  1. он может аварийно завершиться
  2. используемые вами элементы управления могут измениться в будущем (скорее всего)
  3. (худшая часть) Дизайн базы данных не обязательно подходит для будущих запросов, поэтому он может измениться. Не будет предпринято никаких усилий для поддержания обратной совместимости с экспериментальной структурой БД!

Техническая часть

Бэкенд базы данных

Jackdaw использует модуль ORM SQLAlchemy, который даёт вам возможность использовать любой понравившийся бэкенд SQL БД. Тесты в основном проводятся на SQLite по очевидным причинам. В этом проекте не будет использоваться никаких команд, специфичных для конкретного бэкенда, которые вас бы ограничивали.

Сборка UI

ЭТО НУЖНО ТОЛЬКО В ТОМ СЛУЧАЕ, ЕСЛИ ВЫ УСТАНАВЛИВАЕТЕ ЧЕРЕЗ GIT И/ИЛИ ВНОСИТЕ ИЗМЕНЕНИЯ В КОД UI
UI написан на React. Перед первым использованием/установкой его нужно собрать. Для этого вам понадобятся установленные nodejs и npm. Затем:

  1. Перейдите в jackdaw/nest/site/nui
  2. Выполните npm install
  3. Выполните npm run build

После выполнения вышеуказанных действий UI готов к использованию.

Благодарности

"Если я видел дальше, то потому, что стоял на плечах гигантов."

За оригинальную идею

Команда BloodHound

За вычисление рёбер ACL

@dirkjanm (https://github.com/dirkjanm/)

За потрясающий UI

Zsolt Imre (https://github.com/keymandll)

За части сбора данных

пожалуйста, смотрите раздел благодарностей в модулях aiosmb и msldap

Если я забыл упомянуть кого-то, пожалуйста, отправьте PR

Скачать инструмент