Detección de permisos delegados en Active Directory
Los permisos de seguridad en Active Directory pueden ser un tema complicado. Microsoft no solo los oculta de forma predeterminada en Usuarios y Computadoras, sino que tampoco hay una herramienta incorporada para obtener una imagen general de cómo se han aplicado los permisos a AD.
En este artículo, le explicaré los conceptos básicos de delegación, eliminación de permisos, uso de herramientas integradas para encontrar permisos delegados y, finalmente, un script de PowerShell personalizado que analiza AD.
¿Por qué delegar?
Imagine que es el director de una gran empresa con varios departamentos: finanzas, recursos humanos, ventas y alta dirección. Si cada usuario que olvidó su contraseña tuviera que llamar al servicio de asistencia técnica de TI, se vería inundado de llamadas.
En su lugar, puede delegar permisos al jefe de cada departamento para que pueda restablecer las contraseñas de su propio equipo.
Otro caso de uso clásico para la delegación es la capacidad del personal de enviar correos electrónicos entre sí, ya sea un buzón compartido o un PA que envía correos electrónicos en nombre de su jefe.
¿Darles a todos administrador de dominio?
Es posible que haya pensado: está bien, otorguemos permisos de administrador de dominio a cada jefe de departamento, luego podrán restablecer las contraseñas cuando sea necesario.
Si bien esto es técnicamente cierto, entonces podrían hacer cualquier cosa que usted pueda hacer, incluido acceder a los datos del usuario. ¡Violación de datos en ciernes!
Cómo delegar permisos en AD
La forma correcta de lograr esto, por supuesto, es mediante Delegación. Esto le permitirá seleccionar individualmente los permisos que desea conceder.
1. Abra Usuarios y equipos de Active Directory y conéctese a su dominio de prueba favorito.
2. Haga clic derecho en la unidad organizativa del departamento al que desea otorgar permiso para restablecer las contraseñas.
3. Busque la opción 'Delegar control' (esta debería ser la primera opción en la lista). Haga clic aquí y presione Siguiente.
4. Ahora se le solicitará que elija usuarios o grupos a quienes desea delegar el control; estas son las personas que desea que puedan realizar una tarea.
Se recomienda ALTAMENTE que cree un grupo de seguridad para cada conjunto de permisos que esté delegando (es decir, uno para "Ventas - Capacidad de restablecimiento de contraseña", "RRHH - Capacidad de restablecimiento de contraseña"). Esto le permitirá agregar o eliminar usuarios de estos grupos muy fácilmente en el futuro, en lugar de tener que jugar directamente con los permisos.
5. Continúe y agregue un grupo. (En la figura siguiente, agregué nuestro equipo de alta dirección).
6. Presione Siguiente y luego elija la opción "Restablecer contraseñas de usuario y forzar el cambio de contraseña en el próximo inicio de sesión".
7. Presiona Siguiente y luego Finaliza. ¡Ya terminaste!
Eliminación de permisos delegados en AD
Ahora que ha completado el asistente, es posible que se pregunte cómo comprobar que realmente delegó permisos y cómo eliminarlos nuevamente.
1. Desde Usuarios y Computadoras, presione el menú Ver y asegúrese de que 'Funciones avanzadas' esté marcado.
2. Al marcar esta casilla, podrá ver la pestaña de seguridad cuando elija Propiedades en objetos en Active Directory.
Haga clic derecho en la misma unidad organizativa en la que acaba de delegar permisos y elija Propiedades, luego la pestaña Seguridad.
3. Elija "Avanzado" y luego desplácese hacia arriba y hacia abajo hasta encontrar el grupo al que acaba de otorgar permisos. Debería ver el permiso "Restablecer contraseña" en "Acceso".
4. Si desea eliminar este permiso, puede seleccionarlo y presionar Eliminar, pero déjelo en su lugar por ahora y presione Cancelar.
Como puede ver, encontrar permisos delegados es bastante difícil, especialmente si considera que puede delegar no solo a unidades organizativas, sino también a grupos de seguridad e incluso a los propios objetos de usuario.
Búsqueda de permisos (usando DSACLS)
Entonces, un escenario de pesadilla que debes considerar es que alguien restableció la contraseña del jefe y necesitas averiguar quién tenía permiso para hacerlo. (Si tenía instalado Netwrix Auditor, podría echar un vistazo allí, pero por ahora asumiremos que no).
1. En Usuarios y Computadoras, navegue hasta el objeto de usuario cuyos permisos desea verificar.
2. Haga clic derecho y seleccione Elegir propiedades, luego "Editor de atributos".
3. Desplácese y haga doble clic en "Nombre distinguido". Copie esta cadena para más tarde.
4. Abra un símbolo del sistema y escriba 'dsacls', luego pegue la cadena que acaba de copiar, encerrada entre marcas de voz:
5.Presiona enter.
6. En este punto probablemente te darás cuenta de que hay demasiados permisos en la pantalla; tienes dos opciones:
a. Utilice |more al final del comando para mostrar una pantalla completa a la vez.
b. Canalice la salida a un archivo de texto y léalo usando > nombredearchivo.txt.
7. Elegí la segunda opción, abrí el archivo en el bloc de notas y finalmente descubrí que el grupo de alta dirección tiene permisos para restablecer la contraseña del jefe.
Búsqueda de permisos (usando PowerShell)
Ahora que ha descubierto la delegación, es posible que se pregunte si hay alguna delegación que no conozca, ya sea de empleados anteriores o de administradores malintencionados.
He creado un breve script de PowerShell que buscará cada tipo de objeto delegable y enumerará las dos delegaciones de permisos comunes: restablecer contraseña y "enviar como" (desde Exchange).
Aquí hay una muestra ejecutada desde un dominio:
Para utilizar este script en su propio dominio:
1. Abra Usuarios y equipos de Active Directory y navegue hasta el dominio (o unidad organizativa) que está investigando.
2. Haga clic derecho y elija Propiedades.
3. En la pestaña 'Editor de atributos', busque la propiedad 'nombre distinguido'.
4. Selecciónelo y presione Ver, luego copie la Ruta LDAP. Lo necesitarás más tarde.
5. Descargue una copia del script desde GitHub:
https://raw.githubusercontent.com/thephoton/activedirectory-delegation-searcher/master/search.ps1
6. Haga clic derecho y edite el script usando PowerShell ISE.
7. Edite la línea 6 ($bSearch=…), reemplazando DOMAINCONTROLLER con el nombre de uno de los DC de su dominio.
8. Edite la línea 6, reemplazando LDAP con la ruta que copió en el paso 4.
9. Guarde el script y presione ejecutar.
10. Deje que el script busque en su Active Directory; El progreso se informa en la consola y, cuando se complete, recibirá una ventana emergente que detallará los objetos a los que se les han delegado permisos. ¡Es posible que se sorprenda!
Si necesita más información sobre cómo detectar quién modificó los permisos en Active Directory, consulte nuestro tutorial. También hay una herramienta gratuita de Netwrix que ofrece información útil sobre quién tiene permisos para qué en Active Directory y archivos compartidos.
¡Disfrutar!







