Сводка
CVE-2021-42278 позволяет обойти уязвимость системы безопасности, которая позволяет потенциальным злоумышленникам выдать себя за контроллер домена с помощью спуфинга учетной записи sAMAccountName учетной записи компьютера.
В этой статье описаны дополнительные сведения и часто задаваемые вопросы для диспетчера учетных записей безопасности Active Directory (Windows SAM), которые были внесены в обновления от 9 ноября 2021 г. и более поздние версии, как описано в CVE-2021-42278.
Проверки active Directory
После установки CVE-2021-42278Active Directory выполнит проверки, указанные ниже в атрибутах sAMAccountName и UserAccountControl учетных записей компьютера, созданных или измененных пользователями, у которых нет прав администратора для учетных записей компьютера.
-
проверка sAMAccountType для учетных записей пользователей и компьютеров.
-
Учетные записи ObjectClass=Computer (или подкласс компьютера) должны иметь флаги UserAccountControl UF_WORKSTATION_TRUST_ACCOUNT или UF_SERVER_TRUST_ACCOUNT
-
ObjectClass=User должен иметь флаги UAC UF_NORMAL_ACCOUNT или UF_INTERDOMAIN_TRUST_ACCOUNT
-
-
Проверка sAMAccountName для учетных записей компьютера
SAMAccountName учетной записи компьютера, атрибут UserAccountControl которой содержит флаг UF_WORKSTATION_TRUST_ACCOUNT должен оканчен на один знак доллара ($). Если эти условия не выполнены, Active Directory возвращает код сбоя 0x523 ERROR_INVALID_ACCOUNTNAME. Сбойные проверки регистрируются в журнале событий Системы в поле ИД события Directory-Services-SAM 16991.
Если эти условия не выполнены, Active Directory возвращает код сбоя ACCESS_DENIED. Сбойные проверки регистрируются в журнале событий Системы в поле ИД события Directory-Services-SAM 16990.
События аудита
Сбой проверки userAccountControl и класса объектов
При сбойе проверки Класса объекта и UserAccountControl в журнал системы регистрируется следующее событие:
Журнал событий |
Система |
Тип события |
Ошибка |
Источник события |
Directory-Services-SAM |
Идентификатор события |
16990 |
Текст события |
Диспетчер учетных записей безопасности заблокировал для администратора создание учетной записи Active Directory в этом домене с несоотвляемым объектомClass и userAccountControl account type flags. Подробности: Имя учетной записи: %1%n Объект AccountClass: %2%n userAccountControl: %3%n Адрес вызываемой почты: %4%n Sid для звоня: %5%n%n |
Сбой проверки имени учетной записи SAM
При сбой проверки имени учетной записи SAM в журнал системы регистрируется следующее событие:
Журнал событий |
Система |
Тип события |
Ошибка |
Источник события |
Directory-Services-SAM |
Идентификатор события |
16991 |
Текст события |
Менеджер по учетной записи безопасности заблокировал для администратора создание или переименование учетной записи компьютера с использованием недопустимого имени sAMAccountName. для учетных записей sAMAccountName на компьютере должен быть высвечен один конечный знак $. Attempted sAMAccountName: %1 Рекомендуемая sAMAccountName: %1$ |
Успешное создание учетной записи компьютера с аудитом
Для успешного создания учетной записи компьютера доступны следующие события аудита:
-
4741(S): создана учетная запись компьютера
-
4742(S): изменена учетная запись компьютера
-
4743(S): учетная запись компьютера удалена
Дополнительные сведения см. в руководстве аудита учетных записей компьютера.
Вопросы и ответы
Q1. Как это обновление повлияет на существующие объекты в Active Directory?
A1. Проверка для существующих объектов происходит, когда пользователи, у которых нет прав администратора, изменяют атрибуты sAMAccountName или UserAccountControl.
Кв. 2. Что такое sAMAccountName?
A2. sAMAccountName — это уникальный атрибут для всех участников системы безопасности в Active Directory, который включает пользователей, группы и компьютеры. Ограничения имен для sAMAccountName описаны в 3.1.1.6Ограничения атрибутов для исходящего обновления.
Кв3. Что такое sAMAccountType?
A3. Дополнительные сведения можно получить в следующих документах:
Существует три возможных значения sAMAccountType, которые соответствуют четырем возможным флагам UserAccountcontrol следующим образом:
userAccountControl |
sAMAccountType |
---|---|
UF_NORMAL_ACCOUNT |
SAM_USER_OBJECT |
UF_INTERDOMAIN_TRUST_ACCOUNT |
SAM_TRUST_ACCOUNT |
UF_WORKSTATION_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
UF_SERVER_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
Кв4. Какие возможные значения для UserAccountControl?
A4. Дополнительные сведения можно получить в следующих документах:
Кв. 5. Как найти объекты, которые уже существуют в среде?
A5. Администраторы могут искать в каталоге существующие учетные записи, которые не соответствуют требованиям, с помощью сценария PowerShell, как по примеру ниже.
Чтобы найти учетные записи компьютеров с не соответствующими требованиям sAMAccountName:
Get-ADComputer -LDAPFilter "(samAccountName=*)" |? SamAccountName -NotLike "*$" | select DNSHostName, Name, SamAccountName |
Чтобы найти учетные записи компьютеров, которые не соответствуют требованиям UserAccountControl sAMAccountType:
Get-ADComputer -LDAPFilter "UserAccountControl:1.2.840.113556.1.4.803:=512” |