Directorio y esquema de Active Directory

En los anteriores artículos de Active Directory hemos visto una introducción a sus conceptos principales y componentes.
在以前的 Active Directory 文章中,我们已经看到了对其主要概念和组件的介绍。

Hemos mencionado que Active Directory trabaja con el concepto de objetos y que todo lo es. Ahora bien, esta información debe de guardarse en algún lado, y es eso mismo lo que vamos a ver hoy, vamos a hablar de la base de datos de Active Directory y como se estructura todo.
我们已经提到 Active Directory 使用对象的概念,并且一切都是。现在,此信息必须存储在某个地方,这就是我们今天将要看到的内容,我们将讨论 Active Directory 数据库以及所有内容的结构。

La base de datos de Active Directory, donde se almacena toda su información, se encuentra en la siguiente ruta de los controladores de dominio:
存储您的所有信息的 Active Directory 数据库位于域控制器的以下路径上:

Plaintext 明文

C:\Windows\NTDS\ntds.dit

Cada controlador de dominio (DC) tiene su propia copia de la base de datos de Active Directory, conocida como NTDS (New Technology Directory Services Directory Information Tree – NTDS.DIT). Aunque cada DC mantiene su propia NTDS, todos ellos se mantienen sincronizados mediante un proceso llamado replicación (DCSync). Esto significa que cualquier cambio realizado en la base de datos de un controlador, como añadir un nuevo usuario o modificar una política, se comunica a los demás controladores de dominio para que actualicen sus propias copias. De esta manera, se asegura que todos los controladores de dominio tengan siempre la misma información actualizada. De manera por defecto, este proceso ocurre cada 3 horas.
每个域控制器 (DC) 都有自己的 Active Directory 数据库副本,称为 NTDS(新技术目录服务目录信息树 – NTDS)。DIT) 的尽管每个 DC 都维护自己的 NTDS,但它们都通过称为复制 (DCSync) 的过程保持同步。这意味着对控制器数据库所做的任何更改(例如添加新用户或修改策略)都会传达给其他域控制器,以便它们可以更新自己的副本。这可确保所有域控制器始终具有相同的最新信息。默认情况下,此过程每 3 小时发生一次。

Sabiendo esto, vamos a ver el esquema de la base de datos y como se estructura Active Directory:
了解了这一点,让我们看看数据库架构以及 Active Directory 的结构:

¿Qué es un servicio de directorio?
什么是目录服务?

En informática, cuando se habla de un servicio de directorio se refiere a algo similar a una base de datos, pero normalmente un poco mas completa debido a que suele contener información mas descriptiva basada en atributos. A diferencia de las bases de datos tradicionales, un servicio de directorio sigue una estructura jerárquica, lo que permite realizar consultas rápidas y además que la información se organice de manera mas estructurada, facilitando así el acceso.
在计算中,当我们谈论目录服务时,我们指的是类似于数据库的东西,但通常更完整一些,因为它通常包含更多基于属性的描述性信息。与传统数据库不同,目录服务遵循分层结构,允许快速查询,并允许以更结构化的方式组织信息,从而方便访问。

Uno de los conjuntos de estándares mas conocidos sobre servicio de directorio es X.500. ¿Qué tan relevante para nosotros es esto? Pues no mucho, mas allá de que para que lo conozcas y sepas que Active Directory Domain Services (AD DS) y LDAP están basados en éste estándar.
X.500 是目录服务最著名的标准集之一。这与我们有多大关系?嗯,不多,除此之外,以便您了解并知道 Active Directory 域服务 (AD DS) 和 LDAP 基于此标准。

Entonces, ¿Cómo se relaciona el directorio de Active Directory (AD DS) con LDAP?
那么,Active Directory Directory Directory (AD DS) 与 LDAP 有什么关系呢?

Pues básicamente AD DS es el encargado de definir la estructura jerárquica del directorio y almacenar toda la información relacionada con los objetos de la red del directorio activo (usuarios, grupos, dispositivos, etc…). Y LDAP es el protocolo encargado de que esta información pueda ser consultada y gestionada de manera eficiente. En resumen, AD DS define y almacena, y LDAP permite la consulta y acceso a esos datos. Esta combinación es lo que hace que Active Directory funcione de manera efectiva en la gestión de redes empresariales.
嗯,基本上 AD DS 负责定义目录的层次结构并存储与 Active Directory 网络对象(用户、组、设备等)相关的所有信息。LDAP 是负责确保可以有效地查阅和管理此信息的协议。简而言之,AD DS 定义和存储,LDAP 允许查询和访问该数据。这种组合使 Active Directory 在企业网络管理中有效工作。

Distinguished Names (DN) 可分辨名称 (DN)

Ya sabemos como funciona el Active Directory Domain Services y su relación con LDAP. Ahora bien, ¿Cómo se consulta o interactúa con un objeto dentro del directorio a través de LDAP? ¿Qué estructura se sigue? ¿Qué parámetro es el encargado?
我们已经知道 Active Directory 域服务的工作原理以及它与 LDAP 的关系。现在,如何通过 LDAP 查询目录中的对象或与之交互呢?遵循什么结构?什么参数负责?

Pues de esto se encarga el DN (Distinguished Name). El DN es una cadena que identifica de forma única a cada objeto dentro del directorio, es por así decirlo, la “dirección” exacta de un objeto dentro de la jerarquía del directorio. Cuando se quiere acceder o hacer consultas sobre un objeto en AD DS (Active Directory) a través de LDAP, se utiliza el DN para referirse a dicho objeto de manera precisa.
嗯,这就是 DN (Distinguished Name) 负责的。DN 是一个字符串,用于唯一标识目录中的每个对象,可以说,它是目录层次结构中对象的确切“地址”。当您希望通过 LDAP 访问或查询 AD DS (Active Directory) 中的对象时,您可以使用 DN 精确引用该对象。

A continuación un ejemplo visual:
下面是一个直观的示例:

Directorio y esquema de Active Directory
Windows Security Internals: A Deep Dive into Windows Authentication, Authorization, and Auditing – James Forshaw
Windows 安全内部原理:深入了解 Windows 身份验证、授权和审计 – James Forshaw

Por ejemplo, si queremos referirnos al usuario bob, su DN sería:
例如,如果我们要引用用户 bob,他的 DN 将是:

Plaintext 明文

CN=bob,CN=Users,DC=mineral,DC=local 

Dentro del DN podemos encontrar distintos tipos de atributos:
在 DN 中,我们可以找到不同类型的属性

Common-Name (CN) 通用名称 (CN) Es el nombre del objeto en cuestión, como un usuario o dispositivo.
这是相关对象的名称,例如用户或设备。
Domain Component (DC) 域组件 (DC) Define los componentes del nombre de dominio, separados por puntos. Por ejemplo, para “deephacking.tech”, tendríamos “DC=deephacking, DC=tech”.
定义域名的组成部分,用句点分隔。例如,对于 “deephacking.tech”,我们将有 “DC=deephacking, DC=tech”。
Organizational Unit (OU) 组织单位 (OU) Hace referencia a una unidad organizativa dentro de la estructura del directorio.
指目录结构中的组织单位。

