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

В этой статье мы покажем, как отслеживать события блокировки учетных записей пользователей на котроллерах домена Active Directory, определять с какого компьютера и из какой конкретно программы постоянно блокируется учетная запись. Для поиска источника блокировки аккаунтов пользователей можно использовать журнал безопасности Windows, скрипты PowerShell или утилиту Account Lockout and Management Tools (Lockoutstatus.exe).

Содержание:

  • Учетная запись пользователя заблокирована и не может быть использована для входа в сеть
  • Как проверить, что аккаунт пользователя AD заблокирован?
  • Политики блокировки учетных записей в домене
  • События блокировки пользователей EventID 4740, 4625
  • Поиск компьютера, с которого блокируется пользователь с помощью PowerShell
  • Утилита Microsoft Account Lockout and Management Tools
  • Как определить программу, из которой блокируется учетная запись пользователя?

Учетная запись пользователя заблокирована и не может быть использована для входа в сеть

Политика безопасности учетных записей в большинстве организаций требует обязательного блокирования учетной записи пользователя в домене Active Directory, если он несколько раз подряд ввел неправильный пароль. Обычно учетная запись блокируется контроллером домена на несколько минут (5-30), в течении которых вход пользователя в домен невозможен. Через определение время (задается в политике безопасности домена), учетная запись пользователя автоматически разблокируется. Временная блокировка учетной записи позволяет снизить риск подбора пароля (простым брутфорсом) к учетным записям пользователей AD.

Если учётная запись пользователя в домене заблокирована, то при попытке входа в Windows появляется предупреждение:

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

Учетная запись пользователя заблокирована и не может быть использована для входа в сеть

Как проверить, что аккаунт пользователя AD заблокирован?

Вы можете проверить, что аккаунт заблокирован в графический консоли ADUC или с помощью комнадлета Get-ADUser из модуля Active Directory для PowerShell:

Get-ADUser -Identity aaivanov -Properties LockedOut,DisplayName | Select-Object samaccountName, displayName,Lockedout

Или:

Get-ADUser avivanov2 -Properties Name,Lockedout, lastLogonTimestamp,lockoutTime,logonCount,pwdLastSet | Select-Object Name, Lockedout,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},logonCount

Учетная запись сейчас заблокирована и не может быть использована для авторизации в домене (Lockedout = True). Также в выводе команды вы видите информацию о времени смены пароля пользователя в домене и времени блокировки аккаунта.

poweshell: проверить что пользователь ad заблокирован - атрибут lockedout

Можно вывести сразу все заблокированные аккаунты в домене с помощью командлета Search-ADAccount:

Search-ADAccount -UsersOnly -lockedout

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

aduc разблокировать пользователя Active Directory

Также можно немедленно разблокировать учетную запись с помощью командлета PowerShell Unlock-ADAccount:

Get-ADUser -Identity aaivanov | Unlock-ADAccount

Информацию о времени блокировки учетной записи, количестве неудачных попыток набора пароля, времени последнего входа пользователя в домен можно получить в свойствах учетной записи в консоли ADUC на вкладке редактора атрибутов или с помощью PowerShell

Get-ADUser aaivanov -Properties Name, lastLogonTimestamp,lockoutTime,logonCount,pwdLastSet | Select-Object Name,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},logonCount

powershell узнать время блокировки пользователя

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

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

  • Account lockout threshold (Пороговое значение блокировки) – через сколько неудачных попыток набора пароля учетная запись должна быть заблокирована;
  • Account lockout duration (Продолжительность блокировки учетной записи) – на какое время будет заблокирована учетная запись (по истечении этого времени блокировка будет снята автоматически);
  • Reset account lockout counter after (Время до сброса счетчика блокировки) – через какое время будет сброшен счетчик неудачных попыток авторизации.

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

