Kerberos
🥷 Приветствую друзья
Для полного понимания работы Active Directory, в том числе для успешных проведений инфраструктурного пентеста необходимо немного глубже изучить Active Directory. И для этого сегодня мы поговорим про технологию Kerberos.
Kerberos – в первую очередь протокол аутентификации, но при этом предусматривающий возможность транспортировки информации необходимой для авторизации.
Для новичков: аутентификация - это процесс проверки подлинности. Авторизация - процесс проверки прав.
К важным понятиям можно также указать Principal - это строка, полностью идентифицирующая участника протокола Kerberos.
Принципал может быть как именем сервиса - Service Principal Name (SPN), так и именем юзера - User Principal Name (UPN).
Пример UPN для пользователя Sonya в домене test.local будет выглядеть так: [email protected]
С принципалом сервиса немного сложнее.
Принципал сервиса имеет следующую форму: service-name/host[:port]@REALM, где:
- service-name – это строка, идентифицирующая сервис на этом хосте.
- host – это доменное имя хоста, на котором работает сервис
- port - порт на котором запущена служба.
Пример SPN для сервиса Outlook, который работает на хосте с именем mail.com будет выглядеть так: outlook/[email protected], где test.com -это область, где данный хост действует.
В структуре Kerberos присутствует Центр Распределения Ключей (KDC). KDC является доверенным центром аутентификации для всех участников протокола Kerberos в рамках определенной области действия.
KDC включает в себя такие компоненты как:
- База данных Kerberos, предназначенная для хранения информации о всех принципалах.
- Сервер аутентификации - Authentication Server (AS), обрабатывающий запросы на аутентификацию клиентов к области действия протокола Kerberos;
- Сервер выдачи билетов - Ticket Granting Server (TGS), обрабатывающий запросы на аутентификацию к определенному сервису, функционирующего в составе указанной области действия.
Давайте для полного понимания происходящего ужаса, проиллюстрируем это на примерах жизни (посещение режимного офиса Компании).
- сотрудник приходит в офис, показывает охраннику свое удостоверение сотрудника
- охранник проверяет в своей базе, что такой сотрудник действительно присутствует в списках Компании
- охранник выдает сотруднику билет на сутки для посещения офиса
- сотрудник поднимается на этаж офиса и на этаже подходит к ресепшиону, чтобы получить билет на открытие своего кабинета
- администратор ресепшиона проверяет билет, выданный охранником и выдают билет на кабинет
- сотрудник показывает ответственному (или прикладывает к турникету) выданный администратором билет и пропускает его в кабинет
Если сотрудник захочет пойти в другой кабинет, он снова идет к администратору ресепшиона и показывает билет, выданный охранником.
А вот как тот же самый алгоритм выглядит для Kerberos.
- Клиент отправляет запрос на аутентификацию к области действия.
- Сервер аутентификации проверяет подлинность Клиента с использованием Базы данных Kerberos.
- Сервер выдает Клиенту Тикет (TGT) на получение отдельных разрешений (ST), требующимся для доступа к сервисам, входящим в область действия.
- С использованием полученного на шаге №3 тикета (TGT) Клиент запрашивает тикет на доступ к Сервису А («ST для А»).
- Сервер выдачи тикетов проверяет TGT и выдает Клиенту ST для доступа к сервису А.
- Клиент с использованием «ST для А» запрашивает у Сервиса А доступ к его ресурсам.
- Сервис А проверяет «ST для А» и предоставляет Клиенту доступ к своим ресурсам. При необходимости сервис также проходит аутентификацию перед клиентом.
И последнее о чем сегодня поговорим это про тикеты. Тикет (он же билет) - это временные данные, выдаваемые клиенту для аутентификации на сервере, на котором располагается необходимая служба.
В разных литературных источниках встречаются понятия и Тикет, и билет, и мандат. В профессиональном жаргоне все-таки более употребим термин Тикет.
В следующих статьях мы посмотрим на уже известную нам атаку Pass-the-hash с точки зрения тикетов, а также проговорим про понятия Silver Ticker/Golden Ticket.
🔥 Спасибо за прочтение, ставьте реакцию под постом
⚡️ Ссылка - Cyber Squad
🚀 Обучение - cyber-squad.pro
🥷 Задать вопрос - Fantom