Блокировка учетной записи Active Directory, анализ и решение

Блокировка учетной записи Active Directory, анализ и решение

учетная запись

Добрый день! Уважаемые читатели и гости, крупного IT блога Pyatilistnik.org. В прошлый раз мы с вами рассматривали границы применения групп Active Directory, и надеюсь вы разобрались, где и какие следует использовать. Сегодня я хочу рассмотреть, очень частую и жизненную ситуацию, которая есть в любой доменной среде, а именно блокировка учетной записи Windows в Active Directory. Данную проблему вы легко встретите на предприятиях, где есть свои политики PSO и политики смены паролей. Так, что давайте прокачаем свои знания и научимся разбираться в данной ситуации.

Причина блокировки учетной записи

Давайте разбираться, какие существуют причины блокирования учетных записей пользователей в Active Directory. Как я и говорил выше, данная ситуация существует в компаниях, где есть политики паролей, которые подразумевают блокировку учетной записи при вводе определенного количества не правильных паролей, это правильно с точки зрения безопасности и выявления таких случаев, когда кто-то пытается скомпрометировать ваши ресурсы.

Вот так вот выглядит сообщение о блокировке:

Учетная запись пользователя заблокирована и не может быть использована для входа в сеть (The referenced account is currently locked out and may not be logged on to)

Как видите в моем примере, пользователь по имени Барбоскин Геннадий Викторович не может начать работать, так как залочен.

Учетная запись пользователя заблокирована

Если в оснастке Active Directory - Пользователи и компьютеры, посмотреть свойства заблокированной учетной записи на вкладке "Учетная запись", то вы обнаружите статус:

Разблокируйте учетную запись. Учетная запись на этом контроллере домена Active Directory на данный момент заблокирована (Unlock account. This account is currently locked out on this Active Directory Domain Controller).

Разблокируйте учетную запись

Ставим галку и разблокируем учетную запись. После этого нужно выявлять причины.

Разблокированная учетная запись

Из основных причин блокировки я могу выделить:

  • Идет подбор пароля, так называемый брутфорс, что в итоге приводит к блокировкам
  • Бывают моменты, что человек пришел из отпуска и напрочь забыл свой пароль, ввел его несколько раз не правильно, чем вызвал блокирование
  • После изменения пароля, у пользователя остались старые подключения WIFI на компьютере или телефоне со старыми учетными данными, которые пытаются автоматически подключиться к сервисам компании, это является основной причиной блокировки в Active Directory
  • Как и в случае с WIFI, у пользователя после смены пароля, могут быть закэшированные, старые пароли в доступах к сетевым шарам, Outlook календарям и другим программам, которые однажды попросили ввести логин и пароль.
  • Иногда бывают задания в планировщике Windows, которые запускались от имени пользователя, а не системы
  • Забытые сессии на удаленном рабочем столе, был у меня случай когда у пользователя были права и он подключался по RDP к серверу. потом у него права забрали, а сессию разлогинить забыли, в итоге у него меняется пароль и его начинает каждый день по 5-10 раз блокировать, пака сессию не убили, проблема была актуальной.
  • Сохраненные пароли в браузерах
  • Службы работающие из под доменной учетной записи

Где настраивается политика блокировки учетных записей в домене

По рекомендациям компании Microsoft, политику блокировки учетной записи Windows настраивают на уровне домена, и чаще всего используют для этого уже имеющуюся политику "Default Domain Policy".  Открываем редактор групповой политики и щелкаем правым кликом мыши по политике "Default Domain Policy", из контекстного меню выберите пункт "Изменить".

Настройка политики блокировки учетной записи

Переходим с вами по пути: Конфигурация компьютера - Политики - Конфигурация Windows -> Параметры безопасности -> Политики учетных записей -> Политики блокировки учетных записей (Computer Configuration -> Windows Settings -> Security Settings -> Account Policy -> Account Lockout Policy)

Политика блокировки учетной записи