A través de estos atributos (que no son todos pero si los principales) podemos definir la dirección exacta de un objeto dentro de la jerarquía del directorio activo.
通过这些属性(不是全部,而是主要属性),我们可以定义活动目录层次结构中对象的确切地址。

Además del DN está el concepto de RDN (Relative Distinguished Names), el RDN no deja de ser la versión corta del DN, por ejemplo:
除了 DN 之外还有 RDN(相对可分辨名称)的概念,RDN 仍然是 DN 的简称,例如:

  • DN DN 系列
Plaintext 明文

DN: CN=bob,CN=Users,DC=mineral,DC=local
  • RDN: RDN:
Plaintext 明文

RDN: CN=bob

Viendo esto podemos llegar a la conclusión de que dentro de una organización, dos objetos pueden tener el mismo RDN, pero sus DNs siempre serán únicos en el directorio. Ahora bien, aunque el DN siempre sea único no quiere decir que sea consistente ya que cambiaría si un objeto es modificado o eliminado. Para solucionar esto podemos mencionar la existencia del objectGUID que es un atributo que tiene cada objeto y que se mantiene igual aunque cambie el DN.
看到这一点,我们可以得出结论,在一个组织内,两个对象可以具有相同的 RDN,但它们的 DN 在目录中始终是唯一的。现在,即使 DN 始终是唯一的,也不意味着它是一致的,因为如果修改或删除对象,它也会发生变化。为了解决这个问题,我们可以提到 objectGUID 的存在,它是每个对象都具有的属性,即使 DN 发生变化也保持不变。

RootDSE y Naming Contexts
RootDSE y 命名上下文

Después de comprender cómo funcionan los Distinguished Names (DN) para identificar objetos dentro de un directorio, es fundamental entender dos conceptos clave para interactuar con Active Directory a través de LDAP:
在了解了可分辨名称 (DN) 如何标识目录中的对象之后,了解通过 LDAP 与 Active Directory 交互的两个关键概念至关重要:

  • RootDSE 根 DSE
  • Naming Contexts 命名上下文

¿Qué es el RootDSE? 什么是 RootDSE?

El RootDSE (Root Directory Server Agent Service Entry) es un objeto especial dentro de Active Directory que sirve como punto de entrada cuando interactuamos con el directorio utilizando LDAP. La DSE (Directory System Agent) es el componente del sistema que se encarga de manejar las operaciones de LDAP en el servidor, y el RootDSE es la representación de esa interfaz inicial. A diferencia de otros objetos en Active Directory, el RootDSE no tiene un Distinguished Name (DN) asignado, lo que significa que no es parte de la jerarquía de objetos que se suele consultar con un DN específico. Esto lo hace accesible de manera global en cualquier servidor LDAP de Active Directory sin necesidad de especificar su localización.
RootDSE(根目录服务器代理服务条目)是 Active Directory 中的一个特殊对象,当我们使用 LDAP 与目录交互时,它充当入口点。DSE (Directory System Agent) 是处理服务器上的 LDAP 操作的系统组件,而 RootDSE 是该初始接口的表示形式。与 Active Directory 中的其他对象不同,RootDSE 没有为其分配可分辨名称 (DN),这意味着它不是通常使用特定 DN 查询的对象层次结构的一部分。这使得它可以在任何 Active Directory LDAP 服务器上全局访问,而无需指定其位置。

Por ejemplo, si queremos consultarlo usando ldapsearch podemos hacerlo de la siguiente manera:
例如,如果我们想使用 ldapsearch 查询它,我们可以这样做:

Bash 重击

ldapsearch -x -H ldap://192.168.50.10 -b "" -s base
Directorio y esquema de Active Directory
Directorio y esquema de Active Directory

Un aspecto clave es que el RootDSE es accesible de manera anónima, permitiendo la lectura de ciertos atributos. Este comportamiento forma parte de la configuración predeterminada de Active Directory, ya que el RootDSE proporciona información de contexto sobre el entorno del directorio, como la versión del esquema, el nombre del dominio y las capacidades del servidor. Esta accesibilidad permite a aplicaciones y servicios descubrir la estructura y características del directorio sin necesidad de autenticarse. Sin embargo, este acceso está limitado a atributos no confidenciales.
一个关键方面是 RootDSE 是匿名访问的,允许读取某些属性。此行为是默认 Active Directory 配置的一部分,因为 RootDSE 提供有关目录环境的上下文信息,例如架构版本、域名和服务器功能。这种可访问性允许应用程序和服务发现目录的结构和特征,而无需进行身份验证。但是,此访问权限仅限于非敏感属性。

En resumen, el RootDSE ofrece detalles sobre el entorno del directorio, como los diferentes contextos de nombres (naming contexts), las capacidades del servidor y configuraciones clave. Esto permite obtener información básica sobre la estructura del directorio y las funciones que soporta el servidor.
总之,RootDSE 提供有关目录环境的详细信息,例如不同的命名上下文、服务器功能和密钥配置。这使您可以获取有关服务器支持的目录结构和功能的基本信息。

Naming Contexts predeterminados
默认命名上下文

Dado el comportamiento distribuido de Active Directory, es necesario dividir los datos del directorio activo en particiones conocidas como naming contexts (NC). Sin estas particiones, cada controlador de dominio tendría que replicar toda la información del bosque cada vez que realizara una replicación (DCSync), lo cual sería ineficiente.
由于 Active Directory 的分布式行为,有必要将 Active Directory 中的数据划分为称为命名上下文 (NC) 的分区。如果没有这些分区,每个域控制器每次复制 (DCSync) 时都必须复制林中的所有信息,这将是低效的。

En Active Directory, un dominio se puede considerar como una partición de datos, también conocida como naming context (NC). Esto permite que los controladores de dominio responsables de un dominio específico repliquen solo la información relevante a ese dominio, sin necesidad de replicar datos de otros dominios que no les afectan.
在 Active Directory 中,可以将域视为数据分区,也称为命名上下文 (NC)。这允许负责特定域的域控制器仅将相关信息复制到该域,而无需从不影响它们的其他域复制数据。

Sin embargo, existen ciertos datos que deben replicarse en todos los controladores de dominio dentro del bosque, lo que lleva a la necesidad de varios tipos de naming contexts en Active Directory.
但是,需要在林中的所有域控制器之间复制某些数据,因此需要在 Active Directory 中使用各种类型的命名上下文

Directorio y esquema de Active Directory
ADSI Edit ADSI 编辑
Domain Naming Context 域命名上下文

El Domain Naming Context (NC) es una de las particiones clave dentro de la estructura de Active Directory. Cada dominio tiene su propio naming context, que almacena todos los objetos específicos de ese dominio. Estos objetos incluyen usuarios, grupos, ordenadores y grupos de seguridad, y el DN (Distinguished Name) del dominio actúa como el identificador principal de este contexto.
域命名上下文 (NC) 是 Active Directory 结构中的关键分区之一。每个域都有自己的命名上下文,该上下文存储特定于该域的所有对象。这些对象包括用户、组、计算机和安全组,域的可分辨名称 (DN) 充当此上下文的主要标识符。

