Saltar a contenido

Active Directory Groups

Después de los usuarios, los grupos son otro objeto significativo en Active Directory. Pueden agrupar usuarios similares y asignar derechos y acceso de manera masiva. Los grupos son un objetivo clave para los atacantes y los penetration testers, ya que los derechos que confieren a sus miembros pueden no ser evidentes de inmediato, pero pueden otorgar privilegios excesivos (e incluso no intencionados) que pueden ser explotados si no se configuran correctamente. Existen muchos grupos integrados en Active Directory, y la mayoría de las organizaciones también crean sus propios grupos para definir derechos y privilegios, gestionando además el acceso dentro del dominio. El número de grupos en un entorno de AD puede aumentar descontroladamente y volverse ingobernable, lo que podría conducir a un acceso no intencionado si no se controla. Es esencial entender el impacto de usar diferentes tipos de grupos y que cualquier organización audite periódicamente qué grupos existen dentro de su dominio, los privilegios que estos grupos otorgan a sus miembros y verifique que la pertenencia a los grupos no exceda lo necesario para que un usuario realice su trabajo diario. A continuación, discutiremos los diferentes tipos de grupos que existen y los alcances que se les pueden asignar.

Una pregunta que surge a menudo es la diferencia entre Grupos y Organizational Units (OUs). Como se discutió anteriormente en el módulo, las OUs son útiles para agrupar usuarios, grupos y equipos para facilitar la administración y la implementación de Group Policy settings a objetos específicos en el dominio. Los grupos se utilizan principalmente para asignar permisos para acceder a recursos. Las OUs también se pueden utilizar para delegar tareas administrativas a un usuario, como restablecer contraseñas o desbloquear cuentas de usuario sin otorgarles derechos administrativos adicionales que podrían heredar a través de la pertenencia a un grupo.


Types of Groups

En términos más simples, los grupos se utilizan para agrupar usuarios, equipos y objetos de contacto en unidades de administración que facilitan la administración de permisos y la asignación de recursos como impresoras y acceso a archivos compartidos. Por ejemplo, si un administrador necesita asignar acceso a un nuevo directorio compartido a 50 miembros de un departamento, sería muy tedioso agregar la cuenta de cada usuario individualmente. Otorgar permisos de esta manera también dificultaría la auditoría de quién tiene acceso a los recursos y complicaría la revocación de permisos. En su lugar, un sysadmin puede usar un grupo existente o crear uno nuevo y otorgar permisos a ese grupo específico sobre el recurso. A partir de ahí, cada usuario en el grupo heredará los permisos en función de su pertenencia al grupo. Si los permisos necesitan ser modificados o revocados para uno o más usuarios, simplemente se podrían eliminar del grupo, dejando a los otros usuarios sin afectar y manteniendo intactos sus permisos.

Los grupos en Active Directory tienen dos características fundamentales: type y scope. El group type define el propósito del grupo, mientras que el group scope muestra cómo se puede utilizar el grupo dentro del dominio o forest. Al crear un nuevo grupo, debemos seleccionar un tipo de grupo. Hay dos tipos principales: security y distribution groups.

Group Type And Scope

image

El tipo Security groups se utiliza principalmente para facilitar la asignación de permisos y derechos a una colección de usuarios en lugar de uno por uno. Simplifican la administración y reducen la carga al asignar permisos y derechos para un recurso determinado. Todos los usuarios agregados a un security group heredarán los permisos asignados al grupo, lo que facilita mover usuarios dentro y fuera de los grupos sin cambiar los permisos del grupo.

El tipo Distribution groups es utilizado por aplicaciones de correo electrónico como Microsoft Exchange para distribuir mensajes a los miembros del grupo. Funcionan de manera similar a las listas de correo y permiten agregar automáticamente correos electrónicos en el campo "Para" al crear un correo en Microsoft Outlook. Este tipo de grupo no puede ser utilizado para asignar permisos a recursos en un entorno de dominio.


Group Scopes