Тут в политике будет три пункта:

  • Время до сброса счетчика блокировки (Reset account lockout counter after) - в данном параметре задается, через какое количество времени система обнулит счетчик неудачных попыток авторизации. (Этот параметр безопасности определяет количество минут, которые должны пройти после неудачной попытки входа в систему до того, как счетчик неудачных попыток входа будет сброшен до 0. Допустимые значения: от 1 до 99999 минут. Если определено пороговое значение блокировки учетной записи, то время сброса должно быть меньше или равно длительности блокировки учетной записи. ). В моем примере я настроил политику "Время до сброса счетчика блокировки" на 10 минут, думаю больше не стоит.

редактирование параметра Время до сброса счетчика блокировки

  • Пороговое значение блокировки (Account lockout threshold) - Тут вы задаете, сколько будет допустимых неправильных попыток ввода, после превышения которых учетная запись Windows будет заблокирована (Количество неудачных попыток входа в систему может составлять от 0 до 999. Если установить это значение равным 0, то учетная запись никогда не будет разблокирована.Неудачные попытки ввода паролей на рабочих станциях или серверах-членах домена, заблокированных с помощью клавиш CTRL+ALT+DELETE или с помощью защищенных паролем заставок, считаются неудачными попытками входа в систему).  Я в своей политике задал пороговое значение блокировки равным 5-ти, этого думаю хватит, чтобы правильно ввести свой пароль.

Пороговое значение блокировки

  • Продолжительность блокировки учетной записи (Account lockout duration) - ну тут все просто, собственно время блокировки учетной записи Windows в Active Directory. Допустимые значения: от 0 до 99999 минут. Если продолжительность блокировки учетной записи равна 0, то учетная запись будет заблокирована до тех пор, пока администратор не разблокирует ее. Если определено пороговое значение блокировки учетной записи, то длительность блокировки учетной записи должна быть больше или равна времени сброса.

Настройка параметра Продолжительность блокировки учетной записи

Как выяснить причину блокировки учетной записи

Выше я вас рассказал, из-за чего может все лочиться, теперь нужно выяснить с какого компьютера или устройств, это происходит. Ко мне на работе за неделю попадает 5-7 заявок с подобным вопросом, пользователь сменил пароль и у него началась веселая игра под названием угадайка, где я оставил свои старые данные, по которым меня банит контроллер домена. Чтобы однозначно ответить на этот вопрос вам как системному администратору необходимо настроить специальную политику аудита, призванную следить за соответствующими событиями по которым вы сможете дать однозначный ответ по причинам блокировок. По умолчанию данный вид аудита не настроен.

