Форма поискаРис. 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) – название всегда отображается.