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

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

Вне зависимости от выбранного режима отображения название появится при наведении курсора мыши на узел.

Режим отладки запросов (Query Debug Node)
 – при включении данной опции все запросы отображаются в Raw Query. Это удобный вариант для обучения или отладки запросов Cypher.

Режим низкой детализации (Low Detail Mode)
полезен для слабых машин, так как требует меньше ресурсов для отрисовки узлов. Узлы будут представлять собой только цветные круги.

Темный
режим (Dark Mode)
включает темный режим интерфейса.


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

Кнопка Информация о программе показывает окно с информацией о разработчиках и типе лицензии данной программы (рис. 2.20).


Рис. 2.20. Информация о программе


Масштабирование (Zoom)

Рис. 2.21. Управление масштабом


Тут все просто: плюс увеличивает масштаб графа, минус – уменьшает, а кнопка в виде дома возвращает масштаб в исходное состояние. При этом если узлы перемещались, то они не будут возвращены в исходное состояние, в отличие от действия кнопки Обновление графа (Refresh).

Совет

Колесо мыши также можно использовать для изменения масштаба графа.

Запросы Cypher (Raw Query)

Данная форма позволяет вводить собственные запросы Cypher или отлаживать существующие. Не поддерживает многострочные запросы, в результате чего все многострочные запросы будут преобразованы в одну строку.

Управление узлом (Node Options)

При нажатии правой клавишей мыши на узле появится окно управления данным узлом.


Рис. 2.22. Окно управления узлом


Данное окно содержит несколько интересных функций, которые могут пригодиться во время выполнения работ. Поэтому кратко их рассмотрим.

Установить в качестве начального узла (Set as Starting Node)
 – при выборе этого варианта в Форме поиска появится имя выбранного узла.

Установить в качестве конечного узла (Set as Ending Node)
 – при выборе этого варианта откроется форма Поиск путей (Pathfinding) и в конечном узле появится имя выбранного узла.

Построить короткие пути до узла (Shortest Paths to Here)
 – позволяет получить все короткие пути до выбранного узла.

Построить короткие пути от скомпрометированных узлов до указанного узла (Shortest Paths to Here from Owned)
 – данный вариант позволяет получить короткие пути от всех скомпрометированных узлов (у которых свойство
owned
имеет значение
TRUE
) до выбранного узла.

Изменить свойства узла (Edit Node)
 – нажатие на эту кнопку открывает окно, позволяющее изменять существующие свойства или добавлять новые.


Рис. 2.23. Форма изменения свойств узла


Пометить узел как скомпрометированный (Mark as Owned)
 – устанавливает свойству узла
owned
значение
TRUE
. Кроме изменения свойства
owned
на узле в правом нижнем углу появится значок в виде черепа. Если в свойстве
owned
уже установлено значение
TRUE
, тогда вариантом будет Снять метку со скомпрометированного узла (Unmark as Owned) и при нажатии на эту кнопку свойству
owned
узла будет назначено значение
FALSE
.

Пометить узел как имеющий высокую ценность (Mark as High Value)
 – функционал похож на предыдущий, устанавливает свойство узла
highvalue
в значение
TRUE
. После установки значения в правом верхнем углу узла появится значок в виде бриллианта. Если в свойстве
highvalue
уже установлено значение
TRUE
, тогда вариантом будет Снять метку высокой ценности с узла (Unmark as Owned) и при нажатии на эту кнопку свойству
highvalue
узла будет назначено значение
FALSE
.

Удалить узел (Delete Node)
 – функция удаления выбранного узла.

Совет

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

blacklisted
и исключать из запроса. Данный способ будет рассмотрен в книге дальше.

Управление связью (Edge Options)

При нажатии правой клавишей мыши на связь между двумя узлами появляется окно управления данной связью.


Рис. 2.24. Окно управления связью


В этом окне всего два варианта.

Подсказка (Help)
 – позволяет получить информацию как о самой связи, так и об ее эксплуатации.

● Вкладка General – показывает краткое описание связи и ее возможности.

● Вкладка Abuse – показывает примеры эксплуатации.

● Вкладка OpSec – описывает, как можно обнаружить эксплуатацию связи.

● Вкладка References – предоставляет различные ссылки по данной связи.


Рис. 2.25. Окно подсказки


Удалить связь (Delete Edge)
 – позволяет удалить выбранную связь между двумя узлами.

Совет

Как и с удалением узла, связь можно пометить как blacklisted и исключить из запроса.

Управление графом (Graph Options)

Если кликнуть правой клавишей мыши на пустом месте основного поля, то появится окно управления графом.


Рис. 2.26. Окно управления графом


Некоторые кнопки мы уже рассматривали в разделе Меню, поэтому рассмотрим только новые.

При нажатии

Добавить узел (Add Node)
появляется форма, в которой можно указать имя узла и его тип. Все остальные свойства узла будут указываться при вызове
Изменить свойства узла (Edit Node)
в контекстном меню узла.


Рис. 2.27. Форма добавления нового узла


Разные типы узла требуют своего формата. Если он не соответствует, будет выведена ошибка. Так, например, тип узла

User
требует, чтобы в имени был знак @, который разделяет имя пользователя и домен.

Информация

Тип узла берется из файла

AddNodeModal.jsx
, расположенного в
src\components\Modals.

При нажатии на

Добавить связь (Add Edge)
появляется форма, позволяющая добавить связь между двумя узлами. Аналогично с поиском при вводе имени или
objectid
, будут предложены различные варианты.


Рис. 2.28. Форма добавления связи между двумя узлами


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

Информация

Названия связей берутся из файла

AddEdgeModal.jsx
, расположенного в
src\components\Modals.

Обновить запрос (Refresh Query)
 – заставляет BloodHound заново выполнить запрос.

Список узлов

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


Рис. 2.29. Список узлов


Список узлов поддерживает поиск и при вводе букв будет фильтровать данные, но, в отличие от формы поиска, не поддерживает поиск по

objectid
.

Рядом с каждым именем есть иконка, обозначающая метку узла. В колонке Collapse Info показывается, в какую группу собраны узлы.

Чтобы закрыть список узлов, нужно повторно нажать на пробел.

База данных neo4j

Neo4j – это графовая база данных. Ее модель проста и основана на узлах и связях.

Модель описывается следующим образом:

● Каждый узел может иметь различные связи с другими узлами.

● Каждая связь может переходить от одного узла к другому или к тому же узлу.

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

● Узлы и связи могут иметь свойства, а каждое свойство имеет имя и значение.

Версия neo4j Community Edition имеет очень ограниченный функционал, и из него мы будем использовать только создание резервных копий и восстановление данных из резервных копий.

Работать с информацией из базы данных можно с помощью браузера neo4j, консольного приложения cypher-shell, расположенного в директории

$NEO4J_HOME/bin
, или с помощью API.

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

Интерфейс браузера neo4j

BloodHound выводит результаты запросов в виде графа или отдельных узлов. Свойства узлов можно увидеть во вкладке Node Info, а просмотр свойств связей вообще недоступен. Браузер neo4j в этом плане более гибкий, можно выводить информацию в различных видах. В основном мы будем использовать графы и таблицы.

После смены пароля мы оставили браузер neo4j, теперь стоит к нему вернуться и рассмотреть более детально.


Рис. 2.30. Браузер neo4j


Меню

Слева располагается меню, при нажатии на любой элемент раскрывается дополнительное поле.

Меню достаточно простое и не имеет сложных элементов. Мы рассмотрим только