Por ejemplo, si el dominio de una organización es sevenkingdoms.local, su Domain Naming Context estaría representado por el DN DC=sevenkingdoms,DC=local.
例如,如果组织的域是 sevenkingdoms.local,则其域名上下文将由 DN DC=sevenkingdoms,DC=local 表示。

Cada controlador de dominio dentro de un dominio específico mantiene una copia completa del Domain Naming Context para ese dominio. Esto significa que si tienes un dominio llamado north.sevenkingdoms.local, todos los controladores de dominio de ese dominio replicarán únicamente los objetos almacenados dentro de este NC, asegurando que los controladores de dominio solo manejen los datos necesarios para su propio dominio y no los de otros.
特定域中的每个域控制器都维护该域的域命名上下文的完整副本。这意味着,如果您有一个名为 north.sevenkingdoms.local 的域,则该域中的所有域控制器将仅复制存储在此 NC 中的对象,从而确保域控制器仅处理其自身域所需的数据,而不处理其他域的数据。

Configuration Naming Context
配置命名上下文

El Configuration Naming Context (NC) es otro componente esencial en Active Directory, pero su alcance es diferente al del Domain NC. Mientras que el Domain NC almacena datos específicos del dominio, el Configuration NC contiene la configuración global que afecta a todo el bosque.
配置命名上下文 (NC) 是 Active Directory 中的另一个重要组件,但其范围与域 NC 的范围不同。域 NC 存储特定于域的数据,而配置 NC 包含影响整个林的全局配置。

Directorio y esquema de Active Directory
ADSI Edit – Configuration Naming Context
ADSI Edit – 配置命名上下文

A diferencia del Domain NC, el Configuration NC se replica en todos los controladores de dominio del bosque, lo que asegura que todos los controladores tengan la misma información de configuración.
与域 NC 不同,配置 NC 将复制到林中的所有域控制器,从而确保所有控制器具有相同的配置信息。

Por ejemplo, dentro del Configuration NC se almacenan datos esenciales para la infraestructura global de Active Directory, como las políticas de replicación y las configuraciones de servicios críticos, como el File Replication Service (FRS), encargado de replicar el contenido del SYSVOL entre controladores de dominio. El SYSVOL es un directorio compartido que contiene archivos importantes, como scripts de inicio de sesión y políticas de grupo, que deben mantenerse sincronizados entre todos los controladores de dominio. Aunque no es el enfoque principal en este momento, cabe mencionar que en versiones más recientes de Windows Server, el Distributed File System Replication (DFSR) ha reemplazado al FRS para llevar a cabo esta tarea.
例如,全局 Active Directory 基础结构的基本数据(例如关键服务的复制策略和配置,例如在域控制器之间复制 SYSVOL 内容的文件复制服务 (FRS))都存储在配置 NC 中。SYSVOL 是一个共享目录,其中包含重要文件,例如登录脚本和组策略,这些文件必须在所有域控制器之间保持同步。虽然目前不是主要关注点,但值得一提的是,在较新版本的 Windows Server 中,分布式文件系统复制 (DFSR) 已取代 FRS 来执行此任务。

Schema Naming Context Schema 命名上下文

El Schema Naming Context (NC) es uno de los mas importantes ya que define la estructura y reglas que determinan qué tipos de objetos y atributos se pueden almacenar dentro del directorio. Ahora veremos mas en profundidad este concepto y podrás entender de mejor manera que se almacena en esta partición.
架构命名上下文 (NC) 是最重要的上下文之一,因为它定义了确定目录中可以存储哪些类型的对象和属性的结构和规则。现在我们将仔细研究这个概念,您将能够更好地了解此分区中存储的内容。

Directorio y esquema de Active Directory
ADSI Edit – Schema Naming Context
ADSI Edit – 架构命名上下文

En cualquier caso, aunque el schema NC también se replica entre todos los controladores del dominio del bosque si que es cierto que aquí existe un rol especial conocido como Schema Master. El Schema Master es uno de los cinco roles FSMO (Flexible Single Master Operations) en Active Directory, y establece un único controlador de dominio en todo el bosque como autoridad para modificar el esquema.
无论如何,尽管 NC 架构也在林域的所有控制器之间复制,但这里确实存在一个称为架构主节点的特殊角色。架构主机是 Active Directory 中的五个 FSMO(灵活单主机操作)角色之一,它建立了一个林范围的域控制器作为修改架构的权限。

Por ejemplo, cuando se instala una nueva aplicación que interactúa con Active Directory, como Microsoft Exchange o System Center Configuration Manager (SCCM), el esquema de Active Directory debe ser extendido para incluir nuevos tipos de atributos o clases que la aplicación necesita. Estos cambios son gestionados exclusivamente por el Schema Master.
例如,当安装了与 Active Directory 交互的新应用程序(如 Microsoft Exchange 或 System Center Configuration Manager (SCCM))时,必须扩展 Active Directory 架构以包含应用程序所需的新类型的属性或类。这些更改由 Schema Master 专门处理。

De todas maneras ahora hablaremos de nuevo de manera mas concreta y extensa del esquema.
无论如何,我们现在将再次以更具体和更广泛的方式讨论该计划。

Default Naming Context 默认命名上下文

El Default Naming Context se refiere al contexto de nombres predeterminado que se utiliza como punto de partida para realizar búsquedas y consultas dentro del dominio principal en Active Directory.
默认命名上下文是指用作在 Active Directory 的主域中进行搜索和查询的起点的默认命名上下文。

El Default Naming Context representa la raíz del dominio actual y actúa como el lugar desde donde se inician todas las operaciones relacionadas con la búsqueda o modificación de objetos en el dominio. Por ejemplo, si el dominio principal de una organización es sevenkingdoms.local, el Default Naming Context sería DC=kingslanding,DC=sevenkingdoms,DC=local. Este valor se obtiene consultando el RootDSE.
默认命名上下文表示当前域的根,并充当启动与在域中查找或修改对象相关的所有操作的位置。例如,如果组织的主域是 sevenkingdoms.local,则默认命名上下文将为 DC=kingslanding,DC=sevenkingdoms,DC=local。此值是通过查询 RootDSE 获得的。

Directorio y esquema de Active Directory
ADSI Edit – Default Naming Context
ADSI Edit – 默认命名上下文

Conocer este valor es crucial para los administradores (y atacantes), ya que les permite realizar consultas eficientes sobre los objetos dentro de la estructura del dominio y gestionar de manera adecuada la jerarquía de Active Directory.
了解此值对于管理员(和攻击者)至关重要,因为它使他们能够有效地查询域结构中的对象并正确管理 Active Directory 层次结构。

Application Naming Contexts
应用程序命名上下文

Además de los naming contexts principales que acabamos de ver existen particiones adicionales conocidas como Application Naming Contexts o particiones de aplicación. Estas particiones están diseñadas para almacenar datos de aplicaciones o servicios específicos que no afectan directamente a los objetos de seguridad, como usuarios o grupos, y su replicación puede ser controlada de manera más detallada entre los controladores de dominio.
除了我们刚才看到的主要命名上下文之外,还有其他称为 Application Naming Contexts 的分区。这些分区旨在存储来自特定应用程序或服务的数据,这些应用程序或服务不会直接影响安全对象(如用户或组),并且可以在域控制器之间更精细地控制它们的复制。