Existen tres group scopes diferentes que se pueden asignar al crear un nuevo grupo.

  1. Domain Local Group
  2. Global Group
  3. Universal Group

Domain Local Group

Los Domain local groups solo se pueden utilizar para gestionar permisos para recursos del dominio en el que se creó. Los grupos locales no se pueden usar en otros dominios, pero PUEDEN contener usuarios de OTROS dominios. Los grupos locales se pueden anidar en (ser contenidos dentro de) otros grupos locales, pero NO dentro de grupos globales.

Global Group

Los Global groups se pueden utilizar para otorgar acceso a recursos en otro dominio. Un global group solo puede contener cuentas del dominio en el que se creó. Los global groups se pueden agregar tanto a otros global groups como a local groups.

Universal Group

El universal group scope se puede utilizar para gestionar recursos distribuidos en múltiples dominios y se puede otorgar permisos a cualquier objeto dentro del mismo forest. Están disponibles para todos los dominios dentro de una organización y pueden contener usuarios de cualquier dominio. A diferencia de los domain local y global groups, los universal groups se almacenan en el Global Catalog (GC), y agregar o eliminar objetos de un universal group desencadena la replicación a través del forest. Se recomienda que los administradores mantengan otros grupos (como global groups) como miembros de universal groups, ya que la pertenencia de grupos globales dentro de los universal groups es menos probable que cambie en comparación con la pertenencia individual de usuarios en global groups. La replicación solo se activa a nivel de dominio individual cuando un usuario es eliminado de un global group. Si se mantienen usuarios y equipos individuales (en lugar de global groups) dentro de universal groups, se desencadenará la replicación a través del forest cada vez que se realice un cambio. Esto puede generar mucho tráfico en la red y posibles problemas. A continuación, se muestra un ejemplo de los grupos en AD y sus configuraciones de scope. Presta atención a algunos de los grupos clave y su scope (Enterprise y Schema admins comparados con Domain admins, por ejemplo).

AD Group Scope Examples

PS C:\htb> Get-ADGroup  -Filter * |select samaccountname,groupscope

samaccountname                           groupscope
--------------                           ----------
Administrators                          DomainLocal
Users                                   DomainLocal
Guests                                  DomainLocal
Print Operators                         DomainLocal
Backup Operators                        DomainLocal
Replicator                              DomainLocal
Remote Desktop Users                    DomainLocal
Network Configuration Operators         DomainLocal
Distributed COM Users                   DomainLocal
IIS_IUSRS                               DomainLocal
Cryptographic Operators                 DomainLocal
Event Log Readers                       DomainLocal
Certificate Service DCOM Access         DomainLocal
RDS Remote Access Servers               DomainLocal
RDS Endpoint Servers                    DomainLocal
RDS Management Servers                  DomainLocal
Hyper-V Administrators                  DomainLocal
Access Control Assistance Operators     DomainLocal
Remote Management Users                 DomainLocal
Storage Replica Administrators          DomainLocal
Domain Computers                             Global
Domain Controllers                           Global
Schema Admins                             Universal
Enterprise Admins                         Universal
Cert Publishers                         DomainLocal
Domain Admins                                Global
Domain Users                                 Global
Domain Guests                                Global

<SNIP>

Los scopes de los grupos se pueden cambiar, pero hay algunas advertencias:

  • Un Global Group solo se puede convertir en un Universal Group si NO forma parte de otro Global Group.

  • Un Domain Local Group solo se puede convertir en un Universal Group si el Domain Local Group NO contiene ningún otro Domain Local Group como miembros.

  • Un Universal Group se puede convertir en un Domain Local Group sin restricciones.

  • Un Universal Group solo se puede convertir en un Global Group si NO contiene ningún otro Universal Group como miembros.


Built-in vs. Custom Groups

