
Преобразует снимки AD Explorer в совместимые с BloodHound JSON или NDJSON для разведки Active Directory и построения путей атак.
ADExplorerSnapshot.py — это парсер снимков AD Explorer. Он предназначен для загрузки данных в BloodHound через BOFHound, а также поддерживает полный дамп объектов в формате NDJSON.
AD Explorer позволяет подключаться к контроллеру домена и просматривать данные LDAP. Также можно создавать снимки текущего подключённого сервера. Этот инструмент позволяет преобразовывать такие снимки в формат BOFHound или совместимые с BloodHound JSON-файлы, либо выгружать все доступные объекты снимка в NDJSON для удобной обработки.

В режиме вывода BOFHound все атрибуты каждого объекта разбираются и выводятся в формат BOFHound (аналогичный LDIF). Этот формат затем можно обработать с помощью BOFHound:
В режиме вывода Objects все атрибуты каждого объекта разбираются и выводятся в формате NDJSON.
В режиме вывода BloodHound (устарел в пользу более полного преобразования через BOFHound):
Снимки AD Explorer содержат только ту информацию, которую можно получить с LDAP-сервера. Это означает, что такие возможности, как сбор сессий и локальных администраторов, недоступны, так как данный инструмент не взаимодействует с системами в сети. Вы будете располагать только теми данными, которые доступны на LDAP/контроллере домена, с которого был сделан снимок.
В режиме BOFHound все данные преобразуются в формат BOFHound, что является наиболее полным подходом к сбору.
В режиме BloodHound загрузчик обрабатывает все возможные данные из снимка (включая ACL), но выводит только те JSON-данные, которые может интерпретировать BloodHound. Отсутствует сбор GPO/OU.
Коллекция доверительных отношений содержит представление, видимое с того LDAP-контроллера домена, к которому вы подключены.
ADExplorerSnapshot.py поддерживает Python 3.12+. Зависимости управляются через pip.
Вы можете запустить инструмент напрямую с помощью uvx (если отсутствует: pip install uvx).
uvx git+https://github.com/c3c/ADExplorerSnapshot
usage: ADExplorerSnapshot.py [-h] [-o OUTPUT] [-m {BOFHound,BloodHound,Objects}] snapshot
AD Explorer snapshot ingestor for BloodHound
positional arguments:
snapshot Путь к файлу снимка .dat.
options:
-h, --help Показать это сообщение и выйти
-o, --output OUTPUT Путь к папке для вывода *.json. Папка будет создана, если её не существует. По умолчанию используется текущая директория.
-m, --mode {BOFHound,BloodHound,Objects}
Режим вывода. По умолчанию используется режим BOFHound, который затем можно использовать с BOFHound. Можно также выводить напрямую в JSON-файлы BloodHound (с ограничениями). В режиме
Objects все объекты со всеми атрибутами выводятся в NDJSON.
Режим вывода BOFHound является предпочтительным. Затем вы можете использовать инструмент BOFHound для загрузки данных в BloodHound.
Типичный вызов:
uvx git+https://github.com/c3c/ADExplorerSnapshot -m BOFHound snapshot.dat
uvx bofhound -i ./dc.server.com_1234567890_bofhound.log -o output


Шаблоны сертификатов можно импортировать в формате BloodHound или BloodHound-ly4k.
Если вы используете стандартную версию BloodHound, импортируйте только JSON-файл cert_bh (они импортируются как GPO).
Если вы используете форк ly4k, импортируйте файлы cert_ly4k. Некоторяя информация будет опущена (например, для ESC8 — включена ли веб-регистрация), так как её невозможно собрать с помощью AD Explorer.
Создание снимков в AD Explorer более требовательно к сети, чем традиционные загрузчики BloodHound, так как он пытается получить все возможные объекты из LDAP.
ADExplorerSnapshot.py создаёт кеши информации для более быстрого поиска при обработке данных. При обработке больших снимков (например, 4 ГБ и более) необходимо также иметь достаточный объём оперативной памяти. В моих тестах требовалось около половины размера файла снимка в оперативной памяти.
Библиотека была протестирована с несколькими наборами данных. Пожалуйста, создайте отчёт об ошибке, если возникнут проблемы.
Парсер снимков AD Explorer реализован в виде отдельного модуля, который также можно использовать самостоятельно.
Формат, в котором AD Explorer хранит снимки, является проприетарным, что привело к увлекательному процессу обратной разработки. В этом репозитории включён шаблон 010 editor, который я использовал для итеративного отображения содержимого снимка в структуры.
Для режима вывода BloodHound эта библиотека поддерживает формат вывода BloodHound v6. Более старые версии поддерживались в более ранних коммитах, если они всё ещё нужны.
Для старого формата v3 можно использовать код из ветки v3-format.
С точки зрения ОПСЕК, AD Explorer — это легитимный инструмент Microsoft. При создании снимка выполняются только ограниченные запросы к LDAP-серверу (objectGuid=*). Однако результирующий набор данных огромен, так как извлекаются все объекты и их атрибуты. Это приводит к довольно объёмному выводу.
Обнаружение этого инструмента возможно несколькими способами, о чём я отсылаю к отличной статье FalconForce: FalconFriday — Detecting Active Directory Data Collection — 0xFF21.
Этот код лицензирован в соответствии с лицензией MIT и использует код, также лицензированный по MIT.
ADExplorerSnapshot.py использует следующие проекты:
Благодарности:
Спасибо Deloitte за предоставление среды, в которой был разработан этот инструмент.