Идём по киберследу: Анализ защищенности Active Directory c помощью утилиты BloodHound — страница 3 из 46

Форма поиска

Рис. 2.4. Форма поиска


Форма поиска состоит из следующих элементов:

● Дополнительная информация (More Info)

● Поле поиска узлов

● Поиск путей (Pathfinding)

● Возврат (Back)

● Фильтрация типов связей (Filter Edge Types)


Дополнительная информация (More Info)

Этот объект является основным полем для получения информации о свойствах и некоторых связях узлов. При нажатии на кнопку More Info выпадает поле, состоящее из трех элементов.


Рис. 2.5. Вкладка «Дополнительная информация»


Database Info

Вкладка содержит статистические данные по количеству объектов в базе данных, а также некоторые инструменты для работы с базой данных (рис. 2.6).


Рис. 2.6. Статистика по узлам и связям


Ниже статистики находятся элементы для управления данными.


Рис. 2.7. Управление данными


Кратко рассмотрим эти элементы и их функционал:

● Refresh Database Stats – после загрузки данных или добавления информации через запросы Cypher статистика может быть неверной, эта кнопка обновляет статистические данные.

● Warm Up Database – по описанию от разработчиков, при нажатии этой кнопки данные из базы переносятся в оперативную память, что позволяет увеличить скорость работы с ними.

● Clear Sessions – при нажатии этой кнопки удаляются все связи HasSession. Эта функция бывает полезной перед загрузкой новых данных о сессиях пользователей.

● Clear Database – при нажатии этой кнопки удаляются все узлы и связи между ними.

Замечание

Интересно, что при очистке базы данных в браузере neo4j остаются ссылки на свойства объектов и названия связей.

Информация об узле (Node Info)

В этой вкладке отображаются свойства узла. Кроме того, в ней выполняются некоторые Cypher-запросы, которые предоставляют статистические данные, например, для пользователей и компьютеров выдается информация о сессиях или коротких путях до узлов высокой ценности.


Рис. 2.8. Информация об узле


Разные типы узлов содержат разную информацию. Так, например, групповые политики содержат информацию, к каким пользователям или компьютерам они применяются, а у пользователей и компьютеров отображается информация о правах на другие объекты или правах, связанных с боковым перемещением (рис. 2.9).


Рис. 2.9. Информация о группах и правах


Очень полезна информация о входящих и исходящих правах (ACL) на другие объекты, которые могут быть использованы во время работ.


Рис. 2.10. Входящие и исходящие ACL


Анализ (Analysis)

Вкладка Анализ (Analysis) содержит встроенные в BloodHound полезные запросы, с которых можно начать исследовать инфраструктуру Active Directory (рис. 2.11).


Рис. 2.11. Список встроенных запросов


Информация

Встроенные запросы находятся в файле

PrebuildQueries.json
в директории
src\components\SearchContainer\Tabs.

Ниже находится раздел для добавления собственных Cypher-запросов, который содержит форму для их создания, а также список созданных запросов, разделенный по категориям.


Рис. 2.12. Раздел создания собственных запросов


При нажатии на кнопку в виде карандаша появляется форма для добавления запросов (рис. 2.13).

При переходе к полю выбора категории запроса можно создать собственную категорию или выбрать из существующих.

Информация

Файл

customqueries.json
с собственными запросами находится в домашней директории пользователя, запустившего BloodHound, с путем
\AppData\Roaming\bloodhound\
.

Рис. 2.13. Форма добавления собственных запросов


Информация

При вызове формы добавления собственных графов файл создается автоматически, если он еще не создан.

Мы еще вернемся к созданию собственных запросов.


Поле поиска

Следующий элемент – форма поиска узлов. Если начинать вводить буквы, BloodHound предлагает различные варианты. Также форма поиска показывает различные типы меток – они дают возможность видеть, к какому типу принадлежит узел. Функция полезна для поиска узлов по ключевым словам.

Внимание

По умолчанию поиск по ключевому слову ограничивается 10 узлами. Изменить количество узлов можно в Raw Query, если в настройках включен Query Debug Mode.

Кроме имени для поиска можно использовать свойство

objectid
.


Форма Поиск путей (Pathfinding)