Se crean varios security groups integrados con un Domain Local Group scope cuando se crea un dominio. Estos grupos se utilizan para fines administrativos específicos y se discutirán más en la siguiente sección. Es importante tener en cuenta que solo se pueden agregar cuentas de usuario a estos grupos integrados, ya que no permiten la anidación de grupos (grupos dentro de grupos). Algunos ejemplos de grupos integrados incluyen Domain Admins, que es un security group Global y solo puede contener cuentas de su propio dominio. Si una organización quiere permitir que una cuenta de dominio B realice funciones administrativas en un domain controller en el dominio A, la cuenta tendría que ser agregada al grupo integrado Administrators, que es un grupo Domain Local. Aunque Active Directory viene preconfigurado con muchos grupos, es común que la mayoría de las organizaciones creen grupos adicionales (tanto security como distribution) para sus propios propósitos. Los cambios/adiciones a un entorno de AD también pueden desencadenar la creación de grupos adicionales. Por ejemplo, cuando se agrega Microsoft Exchange a un dominio, agrega varios security groups diferentes al dominio, algunos de los cuales son altamente privilegiados y, si no se gestionan correctamente, pueden ser utilizados para obtener acceso privilegiado dentro del dominio.


Nested Group Membership

La pertenencia a grupos anidados es un concepto importante en AD. Como se mencionó anteriormente, un Domain Local Group puede ser miembro de otro Domain Local Group en el mismo dominio. A través de esta pertenencia, un usuario puede heredar privilegios que no están asignados directamente a su cuenta o incluso al grupo al que pertenece directamente, sino al grupo del cual su grupo es miembro. Esto a veces puede conducir a privilegios no intencionados otorgados a un usuario que son difíciles de descubrir sin una evaluación profunda del dominio. Herramientas como [BloodH

ound](https://github.com/BloodHoundAD/BloodHound) son particularmente útiles para descubrir privilegios que un usuario puede heredar a través de una o más anidaciones de grupos. Esta es una herramienta clave para los penetration testers para descubrir configuraciones incorrectas sutiles y también es extremadamente poderosa para sysadmins y similares para obtener una visión profunda (visual) de la postura de seguridad de su(s) dominio(s).

A continuación, se muestra un ejemplo de privilegios heredados a través de la pertenencia a grupos anidados. Aunque DCorner no es miembro directo de Helpdesk Level 1, su pertenencia a Help Desk les otorga los mismos privilegios que cualquier miembro de Helpdesk Level 1. En este caso, el privilegio les permitiría agregar un miembro al grupo Tier 1 Admins (GenericWrite). Si este grupo confiere privilegios elevados en el dominio, probablemente sería un objetivo clave para un penetration tester. Aquí, podríamos agregar a nuestro usuario al grupo y obtener los privilegios que se otorgan a los miembros del grupo Tier 1 Admins, como el acceso de administrador local a uno o más hosts que podrían ser utilizados para acceder más adelante.

Examining Nested Groups via BloodHound

image


Important Group Attributes

Al igual que los usuarios, los grupos tienen muchos attributes. Algunos de los important group attributes más relevantes incluyen:

  • cn: El cn o Common-Name es el nombre del grupo en Active Directory Domain Services.

  • member: Qué usuarios, grupos y objetos de contacto son miembros del grupo.

  • groupType: Un entero que especifica el tipo y scope del grupo.

  • memberOf: Una lista de cualquier grupo que contenga al grupo como miembro (pertenencia a grupos anidados).

  • objectSid: Este es el security identifier o SID del grupo, que es el valor único utilizado para identificar al grupo como un security principal.

Los grupos son objetos fundamentales en AD que se pueden utilizar para agrupar otros objetos y facilitar la gestión de derechos y acceso. Tómate el tiempo para estudiar las diferencias entre los tipos y scopes de grupos. Este conocimiento es útil para administrar AD, así como para comprender las relaciones entre grupos en el mismo y diferentes dominios y qué información se puede enumerar durante la fase de reconocimiento de una prueba de penetración. Entender cómo se pueden utilizar los diferentes tipos de grupos para realizar ataques en un solo dominio y a través de límites de confianza es un excelente conocimiento para tener. Nos adentramos en los grupos en esta sección, ahora examinemos las diferencias entre Rights y Privileges.