Cómo encontrar cuentas de usuario inactivas en Active Directory

¿Sabía que las cuentas de usuario inactivas pueden generar serios riesgos de seguridad?

Centro de seguridad de Internet dice que "es más fácil para un sujeto de amenaza obtener acceso no autorizado a través de credenciales de usuario válidas que a través de la piratería de cuentas".

Esta es solo una de las razones por las que debe buscar en Active Directory cuentas de usuario inactivas y deshabilitarlas en un horario regular.

Creo que te sorprenderá la cantidad de cuentas inactivas e inactivas que encontrarás.

En esta guía, le mostraré dos formas de encontrar estas cuentas riesgosas.

Índice

    ¿Cómo se identifican las cuentas de usuario inactivas?

    Esta sección es un poco larga, pero explica qué atributo de usuario se usa para buscar cuentas de usuario inactivas. Si no te interesa, ve a los ejemplos.

    Las cuentas de usuario tienen un atributo llamado "lastLogonTimeStamp", el propósito de este atributo es ayudar a identificar las cuentas de usuario y de ordenador inactivas. Sí, se puede usar para cuentas de ordenador.

    Hay ciertos tipos de inicios de sesión que actualizan el atributo lastLogonTimeStamp, los inicios de sesión interactivos, de red y de servicio. El inicio de sesión interactivo es lo que le importa cuando alguien inicia sesión desde la consola.

    Veamos este atributo en la GUI de ADUC.

    Abra la cuenta, haga clic en la pestaña "Editor de atributos" y baje hasta el atributo lastLogonTimestamp.

    lastLogonTimestamp en ADUC

    ¿Para qué se utiliza el valor de lastLogon?

    Puede ver el valor de lastLogon en la captura de pantalla anterior, también lo verá cuando use PowerShell. El valor de lastLogon no se repite en todos los controladores de dominio donde se encuentra lastLogonTimestamp. Esto es importante porque al usar el atributo lastLogon necesitará consultar cada controlador de dominio para averiguar si el usuario ha iniciado sesión. Microsoft entendió esto, por lo que introdujeron el atributo lastLogonTimestamp en 2003.

    Técnicamente, puede usar lastLogon para encontrar una cuenta inactiva, pero es mucho más difícil.

    Ahora veamos este valor con PowerShell.

    Por alguna razón, Microsoft cambió el nombre de este valor de LastLogonDate a PowerShell.

    Por qué no tengo idea, pero tiene el mismo significado. Si sabe por qué Microsoft le cambió el nombre a PowerShell, comente a continuación.

    Abra PowerShell y ejecute este comando.

    get-aduser -identity username -properties *

    Aquí hay una captura de pantalla de la misma cuenta en mi dominio.

    Última fecha de inicio de sesión en PowerShell

    Puede ver que lastLogonTimestamp y LastLogonDate tienen la misma fecha y hora.

    Sólo recuerda eso.

    PowerShell = Fecha del último inicio de sesión
    Interfaz gráfica de usuario de ADUC = lastLogonTimestamp

    Con estos atributos, podemos buscar en Active Directory cuentas de usuario inactivas.

    Si desea conocer todo el material técnico sobre el atributo lastlogonTimestamp, consulte este artículo de Ned Pyle (un empleado de Microsoft): El atributo LastLogonTimeStamp: para qué fue diseñado y cómo funciona

    Por qué debería eliminar las cuentas de usuario inactivas

    La seguridad es la razón №1 para borrar las cuentas de usuario inactivas. Aquí está la lista completa.

    1. Riesgos de seguridad - control de la CEI № 5 dice: "Hay muchas formas de obtener acceso en secreto a las cuentas de usuario, que incluyen: contraseñas débiles, cuentas que aún son válidas después de que el usuario abandona la empresa, cuentas de prueba inactivas o de larga duración, cuentas compartidas, que no han cambiado en meses o años, las cuentas de servicio integradas en la aplicación de secuencias de comandos ”Le recomiendo que descargue los controles CIS, es una gran fuente para el entorno de protección y seguridad.
    2. Problemas de inventario y seguimiento - Active Directory es una base de datos centralizada. No solo puede usarlo para rastrear sus activos, sino también integrarlo con otros sistemas para obtener una solución completa de gestión de activos. Si no borra sus activos de AD, su sistema de inventario será inexacto.
    3. Fácil de operar - Igual que el № 2. Un entorno de AD congestionado conduce a un entorno complejo y estresante que debe gestionarse. Considere ejecutar un script de PowerShell o intentar implementar software en cientos de ordenadores o usuarios. Cuando intenta administrar un entorno con cuentas antiguas e inactivas, obtendrá muchos errores.
    4. Integridad de los datos - Muchos de ellos tienen la misma integridad de datos. De nuevo, AD es una base de datos centralizada y se puede integrar con muchos sistemas. Si los datos en AD son incorrectos, todos los sistemas conectados a AD serán incorrectos.
    5. Licencia - Este es un ejemplo del mundo real. Sus cuentas de usuario de AD se sincronizan con un sistema de terceros como McAfee. Mcafee cobra una tarifa basada en las cuentas de usuario. Si tiene cientos de cuentas inactivas que se sincronizan con productos de terceros, puede pagar muchas licencias adicionales que no necesita. Esto también ocurre cuando se sincroniza AD con productos en la nube.

    Mejores prácticas para eliminar cuentas de usuario inactivas

    Estas son algunas de las mejores prácticas para limpiar usuarios inactivos o cuentas de ordenador.

    • Nunca elimine cuentas que se identifiquen como inactivas a la vez. Primero, apágalos durante al menos 30 días (cuanto más tiempo, mejor).
    • Busque cuentas con lastLogonTimestamp de 45 días o más, lo que significa que su cuenta de AD no muestra actividad de inicio de sesión durante 45 días o más.
    • Deshabilite las cuentas durante al menos 30 días, generalmente elijo 60. Con acceso remoto, VPN, los ordenadores portátiles a veces AD no se actualiza. Al deshabilitar primero la cuenta, es muy fácil volver a habilitarla y restaurar el acceso del usuario.
    • Agregue una descripción a la cuenta de fecha deshabilitada y sus iniciadores. Esto es muy útil para otros administradores cuando alguien pregunta por qué la cuenta está deshabilitada.
    • Una cuenta inactiva puede no significar una cuenta inactiva de Office 365. Esto será para entornos híbridos que se sincronizan con Office 365. Deshabilitar una cuenta contra la eliminación inmediata es fundamental para este tipo de entornos. Puede tener usuarios domésticos que nunca se autentican en un entorno de AD local pero que inician sesión en Office 365 a diario.
    • Ejecute el proceso de limpieza todos los meses.

    Ejemplo 1: busque cuentas de usuario inactivas mediante PowerShell

    Para encontrar cuentas inactivas usando PowerShell, necesitará herramientas RSAT instaladas o ejecutar estos comandos en un controlador de dominio.

    Todos estos ejemplos usan el atributo LastLogonDate, que revisé en la primera parte de este artículo.

    Encuentra cuentas inactivas en los últimos 60 días

    
    $When = ((Get-Date).AddDays(-60)).Date
    Get-ADUser -Filter {LastLogonDate -lt $When} -Properties * | select-object samaccountname,givenname,surname,LastLogonDate
    

    Encuentra cuentas inactivas en los últimos 30 días

    
    $When = ((Get-Date).AddDays(-30)).Date
    Get-ADUser -Filter {LastLogonDate -lt $When} -Properties * | select-object samaccountname,givenname,surname,LastLogonDate
    

    Aquí hay un ejemplo de mi dominio.

    Las cuentas de PowerShell han estado inactivas durante los últimos 30 días

    Puede exportar los resultados a CSV agregando | export-csv -path c: ps inactiveusers.csv

    $When = ((Get-Date).AddDays(-30)).Date
    Get-ADUser -Filter {LastLogonDate -lt $When} -Properties * | select-object samaccountname,givenname,surname,LastLogonDate | export-csv -path c:ps|inactiveusers.csv

    Para limitar el ámbito de una unidad organizativa, utilice el parámetro SearchBase con el nombre distintivo de la unidad.

    $When = ((Get-Date).AddDays(-30)).Date
    Get-ADUser -Filter {LastLogonDate -lt $When} -SearchBase "OU=Accounting,OU=ADPRO Users,DC=ad,DC=activedirectorypro,DC=com" -Properties * | select-object samaccountname,givenname,surname,LastLogonDate

    Encuentra usuarios inactivos y deshabilita cuentas

    $When = ((Get-Date).AddDays(-30)).Date
    Get-ADUser -Filter {LastLogonDate -lt $When} -Properties * | select-object samaccountname,givenname,surname,LastLogonDate | Disable-ADAccount

    En el ejemplo anterior, agregué | Disable-ADAccount al final para deshabilitar todas las cuentas inactivas.

    También puede usar estos comandos para buscar cuentas de ordenador, simplemente cambie Get-ADUser a Get-ADComputer

    Como puede ver, es fácil identificar las cuentas de usuario inactivas mediante PowerShell filtrando la LastLogonDate del usuario. Si usa PowerShell, puede crear una herramienta de limpieza de AD muy poderosa.

    Si no usa PowerShell o simplemente desea usar una herramienta GUI simple, consulte el Ejemplo 2.

    Ejemplo 2: Ubique cuentas de usuario inactivas usando Ad Cleaner

    La herramienta de limpieza de AD hace que sea extremadamente fácil encontrar usuarios y equipos inactivos. También agregué filtros para encontrar rápidamente usuarios vencidos, desconectados y usuarios sin historial de inicio de sesión. Estas son a menudo cuentas olvidadas que también deberían ser parte del proceso de limpieza.

    Veamos un ejemplo

    Para encontrar todas las cuentas inactivas de los últimos 30 días, ingrese 30 en las opciones de búsqueda y haga clic en 'Ejecutar'. Puede introducir cualquier número en el campo de parámetros de búsqueda.

    Buscar cuentas inactivas durante los últimos 30 días

    De forma predeterminada, esta herramienta mostrará tanto los usuarios como los equipos inactivos. Para ver solo las cuentas de usuario, desactive la lista desplegable "Mostrar equipos".

    Cambiar el filtro para mostrar solo cuentas de usuario

    Busca en todo el dominio.

    Puede limitar su búsqueda seleccionando una unidad organizativa o un grupo. Por ejemplo, quiero buscar cuentas inactivas en todos mis grupos de seguridad de contabilidad. Hago clic en vista previa y ahora puedo seleccionar todos mis grupos o cualquier unidad organizativa.

    Seleccione OU o grupos para buscar

    Para deshabilitar o mover cuentas, simplemente las selecciono y luego hago clic en el botón de acción.

    Voy a mover estas cuentas a la unidad organizativa inactiva que creé. Presiono el botón mover y luego selecciono OU.

    Seleccione OU para mover cuentas

    Ahora revisaré el ADUC para asegurarme de que las cuentas se hayan movido. Esto facilita ver todas las cuentas que voy a deshabilitar porque están definidas como inactivas.

    Si desea ver todas las cuentas de usuario deshabilitadas, simplemente suelte la lista de filtros y seleccione usuarios deshabilitados.

    Mostrar todas las cuentas de usuario deshabilitadas

    En la captura de pantalla anterior, también puede mostrar rápidamente todas las fechas de vencimiento de las cuentas de usuarios y usuarios sin un historial de inicio de sesión simplemente seleccionándolas en el filtro. Luego puede tomar medidas en estas cuentas moviéndolas o inhabilitándolas.

    Con esta herramienta hay muchas opciones, y la interfaz fácil de usar le ahorra un tiempo valioso cuando se trata de limpiar su entorno de AD.

    Resumen

    Le he mostrado dos ejemplos de búsqueda y eliminación de cuentas de usuario inactivas en Active Directory. Le recomiendo que agregue esto a su lista de verificación de mantenimiento mensual. La seguridad es una gran preocupación en Active Directory, pero como señalé, hay varias razones por las que esta es una tarea importante. PowerShell es una gran opción para encontrar cuentas inactivas, pero requiere conocimiento de scripts. Para aquellos que no utilizan secuencias de comandos o simplemente desean una solución rápida y sencilla, existe una herramienta gráfica de limpieza de anuncios.

    Artículos de interés

    Subir