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
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.
- Domain Local Group
- Global Group
- 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
Important Group Attributes
Al igual que los usuarios, los grupos tienen muchos attributes. Algunos de los important group attributes más relevantes incluyen:
-
cn
: Elcn
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
.