Источник: https://github.com/AnaktaCTF/CTF/blob/main — Misc/Kerberos.md
- 1. Введение
- 2. Что такое Kerberos
- 3. Как работает Kerberos в Active Directory
- 4. Преимущества использования Kerberos в Active Directory
- 5. Недостатки и уязвимости Kerberos
- Заключение

В современных корпоративных сетях безопасность играет ключевую роль. Одним из важнейших аспектов информационной безопасности является аутентификация пользователей - процесс подтверждения их личности перед тем, как предоставить доступ к ресурсам. От того, насколько надёжно реализован этот процесс, зависит устойчивость всей ИТ-инфраструктуры к внутренним и внешним угрозам.
Active Directory (AD) - это служба каталогов, разработанная Microsoft, которая обеспечивает централизованное управление пользователями, компьютерами и другими объектами в сети Windows. Active Directory не только организует структуру корпоративной сети, но и отвечает за реализацию механизма аутентификации и авторизации пользователей.
В Windows-среде основным протоколом аутентификации является Kerberos. Он заменил устаревший и уязвимый протокол NTLM (NT LAN Manager), обеспечив более высокий уровень безопасности. Kerberos был разработан в Массачусетском технологическом институте (MIT) и стал стандартом для многих операционных систем, включая Windows, Linux и macOS.
Протокол Kerberos отличается тем, что:
-
работает на основе системы билетов, а не постоянной передачи паролей;
-
поддерживает единый вход (Single Sign-On, SSO);
-
использует симметричное шифрование и требует строгой синхронизации времени между клиентами и серверами.
2. Что такое Kerberos

Kerberos - это сетевая система аутентификации, основанная на модели "билетов", разработанная в Массачусетском технологическом институте (MIT) в рамках проекта Athena. Её основная задача - обеспечить безопасную аутентификацию в незащищённой сети, без необходимости постоянно передавать пароли между клиентами и серверами.
2.1 Основная идея
Kerberos использует симметричное шифрование и предполагает наличие доверенного центра (Key Distribution Center, или KDC), через который проходит вся аутентификация. Вся система построена на концепции "билетов" (tickets), которые подтверждают подлинность пользователя и его право доступа к определённым ресурсам.
2.2 Компоненты Kerberos
Kerberos включает в себя три основных участника:
-
Клиент - пользователь или процесс, который хочет получить доступ к защищённому ресурсу.
-
Сервер ресурсов - система или служба, доступ к которой требуется клиенту.
-
KDC (Key Distribution Center) - центральный компонент, который состоит из двух частей:
-
Authentication Service (AS) - отвечает за начальную аутентификацию клиента;
-
Ticket Granting Service (TGS) - выдаёт билеты для доступа к конкретным сервисам.
-
2.3 Процесс аутентификации (упрощённо)
-
Аутентификация в AS (Authentication Service):
-
Клиент отправляет запрос на аутентификацию, указывая своё имя (без пароля!).
-
AS проверяет данные и отправляет TGT (Ticket Granting Ticket) - это "билет", подтверждающий, что пользователь прошёл первичную проверку.
-
TGT зашифрован ключом, известным только KDC.
-
-
Получение сервисного билета у TGS:
-
Клиент использует TGT, чтобы запросить доступ к конкретному ресурсу (например, к файловому серверу).
-
TGS проверяет TGT, и если всё в порядке - выдаёт сервисный билет, предназначенный для нужного сервиса.
-
-
Доступ к сервису:
-
Клиент отправляет сервисный билет нужному серверу.
-
Сервер проверяет билет и предоставляет доступ, если он действителен.
-
На всём этом пути пароль пользователя не передаётся по сети, что существенно повышает уровень безопасности.
2.4 Безопасность и синхронизация времени
Kerberos требует точной синхронизации времени между участниками системы - по умолчанию допустимое расхождение составляет не более 5 минут. Это сделано для предотвращения атак типа "повтор запроса" (replay attacks), при которых злоумышленник может попытаться использовать старый билет повторно.
3. Как работает Kerberos в Active Directory
В среде Active Directory протокол Kerberos используется по умолчанию для аутентификации пользователей и сервисов, начиная с Windows 2000. Он интегрирован в архитектуру домена и обеспечивает безопасный доступ к ресурсам внутри корпоративной сети.
3.1 Роль Active Directory в контексте Kerberos
Active Directory содержит все учетные записи пользователей, компьютеров и служб, а также хранит ключи, используемые в процессе аутентификации Kerberos. Контроллер домена (Domain Controller, DC) выполняет функции KDC (Key Distribution Center), совмещая в себе службы Authentication Service (AS) и Ticket Granting Service (TGS).
Таким образом, контроллер домена - это сердце Kerberos-аутентификации в AD-среде.
3.2 Основные участники Kerberos в AD
-
Пользователь (клиент) - обращается к системе, вводя логин и пароль.
-
Контроллер домена (KDC) - выполняет функции AS и TGS.
-
Служба или сервер - предоставляет доступ к ресурсу (например, файловый сервер, принтер, SharePoint и т.д.).
-
Active Directory - база данных, хранящая ключи и SPN (Service Principal Names).
3.3 Шаги аутентификации Kerberos в домене AD
Разберем детально последовательность действий при входе пользователя в домен Windows:

