Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Atributos de Active Directory: Último inicio de sesión

Atributos de Active Directory: Último inicio de sesión

Nov 3, 2022

Active Directory los objetos de usuario poseen una serie de atributos de metadatos de inicio de sesión que son valiosos para la generación de informes de auditoría y la administración de Active Directory. Por ejemplo, se utilizan comúnmente para identificar cuentas de usuario que han estado inactivas durante un período significativo, o como cuentas “obsoletas”.

Sin embargo, cada atributo de metadatos de inicio de sesión tiene algunos comportamientos únicos que necesitan ser entendidos. De lo contrario, las organizaciones pueden terminar con informes que son confusos en el mejor de los casos e inexactos o de otra manera engañosos en el peor.

Último inicio de sesión AD Attribute

El atributo Last-Logon contiene una representación de Windows FileTime de la última vez que un controlador de dominio autenticó al usuario con éxito. Es el abuelo de los metadatos de inicio de sesión de usuario, ya que existe desde la primera versión de Active Directory.

Usando el comando de PowerShell a continuación, puedes recuperar la última hora de inicio de sesión y otras propiedades del usuario en un controlador de dominio:

      Get-ADUser -Filter * -Properties lastLogon | Select samaccountname, @{Name="lastLogon";Expression={[datetime]::FromFileTime($_.'lastLogon')}}
      

El atributo Last-Logon se actualiza cada vez que un controlador de dominio procesa con éxito una solicitud de inicio de sesión, por lo que podría parecer que proporciona la manera perfecta de identificar con precisión cuentas de usuario obsoletas. Sin embargo, hay una gran advertencia que debe tenerse en cuenta.

AD Last-Logon no es un atributo replicado; cada controlador de dominio (DCs) mantiene su propia versión del atributo para cualquier usuario específico. Este comportamiento es intencional: el aumento en el tráfico de replicación necesario para mantener este atributo sincronizado a través de los controladores de dominio de una red habría sido abrumador, especialmente en su momento de introducción hace veinte años. Pero este comportamiento también es la razón por la cual es necesario tener cuidado al usar este atributo para informar sobre cuentas de usuario obsoletas.

Debido a que Last-Logon no se replica (los controladores de dominio no intercambian esta información), los valores de los atributos solo pueden interpretarse en el contexto del controlador de dominio que se está consultando. Es decir, el valor del atributo no necesariamente corresponde a la última vez que el usuario inició sesión, sino más bien a la última vez que el usuario se autenticó con éxito a través del controlador de dominio que se está verificando. De manera similar, que el atributo tenga un valor de cero no significa necesariamente que el usuario nunca haya iniciado sesión; puede significar que el controlador de dominio que devolvió el valor nunca ha procesado una solicitud de inicio de sesión de ese usuario.

En resumen, aunque el atributo Last-Logon puede utilizarse para la auditoría relacionada con los inicios de sesión, un informe preciso requerirá consultar cada controlador de dominio capaz de procesar solicitudes de inicio de sesión para identificar el valor más recientemente actualizado de cualquier cuenta de usuario específica. Alternativamente, puedes utilizar una solución de informes de terceros, como se discute más adelante en este artículo.

Last-Logon-Timestamp

El Last-Logon-Timestamp contiene una representación de Windows FileTime de un momento reciente en el que el usuario inició sesión en un dominio. Este atributo de usuario se introdujo con Microsoft Windows Server 2003. A diferencia del antiguo atributo Last-Logon, el atributo Last-Logon-Timestamp es un atributo replicado; su valor para cualquier usuario específico se sincroniza con cada controlador de dominio. Esto es una gran mejora sobre el atributo Last-Logon. ¿Eso significa que la mejor manera de identificar cuentas de usuario obsoletas es usar el Last-Logon-Timestamp, verdad? Bueno, usar este atributo viene con su propia advertencia.

El problema con el atributo Last-Logon-Timestamp es que no siempre se actualiza cuando un controlador de dominio procesa con éxito una solicitud de inicio de sesión. En cambio, el atributo tiene una frecuencia de actualización dinámica que está limitada por el valor del atributo ms-DS-Logon-Time-Sync-Interval, que por defecto NO ESTÁ CONFIGURADO y se trata como 14 días. No es común que este atributo haya sido cambiado, pero si tienes curiosidad, puedes identificar fácilmente su valor real utilizando el siguiente script de PowerShell:

      $lastLogonReplicationInterval = (Get-ADDomain).LastLogonReplicationInterval