A diferencia de los naming contexts principales, los Application Naming Contexts no tienen que replicarse en todos los controladores de dominio. En cambio, su replicación puede configurarse de manera selectiva, replicando solo entre los controladores de dominio que se elijan específicamente para gestionar estos datos.
与主命名上下文不同,应用程序命名上下文不必在所有域控制器之间复制。相反,可以有选择地配置其复制,仅在专门选择用于处理此数据的域控制器之间进行复制。

Dos ejemplos comunes de Application Naming Contexts que se generan automáticamente cuando se integra DNS con Active Directory son DomainDnsZones y ForestDnsZones. Ambos naming contexts son utilizados para almacenar información relacionada con las zonas DNS y su replicación:
当 DNS 与 Active Directory 集成时自动生成的应用程序命名上下文的两个常见示例是 DomainDnsZones 和 ForestDnsZones。这两个命名上下文都用于存储与 DNS 区域及其复制相关的信息:

  • DomainDnsZones: Esta partición contiene los datos DNS específicos de cada dominio en Active Directory. Se replica solo entre los controladores de dominio que gestionan ese dominio en particular.
    DomainDnsZones:此分区包含 Active Directory 中特定于域的 DNS 数据。它仅在管理该特定域的域控制器之间进行复制。
  • ForestDnsZones: Esta partición se utiliza para almacenar los datos DNS a nivel de bosque, permitiendo que la información DNS compartida por todos los dominios del bosque se replique en todos los controladores de dominio.
    ForestDnsZones:此分区用于在林级别存储 DNS 数据,从而允许在所有域控制器之间复制林中所有域共享的 DNS 信息。

Por ejemplo, en la imagen del principio podemos visualizar estos dos NC debido a que el DNS está integrado y gestionado por el directorio activo:
例如,在开头的图像中,我们可以可视化这两个 NC,因为 DNS 是由 Active Directory 集成和管理的:

Directorio y esquema de Active Directory

Además de estos dos ejemplos cualquier administrador puede crear sus propias particiones de aplicación personalizadas para que sean utilizadas por aplicaciones específicas que requieran replicación de datos entre un número selecto de controladores de dominio.
除了这两个示例之外,任何管理员都可以创建自己的自定义应用程序分区,以供需要在选定数量的域控制器之间进行数据复制的特定应用程序使用。

Global Catalog (GC) 全局编录 (GC)

Toda la información organizada en las particiones de datos (Naming Contexts) de Active Directory puede ser accedida eficientemente a nivel de todo el bosque gracias al Global Catalog (GC). El GC es una base de datos distribuida parcial que se aloja en servidores designados como Global Catalog Servers, que normalmente son controladores de dominio configurados para cumplir esta función. El primer controlador de dominio en un bosque se convierte automáticamente en un Global Catalog Server, y otros controladores de dominio pueden ser promovidos para desempeñar este rol. No es necesario que todos los controladores de dominio sean Global Catalog Servers por defecto, pero tener varios puede optimizar el rendimiento en entornos distribuidos geográficamente.
借助全局编录 (GC),可以在林范围内高效地访问在 Active Directory 命名上下文中组织的所有信息。GC 是一个部分分布式数据库,它托管在指定为全局编录服务器的服务器上,这些服务器通常是配置为实现此功能的域控制器。林中的第一个域控制器会自动转换为全局编录服务器,并且可以提升其他域控制器来填补此角色。默认情况下,并非所有域控制器都需要是全局编录服务器,但拥有多个域控制器可以优化地理分散环境中的性能。

Estos servidores contienen una copia completa de todos los objetos del dominio en el que están ubicados y una copia parcial, de solo lectura, de todos los objetos de los demás dominios del bosque. Es importante destacar que la réplica parcial del GC incluye una copia de todos los objetos del bosque, pero solo de un subconjunto de sus atributos. Es decir, almacena todos los objetos, pero únicamente aquellos atributos marcados como críticos o necesarios para búsquedas comunes.
这些服务器包含它们所在的域中所有对象的完整副本,以及林中其他域中所有对象的部分只读副本。重要的是,GC 的部分副本包括林中所有对象的副本,但仅包括其属性的子集。也就是说,它存储所有对象,但只存储那些标记为常见搜索的关键或必要的属性。

Los atributos que se incluyen en el GC se determinan en el esquema de Active Directory (del cual hablaremos más adelante) y están marcados con la propiedad isMemberOfPartialAttributeSet. Estos atributos no tienen por qué ser los más frecuentemente utilizados, sino aquellos designados para el funcionamiento eficiente del directorio y las búsquedas globales. Algunos ejemplos de estos atributos pueden ser nombres de usuario, direcciones de correo electrónico, etc.
GC 中包含的属性在 Active Directory 架构中确定(我们将在后面讨论),并使用 isMemberOfPartialAttributeSet 属性进行标记。这些属性不必是最常用的,而是为目录和全局搜索的高效运行而指定的属性。这些属性的示例可以是用户名、电子邮件地址等。

En resumen, a diferencia de los Naming Contexts, que contienen todos los atributos de los objetos, el GC solo almacena aquellos atributos que son críticos para la búsqueda y el acceso. De esta forma, el GC optimiza el rendimiento al evitar replicar datos innecesarios y permite que aplicaciones y usuarios en un dominio puedan consultar objetos de otros dominios dentro del mismo bosque a través del Global Catalog Server.
简而言之,与包含所有对象属性的命名上下文不同,GC 仅存储那些对搜索和访问至关重要的属性。通过这种方式,GC 通过避免不必要的数据复制来优化性能,并允许一个域中的应用程序和用户通过全局编录服务器从同一林中的其他域查询对象。