Функция позволяет строить короткие пути. При нажатии на иконку появляется еще одна форма поиска, в первой строке указывается начальный узел, во второй – конечный (рис. 2.14).

Работает аналогично полю поиска, при нажатии стрелки формируется Cypher-запрос с построением коротких путей от первого узла до конечного.


Рис. 2.14. Форма поиска путей


Информация

BloodHound создает Cypher-запрос со всеми связями, указанными в файле

AppContainer.jsx
, и с учетом фильтра связей.

Возврат (Back)

Кнопка в виде стрелки влево возвращает предыдущий граф, но без возврата самого запроса в Raw Query.


Фильтр связей (Filter Edge Types)

При нажатии на кнопку в виде воронки появляется новое окно с перечнем доступных связей, при снятии галки связь убирается из запроса при использовании формы Поиск путей (Pathfinding). Каждая группа имеет кнопки включения всех связей (две галки) и отключения всех связей (ластик).


Рис. 2.15. Фильтр связей


Внимание

Фильтр работает только с функцией Поиск путей (Pathfinding).

Меню

Меню состоит из следующих элементов:

● Обновление графа (Refresh)

● Экспорт графа (Export Graph)

● Импорт графа (Import Graph)

● Загрузка данных

● Статус загрузки (View Upload Status)

● Изменение отображения графа (Change Layout Type)

● Настройки

● Информация о программе (About)


Рис. 2.16. Меню


Обновление графа (Refresh)

Нажатие на эту кнопку позволяет вернуть граф в исходное состояние, которое было получено при выполнении запроса.


Экспорт графа (Export Graph)

Кнопка в виде стрелки вверх позволяет экспортировать граф. BloodHound поддерживает два формата – в виде картинки PNG или в формате JSON.

Данный функционал полезен для вставки картинки в отчет, а JSON-файл можно передать для анализа графа.


Импорт графа (Import Graph)

Кнопка в виде стрелки вниз позволяет загрузить ранее сохраненный граф в виде JSON-файла, в результате чего будет отрисован граф, созданный ранее.

Информация

Импортировать граф можно даже в пустую базу или в базу с другими данными.

Загрузка данных (Upload Data)

При нажатии на кнопку в виде стрелки вверх в круге появляется окно, в котором указываются файлы, сгенерированные SharpHound. Обычно SharpHound формирует ZIP-архив, в котором находятся файлы, разделенные по классу объектов домена.

BloodHound автоматически распаковывает архив и преобразовывает JSON в Cypher-запросы, тем самым загружая данные.


Статус загрузки (View Upload Status)

Кнопка в виде списка показывает статус загрузки данных. При нажатии на кнопку Clear Finished статус удаляется.


Изменение отображения графа (Change Layout Type)

Иконка в виде графика позволяет изменять отображение графа. BloodHound предоставляет два вида отображения – Направленное (Directed) и Иерархическое (Hierarchical) (рис. 2.17–2.18).

Изменение типа позволяет лучше рассмотреть граф, и в некоторых случаях BloodHound выстраивает красивые цепочки.


Рис. 2.17. Направленное отображение графа


Рис. 2.18. Иерархическое отображение графа


Настройки (Settings)

При нажатии на кнопку Настройки появляется окно с настройками, их немного.


Рис. 2.19. Окно с настройкам


Кратко рассмотрим представленные настройки.

Порог свертывания узлов (Collapse Threshold).
В BloodHound есть механизм, который группирует узлы, имеющие одинаковую связь (только одну) с другим узлом. Это позволяет уменьшить нагрузку на отображение графа, но при этом можно упустить какой-то узел. Применяется к Группам (Group), Контейнерам (Container) и Подразделениям (OU). Данный параметр имеет числовое значение, по умолчанию это 5, что означает – если будет пять узлов или больше, то они объединятся в одну группу. В этой группе появится значок количества объектов внутри группы. Значение 0 отключает эту функцию.

Отображение названия связи (Edge Lable Display)
 – режим отображения названия связи.

Отображение названия узла (Node Lable Display)
 – режим отображения названия узла.

Режим отображения узлов и связей может иметь следующие варианты:

● Пороговое отображение (Threshold Display) – название появляется или исчезает при изменении масштаба графа.

● Всегда показывать (Always Display) – название всегда отображается.