Для защиты от перебора паролей рекомендуется использовать стойкие пароли пользователей в AD (использовать длину пароля не менее 8 символов и включить требования сложности. Это настраивается в разделе Password Policy в политиках Password must meet complexity requirements и Minimum password length. Периодически нужно выполнять аудит паролей пользователей.

Ситуации, когда пользователь забыл свой пароль и сам вызвал блокировку своей учетки случаются довольно часто. Но в некоторых случаях блокировка учеток происходит неожиданно, без каких-либо видимых причин. Т.е. пользоваться “клянется”, что ничего особого не делал, ни разу не ошибался при вводе пароля, но его учетная запись почему-то заблокировалась. Администратор по просьбе пользователя может вручную снять блокировку, но через некоторое время ситуация повторяется.

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

События блокировки пользователей EventID 4740, 4625

В первую очередь администратору нужно разобраться с какого компьютера/сервера домена происходят попытки ввода неверных паролей и идет дальнейшая блокировка учетной записи.
Чтобы в журналах контроллеров домена записывались события блокировки учетных записей, нужно включить следующие подкатегории аудита на контроллерах домена в секции Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Advanced Audit Policy -> Logon/Logoff:

  • Audit Account Lockout
  • Audit Logon
  • Audit Logoff

Затем перейдите в раздел Account Management и включите политику:

  • Audit User Account Management: Success

Проще всего включить эти параметры GPO через консоль
gpmc.msc
, отредактировав политику Default Domain Controller Policy.

политика аудита событий блокировки на контроллерах домена Audit Account Lockout

Если пользователь ввел неверный пароль, то ближайший к пользователю контроллер домена перенаправляет запрос аутентификации на DC с FSMO ролью эмулятора PDC (именно он отвечает за обработку блокировок учетных записей). Если проверка подлинности не выполнилась и на PDC, он отвечает первому DC о невозможности аутентификации. Если количество неуспешных аутентификаций превысило значение, заданное для домена в политике Account lockout threshold, учетная запись пользователя временно блокируется.

При этом в журнале обоих контроллеров домена фиксируются событие с EventID 4740 с указанием DNS имени (IP адреса) компьютера, с которого пришел первоначальный запрос на авторизацию пользователя. Чтобы не анализировать журналы на всех DC, проще всего искать это события в журнале безопасности на PDC контроллере. Найти PDC в домене можно так:

(Get-AdDomain).PDCEmulator

Событие блокировки учетной записи домена можно найти в журнале Security (Event Viewer > Windows Logs) на контролере домена. Отфильтруйте журнал безопасности (Filter Current Log) по событию с Event ID 4740. Должен появиться список последних событий блокировок учетных записей контроллером домена. Переберите все события, начиная с самого верхнего и найдите событие, в котором указано, что учетная запись нужного пользователя (имя учетной записи указано в строке Account Name) заблокирована (A user account was locked out).

Примечание. В большой инфраструктуре AD, в журнале безопасности фиксируется большое количество событий, которые постепенно перезаписываются более новыми. Поэтому желательно увеличить максимальный размер журнала на DC и приступать к поиску источника блокировки как можно раньше.

Событие блокировки учетной записи на контроллере домена AD. eventid 4740

Откройте данное событие. Имя компьютера (или сервера), с которого была произведена блокировка указано в поле Caller Computer Name. В данном случае имя компьютера – WKS-TEST1.

Если в поле Computer Name указано неизвестное имя компьютера/устройства, который не резолвится в вашей сети через DNS (недоменный компьютер, или не Windows устройство с поддержкой Kerberos аутентфикации), вы можете получить IP адрес этого устройства. Для этого нужно включить следующие параметры аудита в Default Domain Controller Policy. Перейдите в раздел Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Advanced Audit Configuration и настройте следующие параметры:

Account Logon

  • Audit Kerberos Authentication Service: Success, Failure
  • Audit Kerberos Service Ticket Operations: Success, Failure

Logon/Logoff

  • Audit Special Logon: Success, Failure

Откройте журнал Event Viewer -> Security и включите фильтр по Event ID 4740 и 4741. Обратите внимание, что теперь перед появлением события блокировки пользователя (4740) появляется событие 4771 (неуспешная kerberos аутентфикация) от Kerberos Authentication Service. В нем указано имя пользователя, который пытался выполнить аутентификацию и IP адрес устройства (поле Network Information -> Client Address), с которого пришел запрос.

4711 ip адрес устройтва-источника блокировки пользователя через kerberos аутентфикацию

Если удаленное устройство использует NTLM для аутентификации в домене, нужно выполнить поиск события EventID 4625 (неуспешная NTLM аутентификация) на контроллерах домена (оно появится только на DC, через который была выполнена попытка аутентифицироваться через NTLM).

Откройте последнее найденное событие с EventID 4625 для вашего пользователя (Account name). Здесь видно, что при попытке выполнить NTLM аутентификацию (Authentication Package: NTLM, Logon Process: NtLmSsp) учетная запись была заблокирована (
Failure Reason: Account locked out, Status: 0xC0000234
). В описании события указаны как имя компьютера (Workstation Name), так и его IP адрес (Source Network Address).

4625 IP адрес устройства, с которого выполняется блокировка пользователя при использовании NTLM аутентфикации

Если вы не можете найти событие блокировки пользователя в журнале Event Viewer, можно включить расширенный лог netlogon на контроллере домена. Выполните команду:

nltest /dbflag:2080ffffff

Перезапустите службу Netlogon

net stop netlogon && net start netlogon

Выполните поиск в файле netlogon.log событий:

  • 0xc000006a – An invalid attempt to login has been made by the following user
  • 0xc0000234 – The user account has been automatically locked because too many invalid logon attempts or password change attempts have been requested.

Можно найти события блокировки пользователя a.berg в файле netlogon.log с помощью команды:

type C:Windowsdebugnetlogon.log | findstr a.berg| findstr /i "0xC000006A"

поиск источника блокировки пользователя в логе debugnetlogon.log

В данном примере видно, что пользователь a.berg блокируется с устройства DESKTOP-74G6LB.

Не забудьте отключить расширенный лог на DC:

nltest /dbflag:0x0

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

Можно воспользоваться следующим PowerShell скриптом для поиска источника блокировки конкретного пользователя на PDC. Данный скрипт вернет дату блокировки и компьютер, с которого она произошла. Скрипт выполняет поиск событий с Event ID в Event Log:

$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}

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}
}

Утилита Microsoft Account Lockout and Management Tools

Для поиска источника блокировки пользователя можно использовать графическую утилиту Microsoft Account Lockout and Management Tools
Lockoutstatus.exe
(скачать ее можно тут). Данная утилита проверяет статус блокировки учетной записи на всех контроллерах домена.

Запустите утилиту Lockoutstatus.exe, укажите имя заблокированной учетной записи (Target User Name) и имя домена (Target Domain Name).

УтилитаMicrosoft Account Lockout and Management Tools

В появившемся списке будет содержаться список DC и состояние учетной записи (Locked или Non Locked). Дополнительно отображается время блокировки и компьютер, с которого заблокирована данная учетная запись (Orig Lock).

статус блокировки пользователя на всех контроллераз домена

Атрибуты badPwdCount и LastBadPasswordAttempt не реплицируются между контролерами домена.

Прямо из утилиты Lockoutstatus можно разблокировать пользователя, или сменить его пароль.

Lockoutstatus разблокировать пользователя

Основной недостаток утилиты LockoutStatus – она довольно долго опрашивает все контроллеры домена (некоторые из них могут быть недоступны).

Как определить программу, из которой блокируется учетная запись пользователя?

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

Часто пользователи начинают жаловаться на блокировку своей учетной записи в домене после плановой смены пароля. Чаще всего это значит, что старый (неверный) пароль сохранен в некой программе, скрипте или службе, которая периодически пытается авторизоваться в домене с устаревшим паролем. Рассмотрим самые распространенные места, в которых пользователь мог сохранить свой старый пароль:

  • Сетевые диски, подключенные через
    net use
    (Map Drive);
  • Задания планировщика Windows Task Scheduler;
  • Ярлыки с настроенным режимом
    RunAs
    (используется для запуска от имени другого пользователя);
  • В службах Windows, которые настроены на запуск из-под доменной учетной записи;
  • Сохранённые пароли в менеджере паролей в панели управления (Credential Manager). Выполните команду
    rundll32.exe keymgr.dll, KRShowKeyMgr
    и удалите сохраненные пароли;

    Пароли пользователей могут быть сохранены в контексте SYSTEM. Чтобы вывести их, нужно запустить командную строку от имени SYSTEM с помощью
    psexec -i -s -d cmd.exe
    и выполнить команду
    rundll32 keymgr.dll,KRShowKeyMgr
    чтобы открыть список сохраненных паролей для NT AUTHORITYSYSTEM.

  • Программы, которые хранят и используют закэшировнный пароль пользователя;
  • Браузеры;
  • Мобильные устройства (например, использующееся для доступа к корпоративной почте);
  • Программы с автологином или настроенный автоматический вход в Windows;
  • Незавершенные сессии пользователя на других компьютерах или терминальных RDS фермах или RDP серверах (поэтому желательно настраивать лимиты для RDP сессий);
  • Сохраненные пароли для подключения к Wi-FI сетям (WPA2-Enterprise 802.1x аутентификацию в беспроводной сети);
  • Если пользователь недавно сменил пароль и забыл его, вы можете сбросить его.

Совет. Существует ряд сторонних утилит (в основном коммерческих) позволяющих администратору выполнить проверку удаленной машины и детектировать источник блокировки учетных записей. В качестве довольно популярного решения отметим Account Lockout Examiner от Netwrix.