Algunas de las funciones mas importantes que realiza el Global Catalog son:
Global Catalog 执行的一些最重要的功能包括:

  • Búsqueda a nivel de bosque: El GC permite a los usuarios y aplicaciones realizar búsquedas en todo el bosque, independientemente del dominio en el que se encuentre el objeto. Por ejemplo, si un empleado de “spain.deephacking.local” necesita encontrar un atributo concreto de otro empleado que se encuentra en “uk.deephacking.local”, puede buscar directamente en el directorio de su dominio gracias al GC.
    林级搜索:GC 允许用户和应用程序搜索整个林,而不管对象位于哪个域中。例如,如果 “spain.deephacking.local” 的一名员工需要查找位于 “uk.deephacking.local” 中的另一名员工的特定属性,他们可以直接在其域目录中进行搜索,这要归功于 GC。
  • Autenticación de nombre principal de usuario (UPN): El GC es esencial para autenticar usuarios mediante su User Principal Name (UPN), especialmente cuando la cuenta de usuario está en un dominio diferente al del controlador que procesa la solicitud de inicio de sesión. Por ejemplo, si “[email protected]” intenta iniciar sesión en un equipo dentro de “spain.deephacking.local”, el controlador de dominio local consultará al GC para autenticar al usuario correctamente.
    用户主体名称 (UPN) 身份验证:GC 对于使用用户主体名称 (UPN) 对用户进行身份验证至关重要,尤其是当用户帐户与处理登录请求的控制器位于不同的域中时。例如,如果 “[email protected]” 尝试登录到 “spain.deephacking.local” 中的计算机,则本地域控制器将查询 GC 以成功验证用户。
  • Validación de referencias a objetos de otros dominios: Los controladores de dominio utilizan el GC para validar referencias a objetos que residen en otros dominios. Por ejemplo, si en “spain.deephacking.local” hay un grupo que incluye como miembro a un usuario de “uk.deephacking.local”, el controlador de dominio necesita consultar al GC para validar esa referencia y asegurar que el usuario todavía existe y tiene los permisos adecuados.
    验证对其他域中对象的引用:域控制器使用 GC 验证对驻留在其他域中的对象的引用。例如,如果 “spain.deephacking.local” 中有一个组,其中包括 “uk.deephacking.local” 的用户作为成员,则域控制器需要查询 GC 以验证该引用,并确保该用户仍然存在并具有适当的权限。
  • Pertenencia a grupos universales: En entornos de varios dominios, el GC es el único lugar donde los controladores de dominio pueden consultar si un usuario pertenece a grupos universales. Por ejemplo, si un usuario de “spain.deephacking.local” es miembro de un grupo universal que otorga acceso a recursos en “uk.deephacking.local”, durante el inicio de sesión, el controlador de dominio consultará al GC para obtener esta información y garantizar que el usuario tenga los permisos necesarios.
    通用组成员身份:在多域环境中,GC 是域控制器可以检查用户是否属于通用组的唯一位置。例如,如果 “spain.deephacking.local” 的用户是授予 “uk.deephacking.local” 中资源访问权限的通用组的成员,则在登录过程中,域控制器会查询 GC 以获取此信息,并确保该用户具有必要的权限。

Cuando nos referimos a que un controlador de dominio consultará con el GC, nos referimos a que el controlador de dominio intentará contactar con un Global Catalog Server disponible en su mismo sitio de Active Directory, independientemente del dominio al que pertenezca ese GC. Si no hay un GC disponible en el sitio local o la conectividad está interrumpida, el controlador de dominio está diseñado para contactar con un GC en otro sitio dentro del mismo bosque.
当我们表示域控制器将使用 GC 进行查询时,我们的意思是域控制器将尝试联系其同一 Active Directory 站点上可用的全局编录服务器,而不管该 GC 属于哪个域。如果 GC 在本地站点不可用或连接中断,则域控制器将设计为联系同一林中另一个站点的 GC。

En cualquier caso, estas funciones que acabamos de ver son esenciales en entornos con múltiples dominios. Por ejemplo, imaginemos un entorno con los dominios “spain.deephacking.local” y “uk.deephacking.local”. Si un usuario en el dominio “spain” necesita información sobre un usuario en “uk”, el Global Catalog permitirá encontrar esta información de manera rápida sin tener que consultar directamente a los controladores de dominio de “uk”. Además, si el usuario de “spain” inicia sesión con un UPN y su cuenta está en “uk” , el controlador de dominio de “spain” contactará al GC para autenticar al usuario correctamente.
无论如何,我们刚刚看到的这些功能在多域环境中都是必不可少的。例如,让我们想象一个具有域 “spain.deephacking.local” 和 “uk.deephacking.local” 的环境。如果 “spain” 域中的用户需要有关 “uk” 中用户的信息,则全局目录将允许您快速找到此信息,而无需直接咨询 “uk” 域控制器。此外,如果“spain”用户使用 UPN 登录,并且他们的帐户位于“uk”,则“spain”域控制器将联系 GC 以成功对用户进行身份验证。

Para terminar, de cara al diseño de una infraestructura (o nosotros entender una desde el punto de vista ofensivo) es importante optimizar la ubicación de los Global Catalog Servers en entornos distribuidos geográficamente. Deben de estar ubicados en sitios con muchos usuarios o con frecuentes consultas interdominio, ya que, mejora la eficiencia y reduce la latencia en búsquedas y autenticaciones. Sin embargo, se debe equilibrar el número de GC en la red para evitar un exceso de tráfico de replicación que pueda afectar al rendimiento.
最后,为了设计基础设施(或者我们从进攻性的角度理解基础设施),在地理分散的环境中优化 Global Catalog 服务器的位置非常重要。它们必须位于用户众多或域间查询频繁的站点中,因为这可以提高效率并减少搜索和身份验证的延迟。但是,必须平衡网络中的 GC 数量,以避免过多的复制流量,从而影响性能。

Esquema de Active Directory
Active Directory 架构

Vale ya hemos visto que es el directorio dentro del directorio activo además de varios conceptos como los naming contexts (que se relacionan con LDAP) y el global catalog . Ahora bien, para que todo cuadre falta un concepto mas, el esquema (que hemos mencionado mínimamente en el Schema NC).
好了,我们已经看到它是 Active Directory 中的目录,此外还有几个概念,例如命名上下文(与 LDAP 相关)和全局目录。现在,为了适应所有内容,还缺少一个概念,即 schema(我们在 Schema NC 中至少提到过)。

El esquema es como un marco de referencia que define tanto las clases de objetos (por ejemplo, usuarios, grupos, impresoras) como los atributos que pueden o deben tener esos objetos. Algunas de estas clases u atributos están basados en estándares. Puedes imaginarte el esquema como un “molde”.
架构就像一个参考框架,它定义对象的类(例如,用户、组、打印机)以及这些对象可以或应该具有的属性。其中一些类或属性是基于标准的。您可以将架构视为“模具”。

Estas clases y atributos son esenciales para que Active Directory funcione correctamente, ya que proporcionan la estructura necesaria para que el directorio sepa qué tipo de información puede almacenar y cómo debe presentarla. Cada objeto en el directorio tiene que seguir las reglas establecidas por el esquema. Por ejemplo, si creamos un objeto de tipo “usuario”, el esquema define que ese objeto debe tener atributos obligatorios como el “nombre” y la “contraseña”, y puede tener atributos opcionales como el “número de teléfono” o “dirección de correo electrónico”.
这些类和属性对于 Active Directory 的正常运行至关重要,因为它们为目录提供了必要的结构,以便了解它可以存储哪些类型的信息以及应如何呈现这些信息。目录中的每个对象都必须遵循架构设置的规则。例如,如果我们创建一个 “user” 类型的对象,则架构定义该对象必须具有必需属性(如 “name” 和 “password”),并且可以具有可选属性(如 “phone number” 或 “email address”)。

Es importante destacar que el esquema de Active Directory es extensible, lo que significa que se pueden agregar nuevas clases de objetos o atributos según sea necesario para adaptarse, aunque que ocurra esto no es lo común. Nadie se atreve a editar el esquema, al menos por lo que se de mi experiencia.
重要的是,Active Directory 架构是可扩展的,这意味着可以根据需要添加新的对象类或属性以适应,尽管这并不常见。没有人敢编辑这个方案,至少从我的经验来看是这样。