if( $lastLogonReplicationInterval )
{
    Write-Host "ms-DS-Logon-Time-Sync-Interval is set to $($lastLogonReplicationInterval) days"
}
else {
    Write-Host "ms-DS-Logon-Time-Sync-Interval is not set and will be treated as 14 days"
      

En un dominio con el límite máximo de actualización predeterminado de 14 días, el Last-Logon-Timestamp solo se actualiza cuando un controlador de dominio procesa con éxito una solicitud de inicio de sesión y el período desde la última actualización del atributo es mayor a algún punto entre 9 y 14 días. La variación en ese período es el resultado de un porcentaje aleatorio que se incluye en la lógica que controla la frecuencia de actualización. Este comportamiento refleja un compromiso entre limitar el tráfico de replicación necesario para mantener este atributo sincronizado a través de los controladores de dominio de una red y limitar la probabilidad de tener que replicar un número significativo de usuarios que tuvieron su Last-Logon-Timestamp actualizado aproximadamente al mismo tiempo.

Aquí hay un ejemplo simplificado de la lógica que controla la frecuencia de actualización del atributo Last-Logon-Timestamp:

      (Current Datetime – Last-Logon-Timestamp) ? (ms-DS-Logon-Time-Sync-Interval – (Random % * 5 days))
      

En la práctica, el atributo Last-Logon-Timestamp simplificará la auditoría y los informes relacionados con el inicio de sesión. El único problema potencial significativo involucra la generación de informes de usuarios inactivos. Cuando se utiliza para identificar usuarios inactivos, el umbral de antigüedad necesita superar el valor de ms-DS-Logon-Time-Sync-Interval del dominio por un tiempo suficiente para asegurar que la replicación haya podido propagar cualquier actualización significativa.

LastLogonDate (PowerShell)

Aquellos familiarizados con PowerShell pueden reconocer LastLogonDate, pero no podrán encontrarlo en ningún lugar del esquema del global catalog de Active Directory. Esto se debe a que LastLogonDate es en realidad un valor calculado localmente que mostrará el valor replicado del atributo Last-Logon-Timestamp en un formato amigable para el usuario. Como era de esperarse, LastLogonDate tiene todas las ventajas y todos los inconvenientes del atributo Last-Logon-Timestamp. Sin embargo, dado que no requiere conversión desde Windows DateTime, es la mejor opción para la mayoría de los informes de auditoría relacionados con el inicio de sesión de los usuarios.

Atributo de último inicio de sesión interactivo exitoso de Active Directory

El atributo ms-DS-Last-Successful-Interactive-Logon-Time fue introducido en Windows Server 2008, pero muchas personas no están familiarizadas con él porque está deshabilitado por defecto. Cuando está habilitado, contiene la fecha y hora del último inicio de sesión interactivo exitoso de un usuario. Aunque parece algo increíblemente útil de habilitar, hay algunas razones convincentes para dejarlo deshabilitado, las cuales mencionaré en un momento.

Si tienes un entorno de laboratorio y quieres experimentar con el atributo ms-DS-Last-Successful-Interactive-Logon-Time, puedes habilitar lo siguiente: Configuración del equipo ? Políticas ? Plantillas administrativas ? Componentes de Windows ? Opciones de inicio de sesión de Windows ? Mostrar información sobre inicios de sesión anteriores durante el inicio de sesión del usuario GPO. Luego, fuerza una actualización de Directiva de Grupo. No habilites esta configuración en un dominio de producción por diversión; tendrás problemas.

El primer problema con el atributo ms-DS-Last-Successful-Interactive-Logon-Time es que su valor solo se actualiza cuando se autentica un inicio de sesión interactivo (piense en los inicios de sesión “Ctrl-Alt-Del”). Esto significa que actividades importantes de autenticación como los inicios de sesión en recursos compartidos de red y las autenticaciones LDAP no provocarán una actualización. Por consiguiente, si utiliza este atributo para generar informes de auditoría relacionados con los inicios de sesión, es probable que obtenga algunos resultados inexactos. Por ejemplo, los informes que identifican cuentas de usuario inactivas probablemente listarán cuentas de servicio de dominio, que generalmente son muy activas, solo que de maneras no interactivas. En resumen, este atributo hace que los informes de usuarios obsoletos sean realmente simples y fiables, pero solo para cuentas de usuario que se utilizan para sesiones interactivas.

Resumen

Si necesita generar Active Directory login audit reports, el mejor enfoque es probablemente agregar los registros de eventos de su controlador de dominio y procesarlos. Aunque los registros de eventos son increíblemente ruidosos, también son increíblemente confiables y proporcionan información histórica que Active Directory no puede.

Si eso no es factible, utilice LastLogonDate. O, aún mejor, utilice el cmdlet Search-ADAccount integrado en el módulo de PowerShell de Active Directory para obtener la información necesaria y exportarla a un archivo CSV:

      Search-ADAccount -AccountInactive -DateTime ((Get-Date).AddDays(-30)) -UsersOnly | Select Name,LastLogonDate,DistinguishedName| Export-CSV c:psinactive_users.csv
      

El cmdlet Search-ADAccount en realidad utiliza LastLogonDate detrás de escena. Su período de inactividad predeterminado es de 15 días, lo cual debería ser adecuado en la mayoría de los entornos. El ejemplo anterior incluye la sintaxis necesaria para sobrescribir el período de inactividad con un valor de 30 días. Para aquellos que prefieren un enfoque sistematizado, existen herramientas gratuitas útiles como Netwrix Inactive User Tracker para obtener esta información sin tener que convertir valores y analizar archivos csv.

¿Cómo puede ayudar Netwrix?

Revisar regularmente la última fecha de inicio de sesión de cada usuario en Active Directory puede ayudar a su administrador de dominio a detectar y eliminar cuentas obsoletas que los adversarios desearían comprometer y abusar. Pero eso es solo una pequeña parte de una estrategia integral de ciberseguridad.

La solución de seguridad de Netwrix Active Directory Security Solution proporciona información detallada no solo sobre la última hora de inicio de sesión de cada cuenta de usuario de Active Directory, sino sobre toda la actividad en Active Directory. Sus informes preconstruidos y completos simplifican el logon monitoring. En particular, el informe de Cuentas de Usuario – Última Hora de Inicio de Sesión lista todas las cuentas de usuario, tanto habilitadas como deshabilitadas, con la última hora de inicio de sesión para cada cuenta. Utilizando la función de suscripción a informes, los administradores de TI pueden recibir el informe automáticamente por correo electrónico en el horario que especifiquen, facilitando la revisión regular de acuerdo con las mejores prácticas y permitiéndoles eliminar las vulnerabilidades del sistema de manera más eficiente.

Netwrix Directory Manager

Simplifique y asegure AD con una gestión de grupos automatizada

FAQ

¿Cuál es la diferencia entre Lastlogon y lastLogonTimeStamp?

A diferencia del atributo Last-Logon, el atributo Last-Logon-Timestamp es un atributo replicado; su valor para cualquier usuario específico se sincroniza con cada controlador de dominio.

¿Cómo se calcula lastLogonTimeStamp?

Last-Logon-Timestamp (o lastLogonTimeStamp) se registra por el DC al iniciar sesión el usuario; sin embargo, este atributo no siempre se actualiza en todos los DCs cuando un controlador de dominio procesa con éxito una solicitud de inicio de sesión.

¿Qué es la autenticación interactiva?

La autenticación interactiva es un proceso en el que se solicita al usuario que introduzca su ID de usuario y contraseña para iniciar sesión en un dispositivo. Los lugares más comunes donde ocurre el inicio de sesión interactivo son la pantalla de inicio de sesión de Windows y la pantalla de bloqueo de Windows.



Compartir en

Aprende más

Acerca del autor

Asset Not Found

Joe Dibley

Investigador de seguridad

Investigador de seguridad en Netwrix y miembro del Equipo de Investigación de Seguridad de Netwrix. Joe es un experto en Active Directory, Windows y una amplia variedad de plataformas y tecnologías de software empresarial, Joe investiga nuevos riesgos de seguridad, técnicas de ataque complejas y las mitigaciones y detecciones asociadas.