Identificar los activos Tier 0: inventario completo de AD
Inventaríe todos los activos Tier 0 de Active Directory: DC, AD CS, Entra Connect, copias de seguridad, hipervisores y los grupos y ACL que otorgan control indirecto.
Todos los controles Tier 0 que despliegue después, desde las GPO de denegación de inicio de sesión hasta los silos de autenticación, protegen únicamente la lista de activos que les proporcione. La mayoría de los proyectos de niveles fracasan no porque los controles sean débiles, sino porque la lista es incorrecta: el servidor de copias de seguridad que puede restaurar NTDS.dit, el vCenter que aloja los DC, el grupo del service desk que puede restablecer la contraseña de un Domain Admin mediante una ACE olvidada. A los atacantes no les importa qué activos etiquetó como Tier 0. Siguen las relaciones de control hasta que una llega al dominio.
Esta guía le ofrece un método repetible para construir ese inventario: la definición que debe aplicar, las categorías que la mayoría de los equipos pasan por alto, el PowerShell para enumerarlas y cómo registrar el resultado para que los controles posteriores puedan consumirlo. Profundiza más que la visión general de Tier 0 y acceso privilegiado, que conviene leer primero para entender el propio modelo de niveles.
La definición: control, no importancia
Un sistema es Tier 0 si comprometerlo permite a un atacante tomar el control de Active Directory. Ese control puede ser directo (inicio de sesión en un DC, pertenencia a Domain Admins) o indirecto (escribir una GPO vinculada a la OU Domain Controllers, emitir un certificado que autentica como cualquier usuario, leer el disco virtual de un DC). La prueba es transitiva: si A controla B y B es Tier 0, entonces A es Tier 0.
De ello se derivan dos consecuencias. Primero, lo «crítico para el negocio» es irrelevante: su ERP es importante, pero normalmente es Tier 1. Segundo, el Tier 0 es más grande que la OU Domain Controllers, y el objetivo del inventario es encontrar todo lo que contiene para después reducirlo deliberadamente eliminando las rutas de control que no necesita.
Medir: las categorías de activos
Recorra las categorías siguientes. La mayoría pueden descubrirse desde el propio AD.
Controladores de dominio y su plataforma
Todos los DC grabables y los RODC, además de todo lo que hay por debajo: hosts de hipervisor, el plano de administración de la virtualización (vCenter, SCVMM, administradores de clústeres Hyper-V), las cabinas SAN o de almacenamiento que contienen los discos de los DC, la administración fuera de banda (iLO, iDRAC) de los DC físicos y el repositorio de copias de seguridad de los DC.
# Todos los DC del bosque, con sistema operativo e indicador RODC
(Get-ADForest).Domains | ForEach-Object {
Get-ADDomainController -Filter * -Server $_ |
Select-Object Domain, HostName, OperatingSystem, IsReadOnly, Site
}Infraestructura de identidad
- AD CS: todas las CA empresariales, más la raíz sin conexión. Una CA que emite certificados de autenticación de cliente puede fabricar un inicio de sesión para cualquier cuenta.
- Los servidores AD FS y cualquiera que pueda leer su clave de firma de tokens.
- Los servidores Microsoft Entra Connect / Cloud Sync. La cuenta de sincronización tiene derechos de replicación (y la sincronización de hash de contraseñas lee todos los hashes).
- Las plataformas PAM y de bóveda (CyberArk, Delinea y similares) que almacenan o inyectan credenciales de Tier 0.
$config = (Get-ADRootDSE).configurationNamingContext
# CA empresariales registradas en el bosque
Get-ADObject -SearchBase "CN=Enrollment Services,CN=Public Key Services,CN=Services,$config" `
-Filter 'objectClass -eq "pKIEnrollmentService"' -Properties dNSHostName |
Select-Object Name, dNSHostName
# Huella de Entra Connect: cuentas de sincronización y el objeto de equipo de Seamless SSO
Get-ADUser -Filter 'SamAccountName -like "MSOL_*" -or SamAccountName -like "Sync_*"' -Properties Description |
Select-Object SamAccountName, Description
Get-ADComputer -Filter 'Name -eq "AZUREADSSOACC"' -Properties PasswordLastSetLa Description de las cuentas MSOL_ normalmente indica el servidor que ejecuta Entra Connect. Ese servidor es Tier 0.
Planos de administración que llegan al Tier 0
Todo lo que ejecuta código en un equipo Tier 0 es Tier 0: servidores de sitio SCCM/MECM cuyas colecciones incluyen DC, Intune si gestiona las PAW, consolas EDR con shell remoto o ejecución de scripts en los DC, herramientas de parcheo, agentes de monitorización que se ejecutan como SYSTEM con envío centralizado de scripts, y las PAW y hosts de salto usados para administrar el Tier 0. Descubrirlos es sobre todo un ejercicio de entrevistas: enumere cada agente instalado en un DC y pregunte quién controla su consola.
# Servicios y sus cuentas de ejecución en cada DC, punto de partida para descubrir agentes
Get-ADDomainController -Filter * | ForEach-Object {
Get-CimInstance Win32_Service -ComputerName $_.HostName |
Where-Object { $_.PathName -notmatch '\\Windows\\' } |
Select-Object PSComputerName, Name, StartName, PathName
}Auditar: cuentas, grupos y control indirecto
Grupos privilegiados integrados
Parta de los SID conocidos en lugar de los nombres, que varían según el idioma:
| Grupo | SID / RID |
|---|---|
| Administrators | S-1-5-32-544 |
| Account Operators | S-1-5-32-548 |
| Server Operators | S-1-5-32-549 |
| Print Operators | S-1-5-32-550 |
| Backup Operators | S-1-5-32-551 |
| Domain Admins | RID 512 |
| Domain Controllers | RID 516 |
| Schema Admins | RID 518 (dominio raíz) |
| Enterprise Admins | RID 519 (dominio raíz) |
| Group Policy Creator Owners | RID 520 |
| Key Admins / Enterprise Key Admins | RID 526 / 527 |
Añada DnsAdmins (sin RID fijo) y cualquier grupo de producto con derechos a nivel de dominio, como Exchange Windows Permissions de Exchange en implementaciones antiguas.
$domain = Get-ADDomain
$root = Get-ADDomain -Identity (Get-ADForest).RootDomain
$d = $domain.DomainSID.Value
$r = $root.DomainSID.Value
$targets = @(
'S-1-5-32-544','S-1-5-32-548','S-1-5-32-549','S-1-5-32-550','S-1-5-32-551',
"$d-512","$d-516","$d-520","$d-526" |
ForEach-Object { [pscustomobject]@{ Sid = $_; Server = $domain.DNSRoot } }
) + @(
# Schema Admins, Enterprise Admins y Enterprise Key Admins solo existen en el dominio raíz del bosque
"$r-518","$r-519","$r-527" |
ForEach-Object { [pscustomobject]@{ Sid = $_; Server = $root.DNSRoot } }
)
foreach ($t in $targets) {
$g = Get-ADGroup -Identity $t.Sid -Server $t.Server
Get-ADGroupMember -Identity $g -Server $t.Server -Recursive |
Select-Object @{n='Group';e={$g.Name}}, Name, objectClass, distinguishedName
}Cada miembro devuelto es una cuenta Tier 0, incluidas las cuentas de servicio y los miembros de grupos anidados que no esperaba. -Recursive devuelve solo los usuarios y equipos finales, así que enumere los propios grupos anidados con una consulta no recursiva si los necesita.
Control indirecto mediante ACL y GPO
Aquí es donde la mayoría de los inventarios quedan incompletos. Busque:
- Derechos de replicación en la raíz del dominio (
DS-Replication-Get-Changes-All), tratados en encontrar derechos DCSync. - Acceso de escritura a GPO vinculadas a la OU Domain Controllers o a la raíz del dominio, y derechos de escritura de
gPLinksobre esos contenedores. - Propietarios y derechos de escritura sobre
AdminSDHolder, las OU Tier 0 y los objetos de usuario Tier 0 (restablecer contraseña,GenericAll,WriteDacl,WriteOwner). - Lectores de secretos Tier 0: entidades de seguridad autorizadas a recuperar contraseñas de gMSA usadas en servidores Tier 0 y entidades que pueden leer las contraseñas LAPS de equipos Tier 0.
# GPO vinculadas a la OU Domain Controllers y quién puede editarlas
$dcOu = (Get-ADDomain).DomainControllersContainer
(Get-GPInheritance -Target $dcOu).GpoLinks | ForEach-Object {
$gpoName = $_.DisplayName
Get-GPPermission -Guid $_.GpoId -All |
Where-Object { $_.Permission -in 'GpoEdit','GpoEditDeleteModifySecurity' } |
Select-Object @{n='GPO';e={$gpoName}}, @{n='Trustee';e={$_.Trustee.Name}}, Permission
}
# Entidades que pueden leer contraseñas de gMSA, para las gMSA que se ejecutan en servidores Tier 0
Get-ADServiceAccount -Filter * -Properties PrincipalsAllowedToRetrieveManagedPassword |
Select-Object Name, PrincipalsAllowedToRetrieveManagedPasswordLa revisión manual de ACL no escala más allá de unos pocos contenedores. Ejecute BloodHound o una herramienta de grafos equivalente, marque sus objetos Tier 0 conocidos y enumere todas las entidades con una ruta hacia ellos. El flujo de trabajo se describe en gestión de rutas de ataque.
Omisiones habituales
Evaluación tras evaluación, los mismos activos se quedan fuera del Tier 0 una y otra vez. Compruebe cada uno de forma explícita.
Identidad en la nube con una ruta de vuelta al entorno local. Si Entra Connect se ejecuta con escritura diferida de contraseñas (password writeback), o si los administradores de la nube pueden gestionar el servidor Entra Connect mediante Azure Arc, Intune o la consola de una VM alojada en la nube, algunos roles de la nube pueden llegar al Tier 0. Enumere quién tiene Global Administrator, Hybrid Identity Administrator y los propietarios de la suscripción que aloja cualquier DC o servidor de sincronización, y trate esos roles como parte del inventario.
DnsAdmins y derechos sobre zonas DNS. La pertenencia a DnsAdmins, o el acceso de escritura a la configuración del servidor DNS, ha permitido históricamente la ejecución de código en los DC mediante la configuración de plugins DNS a nivel de servidor. Incluso con el parche aplicado, el acceso de escritura a zonas integradas en AD permite a un atacante redirigir el tráfico de los nombres de los DC. Mantenga el grupo vacío o solo con miembros Tier 0.
Plantillas de certificado y objetos de PKI. El servidor de CA no es el único activo de AD CS. El acceso de escritura a plantillas de certificado, al objeto NTAuthCertificates o al contenedor Public Key Services de la partición de configuración puede producir una plantilla que autentica como un Domain Admin. Estos objetos residen en la partición de configuración y son fáciles de pasar por alto en una revisión basada en OU.
Consolas de copia de seguridad e instantáneas. Cualquiera que pueda restaurar el estado del sistema de un DC, montar una instantánea o exportar una VM desde una copia de seguridad puede leer NTDS.dit. Esto incluye a los operadores de copias del producto de backup, no solo al grupo Backup Operators de AD.
Cuentas de servicio que se ejecutan en los DC. Los agentes de monitorización, copia de seguridad y EDR suelen ejecutarse con una cuenta de dominio cuya contraseña está almacenada en decenas de servidores Tier 1. La cuenta es Tier 0 porque se ejecuta en los DC, así que todo servidor que almacena su contraseña pasa a ser también Tier 0. Sustituya esas cuentas por SYSTEM local, una gMSA restringida a los DC o una cuenta dedicada por nivel.
Antiguos administradores. Antiguos administradores con adminCount=1, ACE obsoletas concedidas por nombre hace años y cuentas deshabilitadas que siguen siendo propietarias de objetos Tier 0 mantienen vivas las rutas de control. La propiedad en particular concede WriteDacl implícito, así que compruebe el Owner de los objetos Tier 0, no solo su DACL.
Aplicar: registrar y contener el inventario
Un inventario que vive en una hoja de cálculo se desvía en cuestión de semanas. Codifíquelo en AD para que las directivas puedan apuntar a él:
- Cree una estructura de OU dedicada a Tier 0 (por ejemplo
OU=Tier0con los hijosAccounts,Groups,Servers,Devices) y mueva a ella todos los objetos de usuario, grupo y servidor Tier 0. Bloquee la herencia solo si ha revisado lo que elimina. - Cree grupos como
Tier0-ServersyTier0-Accountsque contengan los objetos de equipo y de usuario, para que las GPO de denegación de inicio de sesión y los silos hagan referencia a grupos, no a listas. - Restrinja quién puede modificar ese árbol de OU exclusivamente a los administradores Tier 0. Elimine las delegaciones heredadas de los grupos del service desk y de Tier 1.
- Para cada ruta indirecta encontrada, decida: eliminarla (la respuesta habitual) o aceptarla y trasladar la entidad que controla al Tier 0.
# Etiquetar los servidores Tier 0 para que las directivas posteriores puedan apuntar a ellos
$t0 = Get-ADGroup 'Tier0-Servers'
'DC01','DC02','PKI-ISSUING01','ENTRACONNECT01' | ForEach-Object {
Add-ADGroupMember -Identity $t0 -Members (Get-ADComputer $_)
}Verificar
Verificar significa demostrar que no existen rutas de control sin explicar hacia el conjunto etiquetado:
# Objetos protegidos por SDProp: todo lo que aparezca aquí y no esté en su lista Tier 0 requiere explicación
Get-ADObject -LDAPFilter '(adminCount=1)' -Properties objectClass, whenChanged |
Select-Object Name, objectClass, whenChanged, DistinguishedName
# OU Tier 0: ACE no heredadas concedidas a entidades ajenas al Tier 0
$ou = "OU=Tier0,$((Get-ADDomain).DistinguishedName)"
(Get-Acl "AD:$ou").Access | Where-Object { -not $_.IsInherited } |
Select-Object IdentityReference, ActiveDirectoryRights, ObjectTypeLas cuentas con adminCount=1 obsoleto son habituales cuando las personas abandonan los grupos privilegiados. Borre adminCount y restaure la herencia en esas cuentas una vez confirmado que ya no pertenecen a ningún grupo protegido. En la herramienta de grafos, la comprobación es sencilla: el número de entidades no Tier 0 con una ruta hacia Domain Admins debe tender a cero, y cada ruta restante debe tener un ticket asociado.
Qué rompe
- Herramientas de administración compartidas: una vez que los DC se declaran Tier 0, la consola corporativa de SCCM, EDR o monitorización que los gestiona se eleva al Tier 0 (junto con sus administradores) o debe dejar de gestionar los DC. Ambas opciones cambian la titularidad operativa y requieren una herramienta o un ámbito separados para el Tier 0.
- Operaciones de virtualización: los administradores de VMware o Hyper-V que pueden gestionar las VM de los DC se convierten en administradores Tier 0. Cuente con resistencia y planifique un clúster dedicado o un ámbito de permisos restringido sobre las VM de los DC.
- Derechos delegados del service desk: mover las cuentas Tier 0 a una OU protegida elimina las delegaciones de restablecimiento de contraseña y desbloqueo que se les aplicaban antes. Los administradores que bloqueen su cuenta Tier 0 necesitarán ahora a un compañero Tier 0, no al service desk.
- Restauraciones de copias de seguridad: restringir la plataforma de backup a operadores Tier 0 puede ralentizar las restauraciones rutinarias de archivos si la misma consola da servicio a ambos. Separe el trabajo de copia de seguridad de los DC en una infraestructura dedicada, como se describe en proteger las copias de seguridad de AD frente al ransomware.
Lecturas relacionadas: la visión general de Tier 0 y acceso privilegiado para el área completa, estaciones de trabajo de acceso privilegiado para los dispositivos que administran este inventario, y seguridad de ACL y objetos para auditar en profundidad las rutas de control indirecto.
Preguntas frecuentes
¿Un hipervisor que aloja un controlador de dominio es realmente Tier 0?
Sí. Cualquiera con control administrativo sobre el hipervisor o su plano de administración (vCenter, SCVMM, administradores de hosts Hyper-V) puede crear una instantánea del DC, montar su disco virtual sin conexión y extraer NTDS.dit con todos los hashes de contraseña del dominio. No interviene ningún permiso de Active Directory, así que la auditoría de AD no lo verá. Trate como Tier 0 los hosts, sus servidores de administración, su almacenamiento y las cuentas que los administran, o traslade los DC a un clúster dedicado y aislado.
¿SCCM o Intune deben ser Tier 0?
Si la plataforma despliega software o scripts en controladores de dominio, PAW o cualquier otro servidor Tier 0, es Tier 0, porque un despliegue se ejecuta como SYSTEM en el destino. La mayoría de las organizaciones lo resuelven excluyendo los equipos Tier 0 del ámbito de SCCM o Intune corporativo y gestionándolos con una herramienta separada y más pequeña, en lugar de elevar toda la plataforma de administración empresarial al Tier 0.
¿Con qué frecuencia debe actualizarse el inventario Tier 0?
Vuelva a ejecutar las partes automatizadas (grupos privilegiados, derechos DCSync, GPO vinculadas a OU Tier 0, objetos de AD CS y Entra Connect) al menos una vez al mes y tras cada cambio importante, como una nueva CA, un nuevo producto de copia de seguridad o una migración de bosque. Las herramientas de rutas de ataque como BloodHound deben ejecutarse con la misma cadencia, porque las rutas de control indirecto aparecen discretamente a través del trabajo de delegación habitual.
Identificar los activos Tier 0: inventario completo de AD