Про аудит Active Directory я подробно рассказывал, можете посмотреть по ссылке, тут я приведу легкую его выдержку, для полноты статьи. Нам нужно включить политику аудита входа, на уровне домена. (Так же вы можете подробно почитать про расширенный аудит, дающий более тонкие настройки https://technet.microsoft.com/ru-ru/library/mt431761%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)

Включение политики аудита входа

Открываем редактор групповой политики и находим в нем дефолтную политику "Default Domain Policy", открываем ее и переходим по такому пути.

Конфигурация компьютера - Политики - Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Политики аудита

Тут будут такие политики:

  1. Аудит входа в систему
  2. Аудит доступа к объектам
  3. Аудит доступа к службе каталогов
  4. Аудит изменений политики
  5. Аудит использования привилегий
  6. Аудит отслеживания процессов
  7. Аудит системных событий
  8. Аудит событий входа в систему
  9. Аудит управления учетными записями

Нас будет интересовать включение аудита входа в систему, именно данный вид будет генерировать события 4771 и 4624. Открываем ее и ставим галки "Успех и отказ"

Аудит входа в систему

Так же советую задать политику аудита событий входа в систему, так же установите "Успех и отказ"

Аудит событий входа в систему

Ну и настроим еще таким же способом "Аудит управления учетными записями", чтобы мы видели события с кодом 4740.

Аудит управления учетными записями

Когда политика настроена, то вы можете ее принудительно обновить или дождаться автоматического обновления в течении 90-120 минут.

Какие события отслеживать в журнале безопасность

Чтобы отследить устройство вызывающее блокировки учетной записи, нужно понять алгоритм работы данного механизма. Когда кто-то пытается вводить учетные данные в Active Directory, то он идет на ближайший к нему контроллер домена (Кстати выяснить какой контроллер домена вас аутентифицировал можно очень просто, я об этом рассказывал, если интересно, то посмотрите). Данный контроллер домена видит, что пользователь предоставляет некорректные учетные данные и отсылает этот запрос аутентификации на контроллер, который обладает ролью PDC и FSMO. Так как данная роль PDC-эмулятор и отвечает в доменной среде за обработку блокировок учетных записей. Если PDC-эмулятор видит не корректные данные, то он возвращает ответ контроллеру домена, который ему это прислал, что аутентификация не возможна, и в следствии этого генерируется событие 4740, на обоих контроллерах

  • 4771 - Это событие возникает каждый раз, когда не удается центром распространения ключей для выдачи Kerberos билетов предоставить билета (TGT). Это может произойти, когда контроллер домена не установлен сертификат для проверки подлинности смарт-карты (например, с помощью «Контроллера домена» или «Проверка подлинности контроллера домена» шаблона), истек срок действия пароля пользователя или неправильный пароль был предоставленные. 4771 на контроллере домена указывает на неудачную попытку войти через Kerberos на рабочей станции с доменной учетной записью. (Подробнее про 4771 https://docs.microsoft.com/ru-ru/windows/security/threat-protection/auditing/event-4771)

Коды отказов Kerberos

  • 4776 - Событие 681/4776 на контроллере домена указывает на неудачную попытку входа в систему через NTLM с доменной учетной записью. Код ошибки указывает, почему именно аутентификация была неудачной. Если происходит сбой попытки проверки учетных данных, вы увидите, что событие отказов с значение параметра Код ошибки не равно «0x0» (Подробнее про событие 4476 https://docs.microsoft.com/ru-ru/windows/security/threat-protection/auditing/event-4776)

Коды ошибок NTLM

  • 4740 - Учетная запись указанного пользователя была заблокирована после нескольких попыток входа (Подробнее про событие 4740 https://docs.microsoft.com/ru-ru/windows/security/threat-protection/auditing/event-4740)
  • 4662 - Это событие создается только в том случае, если соответствующие SACL настроен для объекта Active Directory и выполнить операцию не удалось (Подробнее https://docs.microsoft.com/ru-ru/windows/security/threat-protection/auditing/event-4662).

Как удобно отслеживать события блокировки

Я приведу примеры, как это делаю я и как это можно автоматизировать и оповещать вас заранее, чем это сделает представитель технической поддержки. Самый правильный вариант, это использование систем мониторинга, таких как SCOM или Zabbix, но если их нет, то можно упростить себе жизнь вот такими утилитами. Могу точно сказать, что у вас в компании, как минимум не один контроллер домена, в противном случае у вас проблемы. Бегать по каждому из контроллеров домена, это не лучший вариант, правильнее будет либо перенаправлять все события на централизованный коллектор или же воспользоваться двумя волшебными утилитами, которые вам упростят жизнь.

Я вам рассказывал про набор утилит от компании Microsoft под названием Active Directory ALTools. Там была утилита LockoutStatus.exe. В задачи которой и входило определение статуса пользовательской учетной записи, заблокирована она или нет, и если до, то на каком контроллере домена. Скачайте ее и запустите. Нажимаете пункт меню "File - Select Target", для того чтобы выбрать логин нужной учетной записи.

как снять блокировку учетная запись-01

В поле "Target User Name" вы указываете логин пользователя, кто подвергся блокировке в Active Directory.

как снять блокировку учетная запись-02

На выходе вы получите отчет по всем контроллерам в домене, о статусе вашей учетной записи. Как видите, мой Барбоскин Геннадий Викторович заблокирован и имеет статус "Locked", видно количество попыток неправильного ввода пароля (Bad Pwd Count) и на каких контроллерах домена, на них мы и будем искать нужные нам события, о которых я говорил выше.

как снять блокировку учетная запись-03

Открываем просмотр событий на нужном контроллере домена. Переходим в журнал "Безопасность (Security)" именно в нем кроется причина блокировки учетной записи Барбоскина Геннадия. Так как событий огромное количество, то нам нужно отфильтровать наш журнал событий. Для этого есть кнопка "Filter Current Log (Фильтр текущего журнала)", она позволит нам выбрать только те события, которые нам нужны.

Фильтр журнала безопасности

В поле "Logged (Дата)" указываем за какой срок нужны данные, я укажу 12 часов, и в поле все события, укажем номер ID 4740 и нажимаем "Ок"

Событие 4740

Видим нашлось 50 событий, но может быть и больше и чтобы ускорить поиск нужного события, мы воспользуемся поисков, для этого нажмите кнопку "Find (Поиск)"

Поиск события блокировки учетной записи

В поисковом поле указываем нужный вам логин учетной записи Windows и нажимаем поиск, если сообщений много, то он может слегка подвисать, не переживайте по этому поводу.

Фильтрация событий 4740

В итоге у меня нашлось событие с кодом 4740, из которого видна причина блокировки учетной записи. В данном случае это рабочая станция с именем SVTTSETMAIN01, это тестовая виртуальная машина, как видите тут статус "A user account was locked out", можно переходить на эту машину и смотреть в чем там дело.

Определение компьютера сс которого идет блокировка

В событиях 4740 вы можете встреть еще вот такие причины блокировки учетной записи Active Directory, так например у меня имя сервера, где происходит блокирование EXchange, означает, что проблема в Outlook или его календарем. Я вам рассказывал, где кэшируются его данные доступа, в заметка Outlook постоянно запрашивает пароль.

Блокировка учетной записи AD. Событие 4740-01

В моей компании используются сервисы Google, такие как G-Sute и общие файловые диски, и вот при смене пароля пользователем, в данных утилитах могут остаться старые данные, в результате чего вы будите видеть в логах в компьютере блокировки имя WORKSTATION. Думаю с событием 4740 все понятно, но оно не всегда показывает подробный источник блокировки, поэтому нужно смотреть событие 4771.

Блокировка учетной записи AD. Событие 4740-02

Вот пример блокировки из-за WiFI подключения, об это мне говорит имя компьютера CISCO точки доступа. Как видите причин может быть очень много.

Блокировка учетной записи AD. Событие 4740-03

Более подробную причину блокировки учетной записи Windows на покажет событие 4771. Сделаем так же фильтрацию и по нему. Основное сообщение тут "Kerberos pre-authentication failed", обратите внимание тут есть IP-адрес, что уже хорошо, это дополнительная информация, показывающая территориальный источник. В ошибка есть код отказа Kerberos, таблица была представлена выше.

Событие 4771

Еще может быть полезным событие с кодом 4776, тут то же будет показано с какой рабочей станции была попытка ввода учетных данных.

Событие 4776

Кстати получив IP-адрес вы можете посмотреть его mac адрес на DHCP сервере или же на сетевом оборудовании, например, Cisco, я показывал как там узнать mac-адрес.

DHCP узнать mac-адрес

Далее с помощью специальных сервисов можно определить, что за производитель у данного mac-адреса, сайтов в интернете полно, которые вам помогу, например, https://2ip.ua/ru/services/information-service/mac-find. Будет полезно с мобильными устройствами.

Определение mac-адреса онлайн

Еще полезным будет изучение события 4625, там вы можете обнаружить процесс из-за которого происходит блокировка учетных записей.

Событие 4625

Как видите утилита от компании Mirosoft отлично работает, но можно посмотреть, что-то более удобное, мне нравится утилита Account Lockout Examiner от Netwrix, она бесплатная и позволяет создавать портал для технической поддержки, где они могут видеть кто заблокирован и разблокировать его, а так же причину и она умеет посылать оповещения по электронной почте.

Утилита Account Lockout Examiner проста в установке и потребует от вас две вещи:

  1. Указание имени домена для поиска событий блокировки учетных записей Windows
  2. Учетные данные от имени которых будет обращение к контроллерам домена

Через некоторое время вы получите табличку со всем пользователями у кого наблюдаются проблемы с блокировкой учеток. Тут вы увидите столбец "Workstation" в котом вы увидите адрес устройства блокировки, есть поле Bad Pwd Count показывающее количество попыток неправильно введенного пароля и дата последнего ввода. В самом конце вы увидите статусы пользователей Not locked или Locked.

Account Lockout Examiner от Netwrix

Тут же вы можете через правый клик разблокировать пользователя.

Account Lockout Examiner от Netwrix-2

В настройках Account Lockout Examine вы можете указать адрес электронной почты и сервер, для уведомлений, о событиях блокировки пользователей.

Настройка оповещений в Account Lockout Examine

Если развернете IIS на данном сервер, где установлена утилита, то сможете создать портал для технической поддержки, где можно делегировать права на разблокировку пользователей.

Поиск компьютера блокирующего пользователя через PowerShell

PowerShell, очень мощное средство позволяющее сделать очень многое, вот пример поиска устройства из-за которого блокируется учетная запись. Открываем PowerShell ISE и вводим код:

$Username = ‘username1’
$Pdce = (Get-AdDomain).PDCEmulator
$GweParams = @{
‘Computername’ = $Pdce
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Username']]"
}
$Events = Get-WinEvent @GweParams
$Events | foreach {$_.Properties[1].value + ' ' + $_.TimeCreated}

Единственное не забудьте поменять в $Username = ‘username1’ на своего пользователя, можете скачать уже готовый скрипт у меня. На выходе вы получаете имя компьютера.

Powershell поиск событий 4740

Аналогичным образом можно опросить из PowerShell все контроллеры домена в Active Directory:

$Username = ‘username1’
Get-ADDomainController -fi * | select -exp hostname | % {
$GweParams = @{
‘Computername’ = $_
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Username']]"
}
$Events = Get-WinEvent @GweParams
$Events | foreach {$_.Computer + " " +$_.Properties[1].value + ' ' + $_.TimeCreated}
}

Надеюсь, что мой скромный опыт слегка вам поможет в поиске причин, по которым у вас в домене блокируются учетные записи Active Directory.

Блокировка учетной записи не в домене Active Directory

В случае с Active Directory все понятно, а как быть если учетная запись заблокировалась на вашем локальном, домашнем компьютере. Тут две ситуации, если у вас есть заблокировалась одна из нескольких учетных записей и у других записей есть права администратора, то вы можете все разблокировать, и вторая ситуация, если у вас одна учетная запись и она залочилась, тут будет повеселее, но так же все поправимо. Я опущу причины блокировки, вероятнее всего у вас стоит политика блокировки и вы ее можете поправить через локальную, для этого в окне выполнить напишите gpedit.msc и отключите пункты, о которых я писал в самом начале, либо же с вами кто-то подшутил таким образом выставив вам эту политику, но не суть.

Как разблокировать учетную запись в Windows 10 имея вторую учетку

Если у вас блокировка учетной записи windows 10 уже свершилась, и есть в наличии вторая учетная запись, например у папы своя у мамы своя, то сделайте следующее. Чтобы снять блокировку активируйте учетную запись, откройте окно выполнить, через сочетание клавиш WIN и R и введите название оснастки lusrmgr.msc

lusrmgr.msc

Открываем контейнер "Пользователи" и находим нужного нам, переходим в его свойства

Разблокировка локальной учетной записи-01

Снимаем у нее галку "Заблокировать учётную запись" и нажимаем применить, все учетная запись теперь будет в рабочем состоянии.

Разблокировка локальной учетной записи-02

Как разблокировать свою учётную запись Windows, если нет административного доступа

Чтобы обойти блокировку учетной записи, можно пойти двумя путями, легким и посложнее. Самый простой способ разблокировать учетную запись не имя административных прав, это воспользоваться загрузочным диском SonyaPE. Когда вы сделаете из него загрузочную флешку и загрузитесь с нее, то получите рабочий стол Windows 7. Там есть утилита Active@ Password Changer Professional 3.8, которая позволит вам включить и сбросить пароль от встроенной учетной записи Администратор, которая есть в любой операционной системе Windows, далее зайдя под ней вы разблокируете нужную нам учетную запись, как я описывал выше.

Разблокировка Администратора Windows

Как видите этот метод позволяет обойти блокировку учетной записи, но он не единственный, допустим у вас под рукой нет такого диска, как SonyaPE, что делать. Можно воспользоваться встроенными средствами восстановления Windows или же ими, но на любом установочном диске с Windows вашей редакции. В заметке "Как вернуть предыдущую версию виндоус 10" я показал метод попадания в дополнительные инструменты Windows 10.

Дополнительные параметры Windows 10

Либо вы можете попасть в эти утилиты, через инструменты восстановления системы, о которых шла речь в заметке про восстановление загрузчика Windows 10.

Восстановление Windows

В том и в другом случае, вам необходимо открыть командную строку.

В командной строке введите regedit

Открытие реестра Windows

Выбираем раздел HKEY_LOCAL_MACHINE, после чего в меню "Файл" выберите пункт "Загрузить куст".

Загрузка куста реестра

 

У вас откроется проводник Windows. В моем компьютере, перейдите по пути Windows\System32\Config. В этой папке лежит файл локальной базы данных пользователей, по имени SAM. Выбираем его и открываем.

Загрузка локальной базы

Задаем имя новому кусту, для примера это будет 777.

Задаем имя новому кусту

Внутри раздела реестра HKEY_LOCAL_MACHINE теперь наблюдаем новую ветвь 777. Переходим в ней по пути: 777 – SAM – Domains – Account – Users – Names. Тут вам необходимо идентифицировать вашу учетную запись, которая находится в блокировке. В моем примере, это Василий. Выбрав Васю, посмотрите, что по умолчанию он имеет значение 0x3f8

0x3f8

Выбираем теперь куст 00003f8. В правой панели реестра ищем параметр «F» и двойным кликом раскрываем его.

Разблокировка учетной записи через реестр-01

В окошке параметра нам нужна строка 0038. Её первые два значения (у нас это 10 и 00) заменяем.

Разблокировка учетной записи через реестр-02

Двойным кликом щёлкаем по очереди на каждом из двух значений, и когда те выделятся синим, вписываем другие значения. А эти другие значения должны быть 10 и 02 соответственно.

Разблокировка учетной записи через реестр-03

Теперь в окне реестра кликаем на загруженный и отредактированный куст, у нас это 777. И выгружаем его: жмём "Файл", далее "Выгрузить куст". Все необходимые изменения внесены.

Разблокировка учетной записи через реестр-04

Перезагружаем ваш компьютер и пробуем войти под вашей учетной записью, она уже не должна быть заблокирована. На этом все, с вами был Семин Иван, автор и создатель IT блога Pyatilistnik.org.

6 Responses to Блокировка учетной записи Active Directory, анализ и решение

  1. Бадма:

    Здравствуйте, можно ли к вам обратиться с просьбой? Проконсультироваться. Есть две стойки железа от IBM, что с ними можно было бы сделать?))

  2. Бадма:

    Здравствуйте, можно ли проконсультироваться с вами по поводу железа? есть пара стоек с ibm.

  3. Алексей:

    Иван, ну у тебя и опыта…Вагон! А каким конкретно ты средством мониторишь заблокированные учетки?
    И интересно про PowerShell, ты частенько пишешь тут скрипты. Вопрос, ты изучал PowerShell, или есть справочник, и ты их оттуда берешь? Просто они замудренные…

  4. Бадма:

    День добрый, не можете проконсультировать? )
    Есть пара стоек с IBM железом, что можно с ним сделать оптимально и как?

  5. Иван Семин:

    Можно

  6. Иван Семин:

    Ну опыт дело наживное, я сам использую Zabbix. Powershell активно пытаюсь изучать, так как сейчас за ним будущее в администрировании продуктов Microsoft. Справочника нет, есть гугл и куча коллег по всему миру, каждый делится опытом.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *