Защита от Kerberoasting: аудит SPN и безопасность учетных записей
Симптомы и механика атаки Kerberoasting
Атака Kerberoasting нацелена на извлечение тикетов служб (TGS-REQ / TGS-REP) для учетных записей пользователей, к которым привязаны имена субъектов служб (SPN — Service Principal Name). Так как тикет TGS шифруется хэшем пароля сервисной учетки, злоумышленник запрашивает тикеты для всех SPN в домене и подбирает их офлайн.
| Признак атаки Kerberoasting | Где регистрируется | Описание |
|---|---|---|
| Массовый запрос тикетов TGS | Security Log (Event ID 4769) | Один пользователь запрашивает десятки TGS-тикетов за несколько секунд |
| Использование слабого шифрования RC4 | Ticket Encryption Type: 0x17 (RC4-HMAC) | RC4 легко и быстро расшифровывается на видеокартах GPU |
| Сервисы привязаны к обычным User-аккаунтам | Active Directory Users and Computers | Учетные записи MSSQL, 1C, веб-служб с короткими паролями |
Пошаговый аудит и защита от Kerberoasting
- Найдите все учетные записи пользователей, к которым привязаны SPN:
# Поиск всех пользовательских учетных записей с настроенными SPN (исключая компьютеры):
Get-ADUser -Filter {ServicePrincipalName -like "*"} -Properties ServicePrincipalName, PasswordLastSet, Enabled, MemberOf | Where-Object { $_.DistinguishedName -notlike "*OU=Domain Controllers*" } | Select-Object Name, SamAccountName, ServicePrincipalName, PasswordLastSet | Format-List- Принудительно включите шифрование AES128/AES256 для Kerberos: отключите поддержку уязвимого алгоритма RC4 для сервисных учетных записей:
# Включение только AES128 и AES256 шифрования для учетной записи:
Set-ADUser -Identity "ИмяСервиснойУчетки" -KerberosEncryptionType AES128,AES256- Мигрируйте службы на Group Managed Service Accounts (gMSA): пароли gMSA состоят из 128 случайных символов и меняются автоматически каждые 30 дней, что делает Kerberoasting бессмысленным:
# Создание корневого ключа KDS (если не создавался ранее):
Add-KdsRootKey -EffectiveImmediately
# Создание новой учетной записи gMSA:
New-ADServiceAccount -Name "gMSA_SQLService" -DNSHostName "sql.vashdomen.local" -PrincipalsAllowedToRetrieveManagedPassword "SQL_Servers_Group"- Настройте мониторинг аномальных запросов TGS (Event ID 4769): отслеживайте запросы с типом шифрования
0x17(RC4).
Золотое правило: Любая сервисная учетная запись пользователя с SPN, которую нельзя перевести на gMSA, должна иметь сложный пароль длиной не менее 25–30 знаков.
Частые вопросы (FAQ)
Почему любой доменный пользователь может запросить тикет TGS для любого SPN?
Такова архитектура протокола Kerberos: контроллер домена не проверяет, имеет ли пользователь реальный доступ к сервису, а просто выдает зашифрованный тикет для целевого SPN.
Что означает тип шифрования Ticket Options 0x17 в Event ID 4769?
Значение 0x17 указывает на использование устаревшего алгоритма шифрования RC4-HMAC, крайне уязвимого к быстрому перебору на современных GPU.
Как удалить ошибочно добавленный SPN у пользователя?
Выполните команду: setspn -D MSSQLSvc/server.domain.local:1433 ИмяПользователя.
Можно ли полностью отключить RC4 в домене Active Directory?
Да, через групповую политику 'Сетевая безопасность: минимальные типы шифрования для Kerberos' (Network security: Configure encryption types allowed for Kerberos).