Aunque si que es cierto que el esquema suele ser modificado por parte de Microsoft cuando publica una nueva versión de Windows Server. Podemos observar la versión usando el siguiente comando:
尽管 Microsoft 在发布新版本的 Windows Server 时通常会修改架构,但这是事实。我们可以使用以下命令观察版本:

PowerShell

PS C:\Users\robb.stark> Get-ItemProperty 'AD:\CN=Schema,CN=Configuration,DC=sevenkingdoms,DC=local' -Name objectVersion


objectVersion : 88
PSPath        : Microsoft.ActiveDirectory.Management.dll\ActiveDirectory:://RootDSE/CN=Schema,CN=Configuration,DC=sevenkingdoms,DC=local
PSParentPath  : Microsoft.ActiveDirectory.Management.dll\ActiveDirectory:://RootDSE/
PSChildName   : CN=Schema,CN=Configuration,DC=sevenkingdoms,DC=local
PSDrive       : AD
PSProvider    : Microsoft.ActiveDirectory.Management.dll\ActiveDirectory



PS C:\Users\robb.stark>

Estas son las versiones del esquema según la versión de Windows Server:
以下是根据 Windows Server 版本提供的架构版本:

Directorio y esquema de Active Directory
https://learn.microsoft.com/es-es/windows-server/identity/ad-ds/deploy/find-active-directory-schema

Por ejemplo, podemos observar que entre Windows Server 2019 y Windows Server 2022 no hubo modificaciones, al menos a nivel de esquema.
例如,我们可以观察到,在 Windows Server 2019 和 Windows Server 2022 之间没有修改,至少在架构级别是这样。

Entonces, en resumen debemos de quedarnos con que mientras que el directorio es donde se almacenan los objetos y sus datos, el esquema define las reglas que esos objetos deben seguir, asegurando que todo esté estructurado de manera coherente dentro de Active Directory.
因此,总而言之,我们必须保持这样一种方式:虽然目录是存储对象及其数据的位置,但架构定义了这些对象必须遵循的规则,从而确保 Active Directory 中的所有内容都以一致的方式构建。

Clases 克拉斯

Dentro del esquema del que acabamos de hablar, se definen diversas clases de objetos que organizan la información almacenada en el directorio. Cada clase no solo organiza los objetos, sino que define qué atributos puede o debe tener cada objeto dentro del directorio. Además, determina cómo se relacionan unas clases con otras. Por ejemplo, algunas de las clases más comunes son UserGroup, y Computer, cada una diseñada para representar un tipo particular de objeto dentro de la red. De esta manera podemos indicar que cada objeto del directorio activo es una instancia de una clase del esquema.
在我们刚刚讨论的模式中,定义了各种对象类,用于组织存储在目录中的信息。每个类不仅组织对象,还定义每个对象在目录中可以或应该具有的属性。此外,它还确定某些类与其他类的关系。例如,一些最常见的类是 UserGroup 和 Computer,每个类都旨在表示网络中特定类型的对象。通过这种方式,我们可以指示 Active Directory 中的每个对象都是架构中类的实例。

Además, una clase puede ser una subclase si deriva de una clase padre, lo que ocasiona que la subclase herede los atributos de la clase padre. Por ejemplo, la clase Computer es una subclase de la clase User, lo que permite que los objetos de tipo ordenador compartan atributos con los objetos de tipo usuario. Además de heredar los atributos de la clase User, la clase Computer puede tener sus propios atributos adicionales, como por ejemplo ipHost en el caso de la clase Computer.
此外,如果一个类派生自父类,则该类可以是子类,这会导致子类继承父类的属性。例如,Computer 类是 User 类的子类,它允许计算机类型对象与 User-type 对象共享属性。除了继承 User 类的属性外,Computer 类还可以具有自己的其他属性,例如 Computer 类中的 ipHost

Todas las clases existentes en Active Directory son subclases de una clase base llamada Top. La clase Top proporciona una estructura común al definir atributos esenciales que todos los objetos comparten, como ObjectClass y ObjectGUID.
Active Directory 中的所有现有类都是名为 Top 的基类的子类。Top 类通过定义所有对象共享的基本属性(如 ObjectClass 和 ObjectGUID)来提供通用结构。

El atributo ObjectClass registra una lista de todas las clases a las que pertenece un objeto, incluyendo su clase actual y todas las clases padres. Esto ayuda a categorizar y entender la jerarquía y el tipo de cada objeto. Por otro lado, ya conocemos el ObjectGUID porque los hemos mencionado antes, este atributo contiene el Globally Unique Identifier (GUID), un identificador único asignado a cada objeto en la base de datos de Active Directory. Este GUID garantiza que cada objeto pueda ser identificado de manera única.
ObjectClass 属性记录对象所属的所有类的列表,包括其当前类和所有父类。这有助于对每个对象的层次结构和类型进行分类和了解。另一方面,我们已经知道 ObjectGUID,因为我们之前已经提到过它们,此属性包含全局唯一标识符 (GUID),这是分配给 Active Directory 数据库中的每个对象的唯一标识符。此 GUID 可确保可以唯一标识每个对象。

Para finalizar, las clases pueden asociarse con clases auxiliares para heredar atributos adicionales. A diferencia de una clase principal, una clase auxiliar no define un objeto completo por sí misma; en cambio, proporciona atributos adicionales que pueden ser incorporados en otras clases principales. En otras palabras, las clases auxiliares no crean instancias de objetos en el directorio, sino que extienden las capacidades de otras clases al asociarse con ellas.
最后,类可以与帮助程序类相关联以继承其他属性。与父类不同,帮助程序类本身不定义整个对象;相反,它提供了可以合并到其他 Core 类中的其他属性。换句话说,帮助程序类不会实例化目录中的对象,而是通过与其他类关联来扩展它们的功能。

Por ejemplo, la clase auxiliar Security-Principal define atributos como por ejemplo el SAMAccountName, que es fundamental para la gestión de cuentas. Este atributo está presente en objetos como usuarios y grupos, que pertenecen a las clases User y Group, respectivamente. Esto significa que la clase auxiliar Security-Principal se asocia con las clases User y Group para proporcionarles este atributo adicional (entre otros mas). Es importante destacar que las clases auxiliares no aparecen de manera directa en la propiedad ObjectClass del objeto.
例如,Security-Principal 帮助程序类定义 SAMAccountName 等属性,这对于帐户管理至关重要。此属性存在于对象(如 users 和 groups)中,它们分别属于 User 和 Group 类。这意味着 Security-Principal 帮助程序类与 User 和 Group 类相关联,以便为它们提供此附加属性(以及其他属性)。重要的是,帮助程序类不会直接出现在对象的 ObjectClass 属性中。

Por último, un par de ejemplos del atributo ObjectClass en un objeto usuario y un objeto ordenador:
最后,用户对象和计算机对象上的 ObjectClass 属性的几个示例:

PowerShell

PS C:\Users\robb.stark> Get-DomainUser robb.stark -Properties objectclass | select -ExpandProperty objectclass
top
person
organizationalPerson
user
PS C:\Users\robb.stark>
PowerShell

PS C:\Users\robb.stark> Get-DomainComputer winterfell -Properties objectclass | select -ExpandProperty objectclass
top
person
organizationalPerson
user
computer
PS C:\Users\robb.stark>

