Когда у учётной записи установлен флаг 'Do not require preauthentication', любой может запросить для неё AS-REP и получить блок, зашифрованный паролем пользователя — и взломать его в режиме Offline.
# Поиск уязвимых учетных записей
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth
# Исправление
Set-ADAccountControl -Identity svc_legacy -DoesNotRequirePreAuth $falsepowershellАрхитектура и теория — под капотом
Когда установлен флаг 'Do not require preauthentication', DC возвращает AS-REP, зашифрованный паролем пользователя, любому, кто его запрашивает — без предварительной аутентификации. Это позволяет проводить офлайн-брутфорс даже без аккаунта в домене.
Практическая настройка (PowerShell / GUI)
# Кто включил флаг и когда - проверка разрешений на запись для userAccountControl
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties whenChanged,LastLogonDate,MemberOf |
Select Name,whenChanged,LastLogonDate
# Отключение флага для всех учетных записей одновременно
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} |
ForEach-Object { Set-ADAccountControl $_ -DoesNotRequirePreAuth $false }
# Усиление: принудительное использование AES и отслеживание повторного включения флага
Set-ADUser user1 -KerberosEncryptionType AES128,AES256powershellРеальные сценарии в организации
- Флаг обычно устанавливается из-за старой интеграции с Linux/Java — нужно проверить, актуально ли это ещё.
Диагностика и устранение неисправностей
- Event 4768 с Pre-Authentication Type 0 = запрос AS-REP без preauth.
Глоссарий и быстрые команды
- AS-REP — первый ответ KDC.
- UAC flag 0x400000 = DONT_REQ_PREAUTH.