Шаг 1: Аутентификация пользователя (AS Request/Reply)
-
Пользователь вводит логин и пароль на клиентском компьютере.
-
Клиент (например, рабочая станция Windows) формирует AS-REQ - запрос к Authentication Service (AS) на получение TGT (Ticket Granting Ticket).
-
Контроллер домена проверяет подлинность пользователя (на основе его пароля, превращенного в ключ) и возвращает AS-REP:
-
TGT, зашифрованный ключом KDC.
-
Сеансовый ключ, зашифрованный ключом пользователя (из пароля).
-
Шаг 2: Получение сервисного билета (TGS Request/Reply)
-
Клиент использует TGT, чтобы запросить доступ к определённому сервису (например, к файлам на сервере) через TGS-REQ.
-
Контроллер домена проверяет TGT, находит SPN запрашиваемой службы и возвращает TGS-REP, содержащий:
-
Сервисный билет, зашифрованный ключом сервиса (хранящимся в AD).
-
Сеансовый ключ для общения клиента с сервисом.
-
Шаг 3: Доступ к ресурсу
-
Клиент направляет полученный сервисный билет непосредственно целевому серверу (например, файловому), не обращаясь больше к контроллеру домена.
-
Сервер расшифровывает билет, проверяет его действительность и предоставляет доступ к ресурсу.
3.4 Что такое SPN (Service Principal Name)
SPN - это уникальный идентификатор службы, зарегистрированный в Active Directory, который Kerberos использует для определения, какому сервису выдать билет. SPN важен для правильной работы Kerberos: если он не задан или задан неправильно - аутентификация может не состояться, и система fallback-ом перейдёт на NTLM.
Пример SPN:
HTTP/webserver01.contoso.com
MSSQLSvc/sqlserver.contoso.com:1433
3.5 Пример из жизни: вход в домен
Когда пользователь входит в домен Windows, весь этот процесс выполняется автоматически и незаметно:
-
Получение TGT происходит сразу после ввода логина/пароля;
-
Дальнейшие билеты для доступа к сетевым папкам, принтерам и прочим службам запрашиваются в фоновом режиме;
-
Пользователь благодаря SSO (Single Sign-On) не вводит пароль повторно.
4. Преимущества использования Kerberos в Active Directory
4.1 Безопасность
Kerberos обеспечивает высокий уровень безопасности благодаря следующим механизмам:
-
Пароль не передаётся по сети. Вместо передачи пароля, Kerberos использует зашифрованные билеты, основанные на симметричных ключах. Это исключает перехват паролей при атаках типа "man-in-the-middle".
-
Срок действия билетов. Kerberos использует ограниченные по времени билеты (обычно 10 часов по умолчанию), что снижает риск их повторного использования.
-
Шифрование и подписи. Все билеты и сеансовые ключи шифруются, а взаимодействие между клиентом и сервером может быть подписано для проверки подлинности сообщений.
4.2 Единый вход (SSO — Single Sign-On)
Kerberos позволяет пользователю однократно пройти аутентификацию, после чего он может получать доступ ко множеству сервисов без повторного ввода пароля.
Пример: Сотрудник бухгалтерии запускает Excel, который обращается к данным на сервере SQL. Благодаря SSO, Excel использует уже полученные Kerberos-билеты для аутентификации, и не требует логина повторно.
4.3 Централизованное управление и масштабируемость
Kerberos в AD полностью централизован:
-
Все ключи и учетные записи хранятся в Active Directory.
-
Управление доступом осуществляется через группы безопасности, политики, SPN и делегирование.
Kerberos легко масштабируется на организации с тысячами пользователей и сервисов. Все контроллеры домена могут выполнять функции KDC и обрабатывать запросы.
4.4 Поддержка делегирования полномочий
Kerberos поддерживает так называемое делегирование (delegation) - возможность одной службы действовать от имени пользователя при обращении к другим службам.
Пример: Веб-приложение, запущенное в IIS, может от имени пользователя обращаться к базе данных SQL Server, если делегирование разрешено. Это особенно важно для многоуровневых систем.
4.5 Интеграция с другими системами
Kerberos является открытым стандартом (RFC 4120) и поддерживается не только в Windows, но и в Linux, macOS, Unix. Это позволяет строить гибкие гибридные инфраструктуры.
4.6 Производительность
После получения билетов у KDC, дальнейшее взаимодействие клиента с серверами не требует обращения к контроллеру домена. Это снижает нагрузку на DC и ускоряет доступ к ресурсам.
5. Недостатки и уязвимости Kerberos
Kerberos - мощный и зрелый протокол, но не без слабых мест. Его уязвимости и архитектурные ограничения могут быть использованы злоумышленниками или вызывать сбои при неправильной настройке.
5.1 Зависимость от синхронизации времени
Kerberos критически зависит от точного времени на всех устройствах. По умолчанию допустимое расхождение между клиентом и контроллером домена составляет не более 5 минут. Если это условие нарушено - выдача билетов невозможна.
Проверка текущего времени:
w32tm /query /status
Принудительная синхронизация времени с контроллером домена:
w32tm /resync
Ошибка при рассинхронизации: Пользователь получает сообщение:
“Clock skew too great” или не может получить TGT.