Podemos observar como el objeto de ordenador posee la clase de Computer, tal y como habíamos comentado previamente.
正如我们之前提到的,我们可以看到 computer 对象如何具有 Computer 类。

Directorio y esquema de Active Directory
Windows Security Internals: A Deep Dive into Windows Authentication, Authorization, and Auditing – James Forshaw
Windows 安全内部原理:深入了解 Windows 身份验证、授权和审计 – James Forshaw

Definición de clases y atributos del esquema
定义架构类和属性

Podemos encontrar el esquema en la siguiente ruta del directorio::
我们可以在以下目录路径中找到 schema:

Plaintext 明文

cn=schema,cn=Configuration,dc=sevenkingdoms,dc=local
Directorio y esquema de Active Directory

Nota: aunque en el DN podamos visualizar que parece que el Schema NC forma parte del Configuration NC no es así, son particiones totalmente independientes.
注意:虽然在 DN 中我们可以看到 Schema NC 似乎是配置 NC 的一部分,但事实并非如此,它们是完全独立的分区。

Aquí podemos encontrar todas las definiciones de las clases y atributos del directorio activo.
在这里,我们可以找到 Active Directory 的类和属性的所有定义。

En el esquema de Active Directory, como se muestra en la imagen, podemos ver que está compuesto por dos tipos de objetos principales: classSchema y attributeSchema. Estos objetos definen, respectivamente, las clases de objetos (como por ejemplo he mencionado previamente la clase User o Computer) y los atributos (como SID, objectGUID, etc.) que los objetos pueden tener.
在 Active Directory 架构中,如图所示,我们可以看到它由两种主要类型的对象组成:classSchema 和 attributeSchema。这些对象分别定义对象类(如上面的 User 或 Computer 类)和对象可以具有的属性(如 SID、objectGUID 等)。

Vamos a ver un ejemplo para entenderlo bien, aquí vemos el objeto de mi usuario actual:
让我们看一个例子来更好地理解它,这里我们看到我当前用户的对象:

PowerShell

PS C:\Users\robb.stark> Get-DomainUser -Identity robb.stark


logoncount            : 5399
badpasswordtime       : 12/31/1600 4:00:00 PM
description           : Robb Stark
l                     : Winterfell
distinguishedname     : CN=robb.stark,CN=Users,DC=north,DC=sevenkingdoms,DC=local
objectclass           : {top, person, organizationalPerson, user}
lastlogontimestamp    : 7/24/2024 3:29:17 AM
name                  : robb.stark
objectsid             : S-1-5-21-2645935458-595591891-1233751793-1113
samaccountname        : robb.stark
lastlogon             : 7/31/2024 2:42:08 PM
codepage              : 0
samaccounttype        : USER_OBJECT
accountexpires        : NEVER
countrycode           : 0
whenchanged           : 7/24/2024 10:29:17 AM
instancetype          : 4
objectguid            : 73fde0a4-2653-4296-9a6a-fc1e51b399c3
sn                    : Stark
lastlogoff            : 12/31/1600 4:00:00 PM
objectcategory        : CN=Person,CN=Schema,CN=Configuration,DC=sevenkingdoms,DC=local
dscorepropagationdata : {6/9/2024 4:19:47 PM, 6/9/2024 4:14:24 PM, 6/9/2024 4:14:21 PM, 1/1/1601 6:16:32 PM}
givenname             : Robb
admincount            : 1
memberof              : {CN=Stark,CN=Users,DC=north,DC=sevenkingdoms,DC=local, CN=Administrators,CN=Builtin,DC=north,DC=sevenkingdoms,DC=local}
whencreated           : 6/9/2024 4:01:39 PM
badpwdcount           : 0
cn                    : robb.stark
useraccountcontrol    : NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
usncreated            : 13367
primarygroupid        : 513
pwdlastset            : 6/9/2024 10:28:18 AM
usnchanged            : 65571



PS C:\Users\robb.stark>

Podemos ver que el objeto por un lado:
我们可以看到,一方面,对象:

  • Pertenece a la clase User (se puede ver en el atributo objectclass)
    它属于 User 类(您可以在 objectclass 属性中看到它)
  • Posee distintos atributos: description, objectclass, samaccountname, etc, etc.
    Posee distintos atributos: description, objectclass, samaccountname, etc, etc.

Pues todo esto, tanto la clase User, como cada atributo que podemos visualizar, están definidos en el esquema. Por ejemplo, la clase User:
嗯,所有这些,包括 User 类和我们可以可视化的每个属性,都在 schema 中定义。例如,User 类:

Directorio y esquema de Active Directory

Ahí está. Ahora, el atributo por ejemplo, samaccountname:
他在那儿。现在,属性例如 samaccountname:

Directorio y esquema de Active Directory

Está ahí también. 它也在那里。

Lo dicho, en el esquema está todo todo definido.
正如我所说,一切都在 scheme 中定义。

Es gracioso porque los propios objetos atributos (attributeSchema) poseen atributos. Aunque en este caso a estos “segundos atributos” vamos a llamarlos propiedades.
这很有趣,因为 attributeSchema 对象本身具有属性。尽管在这种情况下,我们将这些称为 “second attributes” 属性。

Estas propiedades de los atributos también se definen en el esquema y podemos encontrarlos, por ejemplo, una propiedad de los atributos sería cn:
属性的这些属性也在 schema 中定义,我们可以找到它们,例如,属性的属性将是 cn

Directorio y esquema de Active Directory

Pues esta propiedad también la podemos encontrar en el esquema porque al final, es un atributo del objeto de tipo attributeSchema:
嗯,这个属性也可以在架构中找到,因为最后,它是 attributeSchema 类型的对象的一个属性:

Directorio y esquema de Active Directory

Propiedades 性能

Como ya hemos visto, cada clase puede tener varias propiedades o atributos; por ende, los objetos (instancias de las clases) poseen varias propiedades o atributos. En general, cualquier usuario del dominio tiene permisos para leer la mayoría de los objetos del dominio, pero existen excepciones importantes. Un ejemplo evidente es que las contraseñas de los usuarios no pueden ser leídas por razones obvias (de seguridad).
正如我们已经看到的,每个类可以有多个属性或属性;因此,对象(类的实例)具有多个属性或特性。通常,域中的任何用户都有权读取域中的大多数对象,但也有重要的例外。一个明显的示例是,由于明显的 (安全) 原因,无法读取用户密码。

Por ejemplo, entre las propiedades definidas en la base de datos, se encuentran UserPassword y UnicodePwd. Aunque estas propiedades existen, no pueden ser leídas por ningún usuario. Solo se pueden sobrescribir en casos como el cambio de contraseña, pero no se puede acceder a sus valores almacenados.
例如,数据库中定义的属性包括 UserPassword 和 UnicodePwd。尽管这些属性存在,但任何用户都无法读取它们。它们只能在更改密码等情况下被覆盖,但无法访问其存储的值。

Este tipo de restricciones sobre las propiedades sensibles no solo aplica a las contraseñas. En Active Directory, hay otras propiedades que contienen información confidencial, y su acceso debe ser controlado de manera similar. Para proteger estos datos sensibles, Active Directory utiliza un atributo llamado SearchFlags, que se define de manera individual para cada propiedad dentro del esquema.
这些对敏感属性的限制不仅适用于密码。在 Active Directory 中,还有其他包含敏感信息的属性,应以类似的方式控制对它们的访问。为了保护这些敏感数据,Active Directory 使用一个名为 SearchFlags 的属性,该属性是为架构中的每个属性单独定义的。

Por ejemplo, el valor 128 en SearchFlags marca una propiedad como confidencial, lo que significa que, además de los permisos de lectura generales, el usuario debe tener el derecho de CONTROL_ACCESS para poder leerla.
例如,SearchFlags 中的值 128 将属性标记为机密,这意味着除了常规读取权限外,用户还必须具有CONTROL_ACCESS权限才能读取它。

Podemos obtener las propiedades marcadas como confidenciales a través de la siguiente consulta:
我们可以通过以下查询获取标记为机密的属性:

PowerShell

PS C:\Users\robb.stark> Get-ADObject -LDAPFilter "(searchflags:1.2.840.113556.1.4.803:=128)" -SearchBase "CN=Schema,CN=Configuration,DC=sevenkingdoms,DC=local" | Select Name

name
----
ms-TPM-Owner-Information-Temp
ms-Kds-KDF-AlgorithmID
ms-Kds-KDF-Param
ms-Kds-SecretAgreement-AlgorithmID
ms-Kds-SecretAgreement-Param
ms-Kds-PublicKey-Length
ms-Kds-PrivateKey-Length
ms-Kds-RootKeyData
ms-Kds-Version
ms-Kds-DomainID
ms-Kds-UseStartTime
ms-Kds-CreateTime
ms-FVE-RecoveryPassword
ms-FVE-KeyPackage
ms-TPM-OwnerInformation
ms-DS-Transformation-Rules-Compiled
ms-PKI-Credential-Roaming-Tokens
ms-DS-Issuer-Certificates
ms-PKI-RoamingTimeStamp
ms-PKI-DPAPIMasterKeys
ms-PKI-AccountCredentials
UnixUserPassword


PS C:\Users\robb.stark>

De la consulta utilizada puede que lo único que no se entienda es el conjunto de números 1.2.840.113556.1.4.803. Este conjunto de números corresponde a un OID (Object Identifier) y se asocia a una regla de coincidencia en LDAP. Podéis obtener mas información de ello aquí: LDAP Matching Rules (extensibleMatch)
从使用的查询来看,唯一不理解的是数字集 1.2.840.113556.1.4.803。这组数字对应于一个 OID(对象标识符),并与 LDAP 中的匹配规则相关联。您可以在此处了解更多信息:LDAP 匹配规则 (extensibleMatch)

Además, podemos observar la operación :=, esta operación básicamente busca por coincidencia. Podemos ver mas tipos de operaciones aquí: Search Filter Syntax
另外,我们可以观察 := 操作,这个操作基本上是巧合搜索。我们可以在这里看到更多类型的操作:Search Filter 语法

Para asegurar un control más preciso sobre algunas propiedades sensibles, Active Directory también implementa el concepto de Validated Writes. Estas propiedades requieren que se cumplan ciertas condiciones específicas antes de poder ser modificadas. Por ejemplo, cuando se quiere cambiar un atributo relacionado con los servicios de una cuenta (como el nombre de inicio de sesión), Active Directory verifica que el cambio cumpla con ciertas reglas o validaciones. Esto garantiza que las modificaciones no comprometan la integridad del sistema o los datos del directorio.
为了确保对某些敏感属性进行更精确的控制,Active Directory 还实施了验证写入的概念。这些属性需要满足某些特定条件才能修改。例如,当您想要更改与账户服务相关的属性(例如登录名)时,Active Directory 会验证更改是否满足某些规则或验证。这可确保修改不会损害系统或目录数据的完整性。

Básicamente, Validated Writes actúa como una capa adicional de seguridad que impide que se realicen cambios incorrectos o no autorizados en propiedades importantes, asegurando que el cambio propuesto es válido y seguro antes de permitirlo.
基本上,验证写入充当额外的安全层,防止对重要属性进行不正确或未经授权的更改,确保在允许之前建议的更改有效且安全。

Por otro lado, para simplificar la gestión de permisos sobre propiedades, Active Directory ofrece la posibilidad de utilizar Property Sets. Un Property Set es un conjunto de propiedades relacionadas que pueden ser gestionadas de manera conjunta en lugar de individualmente. En lugar de asignar permisos para cada propiedad por separado, lo cual puede ser una tarea tediosa en un entorno con muchas propiedades, los administradores pueden agrupar propiedades que tengan una relación funcional y asignar permisos a todo el conjunto a la vez.
另一方面,为了简化属性权限的管理,Active Directory 提供了使用属性集的可能性。属性集是一组可以联合管理而不是单独管理的相关属性。管理员可以对具有功能关系的属性进行分组,并立即为整个属性分配权限,而不是单独为每个属性分配权限(这在具有许多属性的环境中可能是一项繁琐的任务)。

Por ejemplo, un Property Set podría incluir todas las propiedades relacionadas con la gestión de cuentas de usuario, como el nombre, dirección de correo electrónico y el identificador de inicio de sesión. Esto es especialmente útil en entornos grandes o complejos, donde hay muchas propiedades que administrar. Los Property Sets permiten una administración más eficiente y menos propensa a errores en la configuración de permisos.
例如,属性集可能包括与用户帐户管理相关的所有属性,例如名称、电子邮件地址和登录 ID。这在需要管理许多属性的大型或复杂环境中特别有用。属性集允许在权限设置中实现更高效且不易出错的管理。

Conclusión 结论

Pffff, tremenda chapa ha sido en realidad pero es que el directorio y esquema de un directorio activo no es poca cosa. En el día a día por supuesto que puede que no tengas que tener todas estas cosas en cuenta, me refiero, si te encuentras una credencial de administrador en un recurso compartido y comprometes el dominio, pues poca teoría has tenido que aplicar xD.
哎呀,这在现实中是一个巨大的徽章,但 Active Directory 的目录和方案可不是一件小事。当然,在日常工作中,您可能不必考虑所有这些事情,我的意思是,如果您在共享资源上找到管理员凭证并破坏了域,那么您几乎没有应用 xD 的理论。

En cualquier caso conocer toda esta información o al menos, conocer su existencia, puede venir genial cuando se quiere entender en profundidad el concepto de directorio activo y como realmente funciona y se estructura todo.
无论如何,当您想深入了解 Active Directory 的概念以及所有内容的实际工作和结构时,了解所有这些信息或至少了解其存在可能会非常有用。

Espero que os haya gustado y se agradece si lo compartís <3.
我希望你喜欢它,如果你分享它 <3,我们将不胜感激。

Referencias 引用

原文始发于Juan Antonio González Mena:Directorio y esquema de Active Directory

版权声明:admin 发表于 2024年10月19日 上午10:40。
转载请注明:Directorio y esquema de Active Directory | CTF导航

相关文章