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

UploadData -file.\Shares_26032024051115.log


Рис. 4.54. Результат выполнения скриптов


Проверим результат наших стараний – в Raw Query BloodHound выполним следующий Cypher-запрос:

MATCH p=(u)-[r1]-(s: Share)-[r: HostedOn|Contains*0..]->(c) RETURN p


Рис. 4.55. Результат добавления общих ресурсов


Добавление новых связей в BloodHound

В скрипте мы определили новые связи, и теперь необходимо добавить их в BloodHound. Открываем файл

AppContainer.jsx
, находим массив
fullEdgeList
и добавляем связи:

const fullEdgeList = [

'WriteUserAccountControl',

'WriteGPLink',

'HostedOn',

'CanWrite',

'CanModify',

'FullControl'

];

Сохраняем файл и открываем файл

index.js
в том же каталоге, находим строчку
global.appStore
, двигаемся до
edgeScheme
и добавляем:

global.appStore = {

dagre: true,

edgeScheme:{

UserAccountControl:'tapered',

WriteGPLink:'tapered',

HostedOn:'tapered',

CanWrite:'tapered',

CanModify:'tapered',

FullControl:'tapered',

},

Находим строчку

lowResPalette
и в
edgeScheme
добавляем:

lowResPalette:{

edgeScheme:{

WriteUserAccountControl:'line',

WriteGPLink:'line',

HostedOn:'line',

CanWrite:'line',

CanModify:'line',

FullControl:'line',

},

Находим строчку

if (typeof conf.get('edgeincluded')
и там тоже добавляем наши связи:

if (typeof conf.get('edgeincluded') === 'undefined') {

conf.set('edgeincluded', {

WriteUserAccountControl: true,

WriteGPLink: true,

HostedOn: true,

CanWrite: true,

CanModify: true,

FullControl: true,

});

Сохраним измененный файл и соберем приложение:

npm run build: win32

Чтобы проверить результат нашей работы, запустим новую версию BloodHound, в строке запроса пути введем данные для пользователя

admin
и директории
test
:


Рис. 4.56. Результат добавления новых связей


Центр сертификации

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

Для поиска информации и эксплуатации используются две утилиты – certify[18] и certipy[19]. Кроме этих утилит можно использовать встроенную в Windows утилиту certutil. В certipy есть возможность загружать полученную информацию в BloodHound. Существуют два ключа, -

old-bloodhound
и -
bloodhound,
первый в качестве отображения использует GPO, а второй уже добавляет две новые метки
CA
и
Template
, но при этом требуется версия BloodHound, написанная автором certipy.

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

Совет

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

Настройка лаборатории

Для сбора информации потребуется центр сертификации в доменной инфраструктуре. Начнем с установки центра сертификации.


Установка центра сертификации

В качестве сервера центра сертификации будем использовать контроллер домена. Запускаем Server Manager и выбираем Add roles and features. Следуем за мастером добавления новой роли. Нажимаем кнопку Next. Предложенные по умолчанию настройки нас будут устраивать, поэтому нажимаем кнопку Next до тех пор, пока не появится окно Select server roles.

Выбираем следующую роль:

● Active Directory Certificate Service (рис. 4.57)

Нажимаем кнопку Next, пока не дойдем до Select role services, и выбираем роли для центра сертификации (рис. 4.58):

● Certification Authority;

● Certificate Enrollment Web Service;

● Certification Authority Web Enrollment.

Нажимаем кнопку Next до самого конца, пока кнопка Install не станет активной, и нажимаем ее.

После установки нажимаем на кнопку Close. В верхнем правом углу появился желтый восклицательный знак, который указывает, что роли требуют завершения настройки. Нажимая на кнопку Next, доходим до Select Role Service to configure и выбираем:

● Certification Authority;

● Certification Authority Web Enrollment (рис. 4.59).

Нажимаем на кнопку Next, доходим до тех пор, пока кнопка Configure не станет активной, оставляя все настройки по умолчанию (рис. 4.60–4.62).


Рис. 4.57. Добавление новой роли


Рис. 4.58. Установка центра сертификации, шаг 1


Рис. 4.59. Установка центра сертификации, шаг 2


Рис. 4.60. Установка центра сертификации, шаг 3


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


Рис. 4.61. Установка центра сертификации, шаг 4


Подтверждаем выбор и нажимаем на кнопку Next до тех пор, пока кнопка Configure не станет активной. Нажимаем на нее и завершаем установку центра сертификации.


Рис. 4.62. Установка центра сертификации, шаг 5


Настройка шаблонов и центра сертификации

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

Внимание

В книге рассматриваются базовые недостатки, которые были обнаружены до обновления центра сертификации. Поэтому мы пропустим настройку центра сертификации под ESC9 и ESC10. Также на момент выхода книги в свет могут быть обнаружены другие методы эксплуатации шаблонов. На контроллере домена запускаем Certification Authority, правой клавишей мыши вызываем контекстное меню для Certificate Templates и выбираем Manage.

ESC1

В открывшемся окне находим шаблон User, правой клавишей мыши вызываем контекстное меню и выбираем Duplicate Template.


Рис. 4.63. Создание дубликата шаблона


Во вкладке General устанавливаем имя

ESC1
. Во вкладке Subject Name устанавливаем Supply in the request и нажимаем кнопку Apply.


Рис. 4.64. Настройка шаблона сертификата ESC1


Теперь нам нужно опубликовать наш новый шаблон. Закрываем окно с шаблонами. Вызываем контекстное меню для Certificate Templates и выбираем New > Certificate Template to Issue. Находим наш шаблон