5.2 Атака Kerberoasting
Kerberoasting - метод атаки, при котором злоумышленник получает TGS для SPN и затем пытается в офлайне подобрать пароль к служебной учётной записи.

Получение списка SPN в домене:
setspn -T domain.local -Q */*
Сбор TGS с помощью PowerShell-утилиты Rubeus:
Rubeus.exe kerberoast
Взлом хэша билета с помощью Hashcat:
hashcat -m 13100 hash.txt rockyou.txt
Защита:
-
Используйте сложные пароли для сервисных аккаунтов.
-
Назначайте флаг
Account is sensitive and cannot be delegated. -
Применяйте MSA (Managed Service Accounts).
5.3 Атака Pass-the-Ticket (PTT)
Злоумышленник с локальным доступом может извлечь TGT/TGS и использовать их в другой сессии или на другой машине без ввода пароля.
Извлечение и импорт билета с помощью Mimikatz:
privilege::debug
sekurlsa::tickets
kerberos::ptt ticket.kirbi
Проверка загруженных билетов:
klist
Защита:
-
Включите Credential Guard.
-
Используйте LSA protection.
-
Ограничьте права локального администратора.
5.4 Ошибки в SPN и делегировании
Неверно настроенные SPN и делегирование полномочий приводят к сбоям аутентификации или появлению потенциальных уязвимостей.
Проверка зарегистрированных SPN:
setspn -L имя_учётной_записи
Поиск дублирующихся SPN:
setspn -X
5.5 Сложность обнаружения атак
Kerberos-трафик зашифрован, поэтому атаки, такие как Kerberoasting и PTT, трудно отследить без специализированных инструментов мониторинга.
Аудит событий безопасности (пример - запрос TGS):

Событие в журнале:
Event ID 4769 - A Kerberos service ticket was requested
Поиск аномалий с помощью PowerShell:
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4769} | Where-Object {
$_.Properties[4].Value -like "*krbtgt*"
}
Заключение
Протокол Kerberos занимает ключевое место в архитектуре Active Directory и является основой безопасной, масштабируемой и централизованной аутентификации в корпоративных сетях. Его билетная модель, поддержка единого входа (SSO), криптографическая стойкость и тесная интеграция с доменной структурой Windows делают его идеальным выбором для большинства внутренних ИТ-сценариев.
На протяжении всей статьи мы рассмотрели:
-
как работает Kerberos и какие компоненты в него входят;
-
как он взаимодействует с инфраструктурой Active Directory;
-
какие преимущества он предоставляет с точки зрения безопасности, удобства и производительности;
-
какие риски и уязвимости он несёт при неправильной настройке или устаревших компонентах;
Несмотря на свою зрелость, Kerberos остаётся высокоэффективным инструментом, особенно при условии правильного проектирования и сопровождения инфраструктуры. Он продолжает активно использоваться в Windows-средах, особенно в тех организациях, где важна строгая аутентификация, минимизация рисков и поддержка современных корпоративных решений (таких как SQL Server, Exchange, SharePoint и другие).
Однако важно помнить, что надёжность Kerberos напрямую зависит от грамотного администрирования:
-
точной настройки SPN;
-
безопасных паролей для сервисных учётных записей;
-
контроля делегирования полномочий;
-
регулярного аудита событий безопасности;
-
и, конечно, синхронизации времени во всей сети.
В условиях современных угроз администратору недостаточно просто “включить” Kerberos - необходимо понимать его принципы работы, быть готовым к анализу билетов, уметь выявлять подозрительные активности и применять защитные меры.
В совокупности, Kerberos - это не просто протокол. Это фундаментальная часть экосистемы Active Directory, которая требует внимания, но при должном подходе способна обеспечить высокий уровень безопасности и удобства для пользователей и ИТ-служб.