Для более детального аудита блокировок на найденном компьютере необходимо включить ряд локальных политик аудита Windows. Для этого на компьютере, на котором нужно отследить источник блокировки, откройте редактор локальной групповой политики gpedit.msc и включите следующие параметры в разделе Compute Configurations -> Windows Settings -> Security Settings -> Local Policies -> Audit Policy:

  • Audit process tracking: Success , Failure
  • Audit logon events: Success , Failure

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

Затем обновите настройки групповых политик на клиенте:

gpupdate /force

Дождитесь очередной блокировки учетной записи и найдите в журнале безопасности (Security) события с Event ID 4625. В нашем случае это событие выглядит так:

An account failed to log on.
Failure Reason: Account locked out.

Выявлем процесс/программу из которой была залокирована учетная запись

Из описания события видно, что источник блокировки учетной записи (Caller Process Name) – процесс mssdmn.exe (является компонентом Sharepoint). Осталось сообщить пользователю о том, что ему необходимо обновить свой пароль на веб-портале Sharepoint.

После окончания анализа, выявления и наказания виновника не забудьте отключить действие включенных групповых политик аудита.

Если вы так и не смогли найти причину блокировки учетной записи на конкретном компьютере, попробуйте просто переименовать имя учетной записи пользователя в Active Directory (измените SAMaccountName и UPN пользователя в домене AD). Это как правило самый действенный метод защиты от внезапных блокировок определенного пользователя, если вы не смогли установить источник блокировки.

Время на прочтение
4 мин

Количество просмотров 68K

В работе администратора домена Active Directory довольно часто возникает необходимость найти причину блокировки пользователя. Иногда причиной блокировки пользователя является заражённый вирусом ПК — в таких случаях особо важна скорость обнаружения источника проблемы. В PowerShell 2 на Windows 2008 R2 есть прекрасный командлет Get-WinEvent который позволяет решать данную задачу за 1-2 минуты даже в очень большом домене.
Примечание: всё далее описанное касается только PowerShell >= 2.0

Необходимые исходные условия.

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

Категория аудита Подкатегория аудита Тип аудита Интересующий нас eventID
Audit Account Logon Events (Вход учётной записи) Kerberos Authentication Service (Аудит службы проверки подлинности Kerberos) Отказ 4771 Kerberos pre-authentication failed.
Audit Logon Events (Вход/Выход) Logon (Аудит входа в систему) Отказ 4625 An account failed to log on.
Audit Logon Events (Вход/Выход) Account Lockout (Аудит блокировки учётных записей) Успех 4740 Account locked
Алгоритм поиска источника блокировки

  1. Определить какой контроллер является владельцем роли PDC-эмулятора
  2. Найти в журнале безопасности PDC-эмулятора событие с кодом 4740 в поле «TargetUserName», которого указано имя интересующего нас пользователя
  3. В поле «TargetDomainName» того же события найти имя контроллера домена, обслужившего авторизацию
  4. Найти в журнале безопасности контроллера, обслужившего авторизацию, событие с кодом 4625 (неуспешная NTLM авторизация) или 4771 (неуспешная kerberos авторизация)
  5. Из найденного события получить значения полей «IpAddress» — адрес ПК с которого была попытка авторизации

Этих действий будет достаточно для быстрого поиска ПК с вредоносным ПО, подбирающим пароли пользователей. Как правило достаточно быстро вычислить источник проблемы и изолировать его для дальнейшего расследования. Алгоритм поиска процесса непосредственно вызывающего блокировку пользователя сильно зависит от ПО, установленного на конечном ПК.

Используемые командлеты PowerShell

  • Get-ADDomainController — для определения владельца роли PDC-эмулятора
  • Get-WinEvent — «волшебный» командлет, благодаря которому и стал возможным быстрый поиск

В чём «магия» Get-WinEvent?
Во-первых он ищет события с конца и имеет параметр -MaxEvents, позволяющий найти только самое последнее событие или неколько самых последних событий.
Во-вторых он имеет прекрасный параметр -FilterHashtable, который позволяет очень гибко задать условия поиска события.

Скрипт поиска

