August 10, 2023

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.

  1. Клиент отправляет запрос на аутентификацию к области действия.
  2. Сервер аутентификации проверяет подлинность Клиента с использованием Базы данных Kerberos.
  3. Сервер выдает Клиенту Тикет (TGT) на получение отдельных разрешений (ST), требующимся для доступа к сервисам, входящим в область действия.
  4. С использованием полученного на шаге №3 тикета (TGT) Клиент запрашивает тикет на доступ к Сервису А («ST для А»).
  5. Сервер выдачи тикетов проверяет TGT и выдает Клиенту ST для доступа к сервису А.
  6. Клиент с использованием «ST для А» запрашивает у Сервиса А доступ к его ресурсам.
  7. Сервис А проверяет «ST для А» и предоставляет Клиенту доступ к своим ресурсам. При необходимости сервис также проходит аутентификацию перед клиентом.

И последнее о чем сегодня поговорим это про тикеты. Тикет (он же билет) - это временные данные, выдаваемые клиенту для аутентификации на сервере, на котором располагается необходимая служба.

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

В следующих статьях мы посмотрим на уже известную нам атаку Pass-the-hash с точки зрения тикетов, а также проговорим про понятия Silver Ticker/Golden Ticket.


🔥 Спасибо за прочтение, ставьте реакцию под постом

⚡️ Ссылка - Cyber Squad

🚀 Обучение - cyber-squad.pro

🥷 Задать вопрос - Fantom