Identificar el origen de los bloqueos de cuentas de Active Directory: solución de problemas
En este artículo, le mostraremos cómo realizar un seguimiento de los eventos de bloqueo de la cuenta de usuario en los controladores de dominio de Active Directory y averiguar desde qué computadora, dispositivo y programa la cuenta está constantemente bloqueada. Puede usar los registros de seguridad de Windows, los scripts de PowerShell o la herramienta de administración y bloqueo de cuentas (Lockoutstatus.exe) para encontrar el origen de los bloqueos de cuentas de usuario en AD.
La cuenta a la que se hace referencia actualmente está bloqueada y es posible que no haya iniciado sesión en
La política de seguridad de la cuenta de dominio de Active Directory en la mayoría de las organizaciones requiere que se bloquee una cuenta de usuario si se ingresa una contraseña incorrecta varias veces seguidas. Por lo general, el controlador de dominio bloquea la cuenta durante varios minutos (5-30), durante los cuales el usuario no puede iniciar sesión en el dominio AD. Después de un tiempo (establecido por la política de seguridad del dominio), la cuenta de usuario se desbloquea automáticamente. El bloqueo temporal de la cuenta de AD reduce el riesgo de ataques de fuerza bruta contra las cuentas de usuario de AD.
Si la cuenta de usuario en el dominio está bloqueada, aparece una advertencia al intentar iniciar sesión en Windows:
La cuenta a la que se hace referencia actualmente está bloqueada y no se puede iniciar sesión.
¿Cómo verificar si una cuenta de usuario de AD está bloqueada?
Puede verificar si la cuenta está bloqueada usando la consola gráfica ADUC o con el cmdlet Get-ADUser del módulo Active Directory para PowerShell:
Get-ADUser -Identity jsmith -Properties LockedOut,DisplayName | Select-Object samaccountName, displayName,LockedoutO :
Get-ADUser jsmith -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)}},logonCountLa cuenta de usuario ahora está bloqueada (
Lockedout = True) y no se puede utilizar para la autenticación en el dominio. También en la salida del comando, puede ver información sobre la última vez que se cambió la contraseña del usuario en el dominio y la hora en que se bloqueó la cuenta.
Puede enumerar todas las cuentas actualmente bloqueadas en un dominio mediante el cmdlet Search-ADAccount:
Search-ADAccount -UsersOnly -lockedoutPuede desbloquear manualmente una cuenta usando la consola ADUC sin esperar hasta que se desbloquee automáticamente. Busque la cuenta de usuario en AD (utilice la opción de búsqueda en el complemento AD), haga clic con el botón derecho y seleccione Propiedades. Ve a la pestaña Cuenta y marca la casilla Desbloquear cuenta. Actualmente, esta cuenta está bloqueada en este controlador de dominio de Active Directory. Haga clic en Aceptar.
También puede desbloquear inmediatamente una cuenta de usuario con el siguiente comando de PowerShell:
Get-ADUser -Identity jsmith | Unlock-ADAccountPuede verificar el tiempo de bloqueo de la cuenta, la cantidad de intentos fallidos de inicio de sesión con contraseña y la hora del último inicio de sesión exitoso en las propiedades de la cuenta en la consola ADUC (en la pestaña Editor de atributos) o usando PowerShell:
Get-ADUser jsmith -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
Políticas de bloqueo de cuentas en el dominio de Active Directory
Las políticas de bloqueo de cuentas generalmente se establecen en la Política de dominio predeterminada para todo el dominio mediante el
gpmc.msccomplemento Las políticas que nos interesan se encuentran en Configuración del equipo -> Configuración de Windows -> Configuración de seguridad -> Política de cuenta -> Política de bloqueo de cuenta. Estas son las siguientes políticas:
Umbral de bloqueo de cuenta: después de cuántos intentos fallidos de contraseña se debe bloquear una cuenta;
Duración del bloqueo de la cuenta durante cuánto tiempo permanecerá bloqueada la cuenta (después de este tiempo, el bloqueo se eliminará automáticamente);
Restablecer contador de bloqueo de cuenta después de: el tiempo para restablecer el contador de intentos fallidos de autorización.
Para protegerse contra los ataques de fuerza bruta de contraseñas, se recomienda usar contraseñas de usuario seguras en AD (use una longitud de contraseña de al menos 8 caracteres y habilite los requisitos de complejidad). Esto se configura en la sección Política de contraseñas en las opciones La contraseña debe cumplir con los requisitos de complejidad y Longitud mínima de la contraseña. Periódicamente, debe auditar la seguridad de la contraseña del usuario.
Los casos en que el usuario olvida la contraseña y provoca el bloqueo de la cuenta ocurren con bastante frecuencia. Si el usuario cambió recientemente la contraseña y la olvidó, puede restablecerla. Pero en algunos casos, el bloqueo de la cuenta ocurre sin ninguna razón obvia. Es decir. El usuario declara que nunca cometió un error al ingresar una contraseña, pero su cuenta fue bloqueada por algún motivo. El administrador puede desbloquear la cuenta manualmente a pedido del usuario, pero después de un tiempo, la situación puede repetirse.
Para resolver el problema del usuario, el administrador necesita encontrar desde qué computadora y programa se bloqueó la cuenta de usuario en Active Directory.
ID de evento de bloqueo de cuenta 4740 y 4625
En primer lugar, un administrador debe averiguar desde qué computadora o dispositivo se producen intentos de contraseña incorrectos y continúa con los bloqueos de cuentas.
Para habilitar los eventos de bloqueo de cuenta en los registros del controlador de dominio, debe habilitar las siguientes políticas de auditoría para sus DC. Vaya a la sección GPO Configuración del equipo -> Políticas -> Configuración de Windows -> Configuración de seguridad -> Política de auditoría avanzada -> Inicio de sesión/Cierre de sesión y habilite las siguientes políticas:
Bloqueo de cuenta de auditoría
Inicio de sesión de auditoría
Cierre de sesión de auditoría
Luego vaya a la sección Administración de cuentas y habilite la política:
Gestión de cuentas de usuario de auditoría: Éxito
La forma más fácil de habilitar esta política es a través de la
gpmc.mscconsola editando la política de controlador de dominio predeterminada.
Si el usuario ingresa una contraseña incorrecta, el controlador de dominio más cercano al usuario (LogonServer) redirige la solicitud de autenticación al DC con el rol FSMO Emulador de PDC (este DC en particular es responsable de procesar los bloqueos de cuentas). Si la autenticación también falla en el PDC, responde al primer DC que falló la autenticación. Si el número de intentos de autenticación fallidos supera el valor establecido para el dominio en la política Umbral de bloqueo de cuenta, la cuenta de usuario se bloquea temporalmente.
En este caso, se registra un evento con EventID 4740 en el registro de seguridad de ambos controladores de dominio. El evento contiene el nombre DNS (dirección IP) de la computadora desde la cual provino la solicitud inicial de autenticación de usuario. Para no analizar los registros de todos los DC, es más fácil buscar los eventos de bloqueo en el registro de seguridad del PDC. Puede encontrar el controlador de dominio principal en su dominio de la siguiente manera:
(Get-AdDomain).PDCEmulatorLos eventos de bloqueo de la cuenta de dominio se pueden encontrar en el registro de Seguridad en el controlador de dominio (Visor de eventos -> Registros de Windows). Filtre el registro de seguridad por EventID 4740. Debería ver una lista de los últimos eventos de bloqueo de cuenta. Desde la parte superior, desplácese por todos los eventos y busque un evento que indique que la cuenta del usuario que está buscando está bloqueada (el nombre de usuario aparece en el valor Nombre de la cuenta y la descripción del evento "Se bloqueó una cuenta de usuario").
Nota. En un entorno AD grande, muchos eventos se escriben en el registro de seguridad de los controladores de dominio, y los más nuevos se sobrescriben gradualmente. Por lo tanto, se recomienda aumentar el tamaño máximo de registro en los DC y comenzar a buscar la fuente del bloqueo lo antes posible.
Abre este evento. El nombre de la computadora (servidor) desde la cual se registró el evento de bloqueo de la cuenta se especifica en el campo Nombre de la computadora que llama. En este caso, el nombre de la computadora es DACZCZL5-Z.
Si el campo Nombre de la computadora contiene un nombre de computadora/dispositivo desconocido que no se resuelve en su red a través de DNS (una computadora sin dominio o un dispositivo que no es de Windows que admite la autenticación Kerberos), puede obtener la dirección IP de este dispositivo. Para hacer esto, debe habilitar la siguiente configuración de auditoría en la Política de controlador de dominio predeterminada. Vaya a Configuración de la computadora -> Políticas -> Configuración de Windows -> Configuración de seguridad -> Configuración de auditoría avanzada y habilite las siguientes opciones de auditoría:
Inicio de sesión de la cuenta
Auditoría del servicio de autenticación de Kerberos: éxito, error
Auditar operaciones de tickets de servicio de Kerberos: éxito, fracaso
Iniciar/Cerrar sesión
Inicio de sesión especial de auditoría: éxito, fracaso
Abra el Visor de eventos -> Registro de seguridad y habilite el filtro en los ID de eventos 4740 y 4741. Observe que ahora, antes de que ocurra el evento de bloqueo del usuario (4740), el evento 4771 (
Kerberos Authentication Failed) del servicio de autenticación de Kerberos aparece. Contiene el nombre del usuario que intentó autenticarse y la dirección IP del dispositivo (campo Información de red -> Dirección del cliente) de donde provino la solicitud de autenticación.
Si el dispositivo remoto usa la autenticación de dominio NTLM, debe buscar EventID 4625 (Error de autenticación NTLM) en los DC (solo está contenido en el controlador de dominio a través del cual se intentó la autenticación NTLM).
Abra el último evento con EventID 4625 para su usuario (Nombre de cuenta). Aquí puede ver que al intentar realizar la autenticación NTLM (Paquete de autenticación:
NTLM, Proceso de inicio de sesión:
NtLmSsp), la cuenta fue bloqueada (
Failure Reason: Account locked out,
Status: 0xC0000234). La descripción del evento contiene tanto el nombre de la computadora (Nombre de la estación de trabajo) como su dirección IP (Dirección de red de origen).
Si no puede encontrar la fuente de bloqueo del usuario en el registro del Visor de eventos, puede habilitar el registro de depuración para el inicio de sesión de red en el controlador de dominio. Ejecute el comando:
nltest /dbflag:2080ffffffReinicie el servicio Netlogon
net stop netlogon && net start netlogonBusque eventos en el archivo netlogon.log:
0xc000006a: el siguiente usuario ha realizado un intento de inicio de sesión no válido;
0xc0000234: la cuenta de usuario se ha bloqueado automáticamente porque se han solicitado demasiados intentos de inicio de sesión no válidos o intentos de cambio de contraseña.
Puede encontrar los eventos de bloqueo para el usuario
a.bakeren el
netlogon.logarchivo usando el comando:
type C:\Windows\debug\netlogon.log | findstr a.baker| findstr /i "0xC000006A"En este ejemplo, puede ver que el usuario a.baker está bloqueado del dispositivo DESKTOP-12361B.
Asegúrese de deshabilitar el inicio de sesión de inicio de sesión avanzado en el controlador de dominio después de completar la depuración:
nltest /dbflag:0x0Obtenga la fuente (computadora) de los bloqueos de cuentas con PowerShell
Puede usar el siguiente script de PowerShell para encontrar el origen del bloqueo de la cuenta de un usuario específico en los registros de eventos de PDC. El siguiente script busca eventos con un Id. de evento 4740 en el registro de eventos de seguridad en PDC y devuelve la hora de bloqueo y el nombre de la computadora desde la que ocurrió:
$Usr = ‘username1’
$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 {$_.Properties[1].value + ' ' + $_.TimeCreated} De manera similar, puede consultar todos los controladores de dominio en Active Directory usando PowerShell:
$Usr = ‘username1’
Get-ADDomainController -fi * | select -exp hostname | % {
$ParamsEvn = @{
‘Computername’ = $Pdc
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
}
$Evnts = Get-WinEvent @ParamsEvn
$Evnts | foreach {$_.Computer + " " +$_.Properties[1].value + ' ' + $_.TimeCreated}
}Realice un seguimiento de los eventos de bloqueo de AD con las herramientas de administración y bloqueo de cuentas
Puede utilizar la herramienta gráfica Lockoutstatus.exe del paquete Microsoft Account Lockout and Management Tools para encontrar el origen de los bloqueos de cuentas de usuario (puede descargarlo aquí). Esta utilidad verifica el estado de bloqueo de la cuenta en todos los controladores de dominio.
ejecutar el
Lockoutstatus.exeherramienta, especifique el nombre de la cuenta bloqueada (Nombre de usuario de destino) y el nombre de dominio (Nombre de dominio de destino).
La lista que aparece contendrá la lista de DC y el estado de la cuenta (Bloqueada o No bloqueada). Además, se muestran el tiempo de bloqueo y la computadora desde la cual esta cuenta está bloqueada (Orig Lock).
Los atributos badPwdCount y LastBadPasswordAttempt no se replican entre controladores de dominio.
Puede desbloquear la cuenta de usuario o cambiar una contraseña directamente desde la ventana Estado de bloqueo.
El principal inconveniente de la herramienta LockoutStatus es que consulta todos los controladores de dominio durante bastante tiempo (algunos de ellos pueden no estar disponibles).
¿Cómo encontrar un programa que bloquee la cuenta de dominio del usuario?
Entonces, hemos encontrado desde qué computadora o dispositivo se bloqueó la cuenta. Ahora sería genial saber qué programa o proceso exactamente está haciendo intentos fallidos de inicio de sesión y es la fuente de los eventos de bloqueo de cuenta.
A menudo, los usuarios comienzan a quejarse de que bloquean sus cuentas de dominio después de cambiar sus contraseñas. En la mayoría de los casos, esto significa que la contraseña anterior (incorrecta) se guarda en un determinado programa, secuencia de comandos o servicio que periódicamente intenta autenticarse en un controlador de dominio con la contraseña anterior incorrecta. Veamos los lugares más comunes donde un usuario podría haber guardado una contraseña antigua:
Unidades de red asignadas (a través de
net use);
Trabajos del Programador de tareas de Windows;
Accesos directos con el modo RunAs configurado (utilizado para ejecutar un programa en nombre de otro usuario);
Servicios de Windows que están configurados para ejecutarse bajo una cuenta de dominio;
Credenciales guardadas en el Administrador de credenciales (en el Panel de control);
A veces, las contraseñas de los usuarios se pueden almacenar en el contexto del SISTEMA. Puede enumerarlos si abre el símbolo del sistema como LocalSystem (usando la herramienta psexec) y ejecuta el comando
rundll32 keymgr.dll,KRShowKeyMgrpara mostrar las contraseñas guardadas para NT AUTHORITY\SYSTEM.
Dispositivos móviles (por ejemplo, los que se utilizan para acceder al buzón corporativo);
Contraseñas guardadas (en caché) en programas con función de inicio de sesión automático o inicio de sesión automático de Windows configurado;
Sesiones RDP desconectadas/inactivas en otras computadoras o granjas/hosts RDS (siempre establezca tiempos de espera para las sesiones RDP);
Contraseñas guardadas en perfiles de red Wi-Fi de Windows (si usa autenticación WPA2-Enterprise 802.1x en una red inalámbrica).
Para realizar una auditoría detallada de bloqueo de cuenta en una computadora que encontró en los registros de DC, debe habilitar una serie de políticas de auditoría locales de Windows. Para hacerlo, abra un Editor de directivas de grupo local (
gpedit.msc) en una computadora (en la que desea encontrar la fuente de bloqueo) y habilite las siguientes políticas en la sección Configuraciones de la computadora -> Configuración de Windows -> Configuración de seguridad -> Políticas locales -> Política de auditoría:
Seguimiento del proceso de auditoría: éxito, fracaso
Eventos de inicio de sesión de auditoría: correcto, fallido
Luego actualice la configuración de la directiva de grupo en el cliente:
gpupdate /forceEspere el próximo bloqueo de la cuenta y busque los eventos con el ID de evento 4625 en el registro de seguridad. En nuestro caso, este evento se ve así:
An account failed to log on.
Failure Reason: Account locked out.Como puede ver en la descripción del evento, la fuente del bloqueo de la cuenta es el proceso mssdmn.exe (componente de Sharepoint). En este caso, el usuario debe actualizar la contraseña en el portal web de Sharepoint.
Una vez que finaliza la resolución de problemas y se detecta y elimina el motivo del bloqueo, no olvide desactivar las políticas de auditoría locales.
Si aún no pudo encontrar la fuente de bloqueo de la cuenta en una computadora específica, simplemente intente cambiar el nombre de la cuenta de usuario en Active Directory, cambie el SAMaccountName y el UPN del usuario en el AD). Este suele ser el método más efectivo de protección contra bloqueos repentinos de un usuario específico si no puede establecer la fuente del bloqueo.