Для себя я подготовил небольшой PowerShell скрипт.
На входе скрипт принимает либо имя пользователя, для которого необходимо найти источник блокировки, либо количество (по умолчанию — 1) последних заблокированных пользователей.

 param (
    $User,
    $Count = 1
 ) 
    $result = New-Object system.Data.DataTable "Locks"
    $col1 = New-Object system.Data.DataColumn Username,([string])
    $col2 = New-Object system.Data.DataColumn DCFrom,([string])
    $col3 = New-Object system.Data.DataColumn LockTime,([string])
    $col4 = New-Object system.Data.DataColumn eventID,([string])
    $col5 = New-Object system.Data.DataColumn SourceHost,([string])
    $col6 = New-Object system.Data.DataColumn LogonType,([string])
    $col7 = New-Object system.Data.DataColumn LogonProcessName,([string])
    $col8 = New-Object system.Data.DataColumn FalureTime,([string])
    $result.columns.add($col1)
    $result.columns.add($col2)
    $result.columns.add($col3)
    $result.columns.add($col4)
    $result.columns.add($col5)
    $result.columns.add($col6)
    $result.columns.add($col7)
    $result.columns.add($col8)
    
    $PDC = [string](Get-ADDomainController -Discover -Service PrimaryDC).Hostname
    $FilterHash = @{}
    $FilterHash.LogName = "Security"
    $FilterHash.ID = "4740"
    if ($User) {
        $FilterHash.data =$User
        $Count = 1
    }
    $FilterHash2 = @{}
    $FilterHash2.LogName = "Security"
    $FilterHash2.ID = @("4625", "4771")
    Get-WinEvent -Computername $PDC -FilterHashtable $FilterHash -MaxEvents $Count |  foreach {
        $Row = $result.NewRow()
        $Username = ([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “TargetUserName”} | %{$_."#text"}
        $DCFrom = ([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “TargetDomainName”} | %{$_."#text"}
        $LockTime = $_.TimeCreated
        $FilterHash2.data = $username
        Get-WinEvent -Computername $dcfrom -FilterHashtable $FilterHash2 -MaxEvents 3 | foreach {
            $Row = $result.NewRow()
            $Row.Username = $Username
            $Row.DCFrom = $DCFrom
            $Row.LockTime = $LockTime
            $Row.eventID = $_.ID
            $Row.SourceHost = ([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “IpAddress”} | %{$_."#text"}
            $Row.LogonType = ([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “LogonType”} | %{$_."#text"} 
            switch ($Row.LogonType)
            { 
             "2" {$Row.LogonType = "Interactive"}
             "3" {$Row.LogonType = "Network"}
             "4" {$Row.LogonType = "Batch"}
             "5" {$Row.LogonType = "Service"}
             "7" {$Row.LogonType = "Unlock"}
             "8" {$Row.LogonType = "NetworkCleartext"}
             "9" {$Row.LogonType = "NewCredentials"}
             "10" {$Row.LogonType = "RemoteInteractive"}
             "11" {$Row.LogonType = "CachedInteractive"}
            }
            $Row.LogonProcessName = ([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq “LogonProcessName”} | %{$_."#text"}
            $Row.FalureTime = $_.TimeCreated            
            $result.Rows.Add($Row)            
        }
    }
  $result | Format-Table -AutoSize

Пример использования:

PS> Find-Locker.ps1 -User i.i.inanov
PS> Find-Locker.ps1 -Count 10
Вместо P.S.

Да, есть Account Lockout and Management Tools с прекрасной утилитой LockoutStatus.exe, но она долго опрашивает все контроллеры домена (а некоторый из них могут быть и недоступны).
Предложенный скрипт никак не претендует на замену LockoutStatus.exe (у них совершенно разный принцип работы). Обычно я использую их вместе.

Готовый скрипт можно скачать с Google Drive: Find-Locker.ps1

В этой статье мы покажем вам, как отслеживать события блокировки учётной записи пользователя на контроллерах домена Active Directory, определять с какого компьютера и какой программой постоянно блокируется учётная запись. Чтобы найти источник блокировки учётной записи, вы можете использовать журнал безопасности Windows, скрипты PowerShell или средство блокировки и управления учётной записью MSFT (Lockoutstatus.exe).

Разница между отключённой, просроченной и заблокированной учётной записью

Данная статья посвящена заблокированным аккаунтом (в английской версии это locked out). Но кроме блокировки аккаунта, возможны следующие причины, почему пользователь не может войти в домен:

  • аккаунт отключён
  • аккаунт просрочен
  • пользователь ограничен определённым временем или компьютером для входа

Отключённые аккаунты (disabled)

Администратор домена может вручную отключить (деактивировать) аккаунт пользователя. Если пользователь отключён, то будет выведено сообщение:

Ваша учётная запись отключена. Обратитесь к системному администратору.

Включение аккаунта выполняется администратором (вручную или через скрипт), но не может быть выполнено автоматически, например, по истечении определённого срока действия.

Заблокированные аккаунты (locked out)

Учётная запись может быть заблокирована автоматически в соответствии с политикой блокировки учётной записи организации. Если пользователь ввёл неправильный пароль более определённого количества раз (порог устанавливается политикой паролей), то его аккаунт автоматически блокируется на время, которое также устанавливается политикой паролей.

На период блокировки пользователь будет получать следующее сообщение при каждой попытке входа:

Учётная запись заблокирована и не может использоваться для входа в сеть.

Блокировка может быть снята автоматически после истечения сроки блокировки, установленной в политике паролей домена. Также администратор может ускорить этот процесс и снять блокировку вручную.

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

Учётные записи с истекшим сроком действия (expired)

Учётная запись пользователя может быть бессрочной или действующий в течение определённого времени. Удобно установить срок действия учётной записи для временных пользователей, которые должны иметь доступ в домен, например, на период действия контракта с ними. При установки срока истечения действия, системный администратор не пропустит момент когда нужно отключить пользователя.

Запрет доступа по другим причинам

Пользователю может быть разрешено входить только на определённые компьютеры и/или только в определённые часы. Пример сообщения, когда пользователю не разрешено выполнить вход на этом компьютере:

Вы не можете пользоваться этим компьютером из-за ограничений вашей учётной записи. Попробуйте воспользоваться другим компьютером.

Пример сообщения, когда пользователь пытается войти в неурочное время или день:

Вы не можете сейчас войти в систему из-за ограничений вашей учётной записи. Попробуйте ещё раз позже.

Данные ограничения могут перестать действовать в определённые часы или на определённых компьютерах. Эти ограничения устанавливает и снимает администратор домена.

Учётная запись заблокирована и не может использоваться для входа в сеть

Политика безопасности аккаунтов домена в большинстве организаций требует обязательной блокировки учётной записи пользователя Active Directory, если неверный пароль вводился несколько раз подряд. Обычно учётная запись блокируется контроллером домена на несколько минут (5–30), в течение которых пользователь не может войти в домен AD. Через некоторое время (установленное политикой безопасности домена) учётная запись пользователя автоматически разблокируется. Временная блокировка учётной записи AD снижает риск атак методом переборы (брут-форс) на пароли учётных записей пользователей AD.

Если учётная запись пользователя в домене заблокирована, при попытке входа в Windows появляется предупреждение:

Учётная запись заблокирована и не может использоваться для входа в сеть

В Windows на английском языке сообщение выглядит так:

The referenced account is currently locked out and may not be logged on to ….

Как проверить, заблокирована ли учётная запись пользователя?

Проверить, заблокирована ли учётная запись, можно в графической консоли ADUC или с помощью командлета Get-ADUser из модуля Active Directory для PowerShell:

Get-ADUser -Identity Alex -Properties LockedOut,DisplayName | Select-Object samaccountName,displayName,Lockedout

Учётная запись в данный момент заблокирована и не может использоваться для аутентификации в домене (Lockedout = True).

Вы можете вывести список всех заблокированных на данный момент учётных записей в домене с помощью командлета Search-ADAccount:

Search-ADAccount -LockedOut

Вы можете разблокировать учётную запись вручную с помощью консоли ADUC, не дожидаясь автоматической разблокировки. Найдите учётную запись пользователя, щёлкните правой кнопкой мыши и выберите Properties («Свойства»). Перейдите на вкладку Account («Учётная запись») и установите флажок Unlock account. This account is currently locked out on this Active Directory Domain Controller (в русскоязычной версии «Разблокируйте учётную запись. Учётная запись на этом контроллере домена Active Directoryв на данный момент заблокирована»). Затем кликните «ОК».

Вы также можете сразу разблокировать нужную учётную запись, используя следующую команду PowerShell:

Get-ADUser -Identity Alex | Unlock-ADAccount

Вы можете проверить время блокировки учётной записи, количество неудачных попыток ввода пароля, время последнего успешного входа в систему в свойствах учётной записи в консоли ADUC (на вкладке Attribute Editor «Редактора атрибутов»)

   

или с помощью PowerShell:

Get-ADUser Alex -Properties Name,lastLogonTimestamp,lockoutTime,logonCount,pwdLastSet | Select-Object Name,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},logonCount

Политики блокировки учётных записей в домене Active Directory

Политики блокировки учётных записей обычно устанавливаются в Default Domain Policy для всего домена с помощью оснастки gpmc.msc. Необходимые политики можно найти в Computer configuration→ Policies→ Windows Settings → Security Settings → Account Policies → Account Lockout Password (в русскоязычной версии это соответственно Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Политики учетных записей → Политика блокировки учётной записи). Это следующие политики:

  • Account Lockout Threshold (Пороговое значение блокировки) – количество неудачных попыток входа в систему (с неправильным паролем), которое может быть выполнено пользователем до блокировки его учётной записи;
  • Account Lockout Duration (Продолжительность блокировки учётной записи) — как долго будет заблокирована учётная запись, если пользователь несколько раз ввёл неверный пароль;
  • Reset account lockout counter after (Время до сброса счётчика блокировки) — количество минут, по истечении которых счётчик порога блокировки учётной записи будет сброшен.

Чтобы защитить учётные записи пользователей вашего домена от взлома пароля, рекомендуется использовать надёжные пароли пользователей в AD (длина пароля не менее 8 символов и включение требований к сложности пароля). Это настраивается в разделе Password Policy («Политика паролей»): Password must meet complexity requirements (Пароль должен отвечать требованиям сложности) и Minimum password length (Минимальная длина пароля). Периодически нужно проверять пароли пользователей.

Случаи, когда пользователь забывает пароль и сами вызывают блокировку учётной записи, происходят довольно часты. Если пользователь недавно сменил пароль и забыл его, вы можете сбросить его. Но в некоторых случаях блокировка учётной записи происходит без какой-либо очевидной причины. То есть пользователь заявляет, что никогда не ошибался при вводе пароля, но его учётная запись по каким-то причинам заблокирована. Администратор может разблокировать аккаунт вручную по запросу пользователя, но через некоторое время ситуация может повториться.

Чтобы решить проблему пользователя, администратору необходимо выяснить, с какого компьютера и программы учётная запись пользователя в Active Directory была заблокирована.

Политики аудита входа в систему для контроллеров домена

Чтобы включить фиксацию события блокировки учётной записи в журналах контроллера домена, необходимо активировать следующие политики аудита для контроллеров домена. Перейдите в раздел GPO Computer Configuration → Policies → Windows Settings → Security Settings → Advanced Audit Policy → Logon/Logoff и включите следующие политики:

  • Audit Account Lockout
  • Audit Logon
  • Audit Logoff

В русскоязычной версии это соответственно Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Конфигурация расширенной политики аудита → Политика аудита → Вход/Выход, политики:

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

Самый простой способ включить эту политику — через консоль gpmc.msc, отредактировав Default Domain Controller Policy или используя Default Domain Policy на уровне всего домена.

Обратите внимание, что для использования параметров «Конфигурация расширенной политики аудита» также необходимо в Локальной политике безопасности (secpol.msc) включить по пути Параметры безопасности → Локальные политики → Параметры безопасности параметр «Аудит: принудительно переопределяет параметры категории политики аудита параметрами подкатегории политики аудита (Windows Vista или следующие версии)». Это значение по умолчанию установлено на «Включён», поэтому если вы не отключали эту политику, то вам не нужно о ней беспокоиться.

Идентификатор события блокировки учётной записи 4740

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

Если ближайший к пользователю контроллер домена определяет, что пользователь пытается войти в систему с недопустимыми учётными данными, он перенаправляет запрос проверки подлинности на контроллер домена с ролью FSMO эмулятора основного контроллера домена (этот конкретный контроллер домена отвечает за обработку блокировок учётных записей). Если аутентификация на PDC завершается неудачно, он отвечает на первый DC, что аутентификация невозможна. Если количество неудачных проверок подлинности превышает значение, установленное для домена в политике Account Lockout Threshold (Пороговое значение блокировки), учётная запись пользователя временно блокируется.

В этом случае событие с EventID 4740 записывается в журнал безопасности обоих контроллеров домена. Событие содержит DNS-имя (IP-адрес) компьютера, с которого пришел первоначальный запрос на авторизацию пользователя. Чтобы не анализировать журналы на всех контроллерах домена, проще всего искать события блокировки в журнале безопасности на PDC контроллера домена. Вы можете найти PDC в своём домене следующим образом:

(Get-AdDomain).PDCEmulator

События блокировки учётной записи домена можно найти в журнале безопасности на контроллере домена. Чтобы его увидеть, запустите Event Viewer («Просмотр событий»), его можно открыть в командной строке:

eventvwr.msc

В окне Event Viewer («Просмотр событий») перейдите по пути Event Viewer (Local) → Windows Logs → Security (в русскоязычной версии это Просмотр событий (локальный) → Журналы Windows → Безопасность).

В Event Viewer («Просмотр событий») отфильтруйте журнал безопасности по Event ID («Код события») указав значение 4740, для этого нажмите Filter Current Log («Фильтр текущего журнала») и введите в поле <All Event Ids> («Все коды событий») значение 4740.

Вы должны увидеть список последних событий блокировки учётной записи. Найдите событие с нужной вам учётной записью пользователя (имя пользователя указано в значении поля Account Name («Имя учётной записи»). В описании события вы увидите строку A user account was locked out («Учетная запись пользователя была заблокирована»).

Подсказка: в большой среде AD в журнал безопасности на контроллерах домена записывается большое количество событий, которые постепенно перезаписываются новыми. Поэтому рекомендуется увеличить максимальный размер журнала на контроллерах домена и как можно скорее приступить к поиску источника блокировки.

Откройте найденное событие. Имя компьютера (сервера), с которого была произведена блокировка, указывается в поле Caller Computer Name. В моём случае имя компьютера — HACKWARE-WIN.

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

Вы можете использовать следующий скрипт PowerShell, чтобы найти источник блокировки учётной записи конкретного пользователя в журналах событий PDC. Этот скрипт возвращает время блокировки и имя компьютера, с которого она произошла (замените Alex на имя интересующего вас пользователя):

$Usr = 'Alex'
$Pdc = (Get-AdDomain).PDCEmulator
$ParamsEvn = @{
	'Computername' = $Pdc
	'LogName' = 'Security'
	'FilterXPath' = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
}
$Evnts = Get-WinEvent @ParamsEvn 
$Evnts | ForEach-Object {$_.Properties[1].value + ' ' + $_.TimeCreated + ', UserName: ' + $Usr}

Пример полученных данных:

HACKWARE-WIN 09/29/2021 07:31:59
HACKWARE-WIN 09/29/2021 06:53:12
HACKWARE-WIN 09/29/2021 05:44:18

Если вы хотите ограничить вывод журнала, например, только последними двумя днями, то используйте следующий скрипт:

$Usr = 'Alex'
$Date = (Get-Date).AddDays(-2)
$Evnts = Get-WinEvent -FilterHashtable @{ LogName='Security'; StartTime=$Date; Id='4740'; Data="$Usr";  }
$Evnts | ForEach-Object {$_.Properties[1].value + ' ' + $_.TimeCreated + ', UserName: ' + $_.Properties[0].value}

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

$Usr = 'MiAl'
Get-ADDomainController -Filter * | Select-Object -exp hostname | % {
	$ParamsEvn = @{
		'Computername' = $Pdc
		'LogName' = 'Security'
		'FilterXPath' = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
	}
	$Evnts = Get-WinEvent @ParamsEvn
	$Evnts | ForEach-Object {$_.MachineName + " " + $_.Properties[1].value + ' ' + $_.TimeCreated + ', UserName: ' + $_.Properties[0].value}
}

Microsoft Account Lockout and Management Tools (Инструменты блокировки и управления учётной записью от Microsoft)

Чтобы найти источник блокировки учётной записи пользователя, вы можете использовать набор инструментов Microsoft Account Lockout and Management Tools, а именно инструмент Lockoutstatus.exe (его можно скачать здесь). Этот графический инструмент проверяет состояние блокировки учётной записи и событий блокировки на всех контроллерах домена.

Запустите средство Lockoutstatus.exe, укажите имя заблокированной учётной записи (Target User Name) и имя домена (Target Domain Name).

Появившийся список будет содержать список контроллеров домена и статус учётной записи (Locked или Non Locked). Кроме того, отображается время блокировки и компьютер, на котором эта учётная запись заблокирована (Orig Lock), но в моём случае компьютер, который стал причиной блокировки, показан неверно.

Атрибуты badPwdCount и LastBadPasswordAttempt не реплицируются между контроллерами домена.

Вы можете разблокировать учётную запись пользователя или изменить пароль прямо из окна Lockoutstatus.

Основным недостатком инструмента LockoutStatus является то, что он опрашивает все контроллеры домена, некоторые из них могут быть недоступны, что вызывает задержку в выдачи результатов.

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

Итак, мы выяснили, с какого компьютера или сервера была заблокирована учётная запись. Теперь было бы здорово узнать, какая программа или процесс являются источником блокировки учётной записи.

Часто пользователи начинают жаловаться на блокировку своих учётных записей домена после изменения паролей. Это говорит о том, что старый (неправильный) пароль сохраняется в определённой программе, скрипте или службе, которая периодически пытается аутентифицироваться на контроллере домена с неверным паролем. Рассмотрим наиболее распространённые места, в которых пользователь мог сохранить старый пароль:

  • Подключённые сетевые диски (через net use);
  • Работы Windows Task Scheduler (Планировщика заданий Windows);
  • Службы Windows, настроенные для запуска из учётной записи домена;
  • Сохранённые учётные данные в Credential Manager (Диспетчере учётных данных) (в Панели управления);
  • Браузеры;
  • Мобильные устройства (например, те, которые используются для доступа к корпоративному почтовому ящику);
  • Программы с автоматическим входом или настроенная функция автоматического входа в Windows;
  • Отключённые/незанятые сеансы RDP на других компьютерах или серверах RDS (поэтому рекомендуется установить ограничения для сеансов RDP);

Подсказка: существует ряд сторонних инструментов (в основном коммерческих), которые позволяют администратору проверять удалённый компьютер и определять источник блокировки учётной записи. В качестве достаточно популярного решения отметим Lockout Examiner от Netwrix.

Чтобы выполнить подробный аудит блокировки учётной записи на найденном компьютере, необходимо включить ряд локальных политик аудита Windows. Для этого откройте локальный редактор групповой политики (gpedit.msc) на компьютере (на котором вы хотите отслеживать источник блокировки) и включите следующие политики в разделе Computer Configurations → Windows Settings → Security Settings → Local Policies → Audit Policy:

  • Audit process tracking: Success , Failure
  • Audit logon events: Success , Failure

В русскоязычной версии это соответственно: Конфигурации компьютера → Конфигурация Windows → Параметры безопасности → Локальные политики → Политика аудита:

  • Аудит отслеживания событий: Успех, Отказ
  • Аудит событий входа в систему: Успех, Отказ

Дождитесь следующей блокировки учётной записи и найдите события с идентификатором события 4625 в журнале безопасности. В нашем случае это событие выглядит так:

An account failed to log on.
Failure Reason: Account locked out.

На русском это:

Учетной записи не удалось выполнить вход в систему.
Причина ошибки: Учетная запись блокирована.

Как видно из описания события, источником блокировки учётной записи является процесс mssdmn.exe (компонент Sharepoint). В этом случае пользователю необходимо обновить пароль на веб-портале Sharepoint.

После завершения анализа и выявления и устранения причины блокировки не забудьте отключить локальные политики аудита.

Если вам по-прежнему не удаётся найти источник блокировки учётной записи на определённом компьютере, просто попробуйте переименовать имя учётной записи пользователя в Active Directory. Обычно это наиболее эффективный метод защиты от внезапных блокировок конкретного пользователя, если вы не смогли установить источник блокировки.

Вы также можете вывести список событий с кодом 4625 в PowerShell:

Get-WinEvent -FilterHashtable @{ LogName='Security'; Id='4625'; }

Следующую команду вы можете использовать для вывода событий блокировки для конкретного пользователя (впишите его вместо MiAl):

Get-WinEvent -FilterHashtable @{ LogName='Security'; Id='4625'; Data="MiAl" }

Следующая команда выведет подробную информацию о каждом событии блокировки для указанного пользователя (в том числе процесс, вызвавший блокировку):

Get-WinEvent -FilterHashtable @{ LogName='Security'; Id='4625'; Data="MiAl" } | Format-List

Эта команда аналогична предыдущей, но покажет события только за последние 2 дня:

$Date = (Get-Date).AddDays(-2); Get-WinEvent -FilterHashtable @{ LogName='Security'; Id='4625'; Data="MiAl"; StartTime=$Date; } | Format-List

Связанные статьи:

  • Как установить и использовать Модуль Active Directory для Windows PowerShell (75%)
  • Get-ADUser: поиск сведений о пользователях и фильтр пользователей по их свойствам в Active Directory (62.5%)
  • LAPS: управление паролями локальных администраторов на компьютерах домена (62.5%)
  • Настройка политики паролей домена в Active Directory (62.5%)
  • Fine-Grained Password Policy: Как создать детальную политику паролей в Active Directory (62.5%)
  • Управление ролями и функциями Windows Server с помощью PowerShell (RANDOM — 50%)

Возможные причины блокировки пользователя в Active Directory

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

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

  • – Постоянный маппинг дисков со старыми учетными данными
  • – Мобильные устройства, использующие корпоративные сервисы
  • – Учетные записи служб, использующие кэшированные пароли, которые были изменены в ходе технического обслуживания
  • – Запланированные задачи с устаревшими паролями
  • – Программы, использующие сохраненные пароли, которые были изменены
  • – Отключенные сеансы сервера терминалов
  • – Проблемы с репликацией Active Directory
  • – Неправильно настроенные параметры политики домена
  • – Вредоносная активность, например, атака перебора паролей.

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

Открываем редактор групповой политики, создаем новую политику, называем ее например Account Lockout Policy и щелкаем на нее правой кнопкой мыши и выбираем «Изменить».

  • Ставим время до сброса счетчика блокировки на 30 минут
  • Пороговое значение блокировки – 5 ошибок входа в систему
  • Продолжительность блокировки учетной записи – 30 минут.

Закрываем, применяем политику на домен и на целевой машине запускаем gpupdate /force

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

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

Снова открываем редактор групповой политики, создаем политику Audit Policy открываем ее и переходим по такому пути.

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

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

Так же нужно задать политику аудита событий входа в систему на «Успех и отказ», а так же «Аудит управления учетными записями», чтобы видеть события 4740.

Принудительно обновляем политику и запускаем gpupdate /force на целевой машине

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

При некорректном вводе данных генерируется событие 4740, на всех контроллерах домена если он не один. С кодами отказов Kerberos:

  • 6 – имя пользователя не существует
  • 12 – Ограничение времени входа в систему
  • 18 – Учетная запись деактивирована, заблокирована или истек срок ее действия
  • 23 – Истек срок действия пароля пользователя
  • 24 – Предварительная аутентификация не удалась(неверный пароль)
  • 32 – Истек срок действия тикета
  • 37 – Время компьютера давно не синхронизировалось с доменным

и кодами ошибок NTLM

Код ошибки (десятичная система) — Код ошибки (16-ричная система) — Описание

  • 3221225572 — С0000064 — Такого имени пользователя не существует
  • 3221225578 — С000006А — Верное имя пользователя, но неверный пароль
  • 3221226036 — С0000234 — Учетная запись пользователя заблокирована
  • 3221225586 — С0000072 — Учетная запись деактивирована
  • 3221225583 — С000006Е — Пользователь пытается войти в систему вне обозначенного периода времени
  • 3221225584 — С0000070 — Ограничение рабочей станции
  • 3221225875 — С0000193 — Истек срок действия учетной записи
  • 3221225585 — 0000071 — Истек срок действия пароля
  • 3221226020 — С0000224 — Пользователь должен поменять пароль при следующем входе в систему

Как расследовать причину блокировки

Открываем журнал событий и идем в журнал безопасность (Security)» именно в нем собираются EventID которые могут помочь определить причину блокировки. Там очень много событий, так что отфильтруем их с помощью «Filter Current Log (Фильтр текущего журнала)», она позволит нам выбрать только те события, которые нам нужны. В поле Logged указываем за какой срок нужны данные, в поле Event ID указываем 4740 и нажимаем «Ок»

В отфильтрованных записях с помощью поиска (Find) находим имя интересующей нас учетной записи. В итоге должны отфильтроваться события по указанному логину с кодом 4740 в котором можно найти причину блокировки, например в поле Caller Computer Name будет указано имя компьютера с которого идут феилд логоны и который этим вызывает блокировку. Затем нужно перейти на этот компьютер и смотреть евент логи там, чтобы определить почему данная машина пытается залогиниться под некорректными кредами.

В событиях 4740 можно встреть еще такие причины блокировки как имя сервера, где происходит блокирование Exchange сервер организации – это значит, что проблема в Outlook, почтовом мобильном клиенте или его календарем. Чтобы расследовать данную блокировку нужно смотреть логи IIS на Exchange сервере. Так же можно использовать команду Get-ActiveSyncDeviceStatistics в PowerShell, чтобы увидеть проблемные мобильные устройства.

Microsoft ALTools

У компании Microsoft есть собственный инструмент для помощи в устранения проблем с блокировкой учетных записей – Microsoft Account Lockout and Management Tool (AlTools.exe). Download Account Lockout Status (LockoutStatus.exe) from Official Microsoft Download Center.

Этот инструмент отображает информацию о заблокированной учетной записи с ее состоянием пользователя и временем блокировки на каждом контроллере домена и позволяет разблокировать ее, щелкнув правой кнопкой мыши на соответствующей записи.

Запустите LockoutStatus.exe > File > Select target > Введите имя учетной записи и домен > OK

Он покажет все статусы связанные с блокировкой по данному аккаунту.

Инструмент EventCombMT

EventCombMT Tool собирает определенные события с нескольких различных серверов в одно центральное место.

Запустите EventCombMT.exe > Щелкните правой кнопкой мыши на поле Select to search > Выберите Get DCs in Domain > Отметьте контроллеры домена для поиска. – Нажмите меню Searches (Поиск) > Built In Searches (Встроенный поиск) > Account Lockouts (Блокировка учетных записей).

Другие причины блокировок пользовательских учетных записей

Если проблема локаута кроется в сервисах Google Workspaces (Gmail, Gdrive…) то в логах будет отображаться, что феилд логоны идут с компьютера WORKSTATION. Так же подробную информацию о блокировке можно посмотреть в событии 4771. Там можно найти Керберос коды, которые были описаны выше и IP адрес устройства с которого идут фейлд логоны.

Если в полях Caller Computer Name ивента 4770 и Client Address 4771 пусто – это значит что вас скорее всего брутфорсят!

Чтобы определить источник фейлд логонов в этом случае необходимо включить netlogon и смотреть его логи.

NETLOGON Netlogon – это процесс Windows Server, который аутентифицирует пользователей и другие службы в домене. Включите ведение журнала Netlogon: Пуск > Выполнить > введите:

nltest /dbflag:2080ffff > OK

После перезапуска службы Netlogon соответствующая активность может быть записана в %windir%/debug/netlogon.log.

Можно так же разобрать журналы Netlogon с помощью скрипта:

type netlogon.log |find /i "0xC000006A" > failedpw.txt type netlogon.log |find /i "0xC0000234" > lockedusr.txt

Внимание! Не забудьте отключить Netlogon после того, как вы зафиксировали события, так как производительность системы может быть немного снижена из-за процесса дебаггинга. Отключите ведение журнала Netlogon:

Пуск > Выполнить > введите:

nltest /dbflag:0 > OK

В логах можно найти айпишники тех компьютеров, с которых идут скрытые фейлд логоны, это могут быть терминальные сервера или RDP на которые ведется атака по перебору паролей.

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

Если айпи вам неизвестен можно посмотреть его mac на на DHCP сервере или же на сетевом оборудовании, далее с помощью специальных сервисов, которые легко можно найти в интернете можно определить, что за производитель у данного mac-адреса. Это полезно, когда феилд логоны идут с какого-то смартфона или планшета.

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

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

На локальной машине могут быть сохраненные учетные данные, найти которые можно так:

Пуск> Выполнить > rundll32 keymgr.dll, KRShowKeyMgr > OK.

Или Netplwiz:

Пуск> Выполнить > введите: netplwiz > OK Перейдите на вкладку Дополнительно, а затем нажмите Управление паролями.

Блокировку может вызывать сессия сервера терминалов с устаревшими учетными данными. Для отключения RDP сессии выполните следующие команды в командной строке (Win+R > “cmd”), заменив “server_ip”, “name” и “password” на необходимые учетные данные:

net use \server_ip /USER:name password

Это позволит вам войти на удаленный сервер без использования RDP.

query session /server:name

Замените “name” на имя сервера. Здесь вы получите идентификатор сессии.

reset session id /server:server_ip

Это завершает активную сессию на удаленном сервере.

Блокировку учетки может вызывать репликация AD, когда обновление пароля не было реплицировано на все контроллеры домена. Для принудительной репликации выполните следующую команду на вашем DC:

repadmin /syncall /AdeP

Get guided on how you can easily find the lockout source in AD

by Sagar Naresh

Sagar is a web developer and technology journalist. Currently associated with WindowsReport and SamMobile. When not writing, he is either at the gym sweating it out or playing… read more


Updated on January 25, 2023

Reviewed by
Alex Serban

Alex Serban

After moving away from the corporate work-style, Alex has found rewards in a lifestyle of constant analysis, team coordination and pestering his colleagues. Holding an MCSA Windows Server… read more

  • Getting information about the lockout source in your Active Directory will help you rectify the problem.
  • You can use Windows PowerShell or Group Policy Editor on your PC, but they have limitations.
  • Otherwise, you may use our recommended tool to quickly get the job done in no time.

Auditing the Active Directory is very important as it can help you review the access rights to important decisions and also monitor who is creating a new account. By default, Active Directory does not audit all your security events. We have a complete guide on how to install Active Directory on Windows Server.

One of the most common problems that an admin of the Active Directory face is how to identify the source of frequent account lockouts. Thankfully, in this guide, we will give you a detailed solution on how to find the account lockout source in Active Directory.

How can I find the source of Active Directory account lockouts?

In this article

  • How can I find the source of Active Directory account lockouts?
  • 1. Use the Group policy editor
  • 2. Use Windows PowerShell
  • 3. Use a dedicated tool
  • How to perform account lockout analysis?

1. Use the Group policy editor

  1. Login to the domain controller with admin privileges.
  2. Press Win + R keys to open the Run dialogue.
  3. Type gpedit.msc and hit Enter.
  4. Expand Computer Configuration.
  5. Select Windows Settings.
  6. Expand Security Settings.
  7. Choose Local Policies.
  8. Click on Audit Policy.
  9. Open Audit process tracking and check the Success and Failure boxes.
  10. Click OK.
  11. Open Audit logon events and check the Success and Failure boxes.
  12. Click OK.
  13. Press the Win key to open the Start menu.
  14. Type Event Viewer and open it.
  15. Search for the Security log for event ID 4625.
  16. You will find the source of Active Directory account lockouts.

2. Use Windows PowerShell

  1. Press the Win key to open the Start menu.
  2. Search for Windows PowerShell and open it as an admin.
  3. Type the below command and press Enter to install the PowerShell Active Directory module. Install-WindowsFeature RSAT-AD-PowerShell
  4. You can verify the installation by running the below command. Get-WindowsFeature -Name RSAT-AD-PowerShell
  5. Run the below command to find the locked-out user account. Search-ADAccount -LockedOut | FT Name,ObjectClass -A
  6. You will see a list of locked accounts.

While this method may seem pretty easy as you only have to run a few commands, this process will only give you a list of names of the accounts that are locked out. It won’t give you the exact reason for the lockout.

For that, we would suggest you check out the below solution.

Read more about this topic

  • Drvinst.exe: What is It & What Does It Do?
  • Recipient Address Rejected: Access Denied [Error Fix]
  • Nvapi64.dll: What Is It & How to Fix Its Errors

3. Use a dedicated tool

  1. Download ManageEngine ADAudit Plus.
  2. Install the program on your PC.
  3. Launch the program.
  4. Click on Reports at the top menu bar.
  5. Select Active Directory.
  6. Click on User Management.
  7. Select Account Lockout Analyzer.
  8. Click on Details under the ANALYZER DETAILS section.
  9. You will now see the possible reasons behind each account lockout.

Using the ManageEngine ADAudit Plus tool, not only do you get other benefits, but you also get comprehensive details on how to find account lockout source in Active Directory.

Some PC issues are hard to tackle, especially when it comes to missing or corrupted system files and repositories of your Windows.
Be sure to use a dedicated tool, such as Fortect, which will scan and replace your broken files with their fresh versions from its repository.

Speaking of other features, you can track down the lockout source faster, improves desk efficiency, and productivity is improved, server downtime is minimized, and get compliance standards such as GDPR, SOX, HIPAA, FISMA, PCI DSS, and GLBA.

Over 10,000+ organizations across the globe are using the services of the ManageEngine ADAudit Plus tool with their Active Directory.

ManageEngine ADAudit Plus

A well-packed and complete Active Directory Auditing and Reporting tool.

How to perform account lockout analysis?

Now that you have got your report on the account, analyzing it and getting meaningful information from it is very important.

  1. In the Account Lockout Analyzer, you will who, when and where, and even why of every lockout. It can be exported to formats such as CSV, PDF, XML, and HTML.
  2. Clicking on Details gives you the entire information which would have been pretty tedious when using Event Viewer or PowerShell.
  3. The Recent Logon history of the user is the main area that will help you narrow the source of the account lockout. This section gives you details such as:
    • User name
    • Client IP address
    • Client host name
    • Domain controller
    • Logon time
    • Event type
    • Failure reason
    • Event number

You can also check out our guide on how you can enable Active Directory users and computers in Windows 10 as well as Windows 11.

Feel free to let us know your views on which solution you made use of to answer your query on how to find the account lockout source in Active Directory.

Still experiencing issues?

SPONSORED

If the above suggestions have not solved your problem, your computer may experience more severe Windows troubles. We suggest choosing an all-in-one solution like Fortect to fix problems efficiently. After installation, just click the View&Fix button and then press Start Repair.

newsletter icon

Newsletter

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Асимметрия лица у ребенка до года как исправить
  • Как составить график выхода на работу производственного персонала
  • Как найти базальт в майнкрафте
  • Если вино горчит как его исправить
  • При просмотре видео в инстаграм плохое качество как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии