Kerberos — сетевой протокол аутентификации, который использует зашифрованные билеты от доверенного сервера, чтобы пользователи подтверждали свою личность сервисам, не передавая пароли по сети.
Как работает Kerberos
Kerberos создан в MIT в 1980-х годах; пятая версия описана в RFC 4120 и является основным протоколом аутентификации в Windows Active Directory. Доверенный центр распределения ключей (Key Distribution Center, KDC), который в Windows работает на каждом контроллере домена, выдаёт два типа билетов:
- Билет на получение билетов (TGT) — пользователь получает его после входа в систему; билет зашифрован ключом специальной учётной записи krbtgt.
- Сервисные билеты — запрашиваются с помощью TGT для каждого сервиса (файловый ресурс, SQL-сервер, веб-приложение) и шифруются ключом учётной записи этого сервиса.
Билеты действуют ограниченное время и содержат метки времени, что защищает от атак повторного воспроизведения. Обычно Kerberos работает на порту 88.
Почему Kerberos важен для безопасности
Kerberos — основа корпоративной аутентификации, поэтому после первичного проникновения атакующие берутся именно за него. В MITRE ATT&CK несколько техник собраны под T1558 (Steal or Forge Kerberos Tickets):
- Kerberoasting (T1558.003) — запрос сервисных билетов и офлайн-подбор паролей сервисных учётных записей.
- AS-REP Roasting (T1558.004) — атака на учётные записи, для которых отключена предварительная аутентификация.
- Golden Ticket (T1558.001) — подделка любого TGT с помощью украденного хеша krbtgt, что даёт полный контроль над доменом.
- Silver Ticket (T1558.002) — подделка сервисных билетов для отдельного сервиса.
Атаки pass-the-ticket повторно используют украденные билеты для горизонтального перемещения по сети.
Как защитить Kerberos
- Использовать для сервисных учётных записей длинные случайные пароли или управляемые учётные записи (gMSA).
- Отключить RC4 и требовать шифрования билетов алгоритмом AES.
- После подозрения на компрометацию домена дважды сменить пароль krbtgt.
- Отслеживать необычные запросы билетов, например множество сервисных билетов от одного пользователя.