Active Directory Hardening: 10 Critical Steps
In the modern cybersecurity landscape, Active Directory (AD) is not just a directory service; it is the cornerstone of identity and access management for the vast majority of enterprises. Its central role makes it a prime target for malicious actors. A compromised AD environment can lead to catastrophic data breaches, operational shutdowns, and immense financial and reputational damage. Therefore, a proactive and systematic approach to AD Hardening is not merely a best practice—it is an absolute necessity for any organization serious about its security posture. This guide will walk you through ten critical steps to fortify your Active Directory, significantly reducing your attack surface and building a resilient defense.
Understanding the Stakes: Why AD Hardening is Non-Negotiable
Before diving into the steps, it’s crucial to understand what you’re defending against. Attackers don’t just want to steal a single password; they want to achieve “domain dominance,” where they control the entire AD forest. Techniques like Kerberos attacks, such as Golden Ticket and Silver Ticket attacks, allow them to forge authentication tickets. Lateral movement lets them jump from one compromised workstation to critical servers. A hardened AD environment makes these techniques exponentially more difficult and time-consuming to execute, increasing the likelihood of detection and prevention.
Step 1: Secure Administrative Access and Implement the Principle of Least Privilege
The most common vector for AD compromise is the misuse of privileged accounts. The first and most critical step in AD Hardening is to lock down administrative access.
- Implement the “Two-Tier” or “Three-Tier” Administrative Model: Separate administrative duties. Standard users should never have admin rights to their workstations. Tier 0 (Domain Admins, etc.) should only log into Tier 0 systems (Domain Controllers). Tier 1 (Server Admins) should not have Domain Admin rights, and so on.
- Use Dedicated Administrative Accounts: Every IT admin should have a standard user account for daily tasks (email, browsing) and a separate, privileged account for administrative work. This limits exposure to credential theft attacks like phishing.
- Leverage Privileged Access Workstations (PAWs): Provide hardened, dedicated workstations from which administrators perform their privileged tasks. These systems have strict application control and are isolated from internet and email threats.
- Enforce Multi-Factor Authentication (MFA) for All Admin Accounts: This is arguably the single most effective control. A stolen password is useless without the second factor. Enforce MFA not just for interactive logins but also for VPN and other remote access methods.
Step 2: Harden and Monitor Domain Controllers
Domain Controllers (DCs) are the crown jewels of your AD. A compromise here equals a full domain compromise.
- Physical and Logical Isolation: DCs should run on dedicated, hardened servers. Uninstall any unnecessary roles, features, or applications. They should not be used for file sharing, print services, or any other secondary function.
- Strict Network Security: Implement firewall rules to restrict access to DCs. Only necessary ports (e.g., 88 for Kerberos, 389/636 for LDAP/LDAPS, 53 for DNS) should be open from specific, authorized subnets.
- Enable Advanced Auditing: Configure audit policies using Group Policy to log critical events like account logon/logoff, account management, and directory service access. Centralize these logs in a SIEM for analysis and alerting.
Step 3: Implement Robust Account Policies
Weak account policies are an open invitation for brute-force and password spraying attacks.
- Enforce Strong Password Complexity: Move beyond basic complexity requirements. Mandate a minimum password length of 14+ characters. Consider using passphrases.
- Apply Custom Password Filters: Use tools to ban common passwords, patterns based on the user’s name, and other weak variants.
- Configure Account Lockout Policies: Implement a reasonable account lockout threshold (e.g., 10 invalid attempts) with a long enough duration to slow down automated attacks, but not so long as to cause denial-of-service for legitimate users.
- Regularly Review and Clean Service Accounts: Service accounts with weak passwords or excessive permissions are a major risk. Use Group Managed Service Accounts (gMSAs) where possible, as they manage their own passwords.
Example Account Policy Settings via Group Policy
| Policy Setting | Recommended Value | Purpose |
|---|---|---|
| Enforce password history | 24 passwords remembered | Prevents password reuse |
| Maximum password age | 90 days (or align with NIST 800-63B) | Forces periodic password changes |
| Minimum password length | 14 characters | Increases resistance to brute-force |
| Account lockout threshold | 10 invalid logon attempts | Mitigates brute-force attacks |
| Reset account lockout counter after | 30 minutes | Balances security and usability |
Step 4: Leverage Advanced Group Policy for Security Configuration
Group Policy is your most powerful tool for centralized AD Hardening and attack surface reduction. It allows you to enforce security settings across your entire domain.
- Harden Client and Server OS Configurations: Deploy security templates that configure settings for User Account Control (UAC), Windows Firewall, SMB signing, and LSASS protection.
- Restrict PowerShell Usage: While powerful, PowerShell can be abused by attackers. Use Group Policy to enable Constrained Language Mode, script block logging, and transcription to monitor for malicious activity.
- Control Software and Device Installation: Use AppLocker or Windows Defender Application Control (WDAC) policies to create a whitelist of allowed applications, preventing the execution of unauthorized or malicious software.
For detailed security baselines, you can refer to the Microsoft Security Baselines.
Step 5: Protect Critical AD Objects and Schemas
Certain groups and accounts in AD are so powerful that they require an extra layer of protection.
- Implement the Active Directory Administrative Tier Model: This model, as recommended by Microsoft, logically separates your AD into Tiers (0, 1, 2) and controls authentication between them, preventing a lower-tier admin from escalating to a higher tier.
- Use the Protected Users Security Group: Place highly privileged accounts and critical service accounts into the “Protected Users” group. This group enforces stronger authentication protocols and prevents the use of weaker credential types, making Kerberos attacks like Pass-the-Hash more difficult.
- Enable Authentication Policies and Silos: A more advanced feature, Authentication Policy Silos, allows you to restrict which computers a user can log into with their privileged credentials, containing a potential breach.
Step 6: Secure Kerberos Authentication
The Kerberos protocol is the primary authentication method in AD, but it has known vulnerabilities that attackers exploit.
- Enforce LDAP Signing and Channel Binding: This prevents relay attacks where an attacker intercepts and reuses authentication traffic. Set `LDAPServerIntegrity` and `LDAPChannelBinding` registry keys on your DCs to require these protections.
- Configure Kerberos Armoring (FAST): Kerberos armoring, or Flexible Authentication Secure Tunneling (FAST), provides an encrypted tunnel for the pre-authentication process, protecting against brute-force attacks on user passwords.
- Monitor for Kerberos-Based Attacks: Use tools and scripts to look for indicators of Golden Ticket attacks, such as tickets with unusually long lifetimes or tickets created by non-DC accounts.
Common Kerberos Hardening Settings
| Setting | Description | Impact |
|---|---|---|
| Enforce LDAP Signing | Requires all LDAP traffic to be signed. | Prevents LDAP relay attacks. |
| Enable LDAP Channel Binding | Binds the LDAP session to the TLS channel. | Mitigates man-in-the-middle attacks. |
| Set Kerberos encryption types | Disable RC4-HMAC and prefer AES. | Protects against weak cipher attacks. |
Step 7: Proactive Monitoring, Logging, and Threat Detection

Prevention is key, but detection is your safety net. You cannot protect against what you cannot see.
- Enable Advanced Audit Policy: Move beyond basic auditing. Enable sub-categories like “Audit Kerberos Authentication Service” and “Audit Credential Validation” to get detailed logs.
- Centralize and Analyze Logs: Use a SIEM (Security Information and Event Management) system to collect logs from all DCs, servers, and endpoints. Create alerts for suspicious activity, such as a user being added to a privileged group outside of business hours, or a massive amount of failed logons.
- Use Microsoft’s Free Tools: Implement tools like the Microsoft 365 Defender Hunting Queries and the ADSecurity.org PowerShell Scripts to proactively hunt for threats in your environment.
Step 8: Reduce the Overall Attack Surface
Attack surface reduction is a core principle of AD Hardening. Every unnecessary service, open port, or legacy protocol is a potential doorway for an attacker.
- Disable Legacy and Insecure Protocols: Protocols like SMBv1, LAN Manager (LM), and NTLMv1 are inherently weak and should be disabled domain-wide via Group Policy. Force the use of SMBv3 and NTLMv2 or, ideally, Kerberos.
- Manage User Rights Assignments: Review and restrict powerful user rights like “Debug programs,” “Act as part of the operating system,” and “Log on as a batch job.” These are often abused in privilege escalation attacks.
- Conduct Regular Clean-Up: Periodically review AD for stale user and computer accounts, unnecessary groups, and excessive permissions. Tools like the Active Directory PowerShell module are invaluable for this.
Step 9: Implement a Robust Backup and Recovery Plan
Hardening is about prevention and resilience. A disaster recovery plan for AD is essential.
- Perform Regular System State Backups: Ensure you are backing up the System State of your Domain Controllers regularly. This contains the AD database (NTDS.dit).
- Test Your Restores: A backup is only good if it can be restored. Regularly test the process of restoring a DC in an isolated lab environment.
- Understand AD Recovery Options: Be familiar with authoritative and non-authoritative restore processes, as well as features like the Active Directory Recycle Bin, which can help recover accidentally deleted objects without a full restore.
Step 10: Continuous Assessment and Improvement
AD Hardening is not a one-time project; it’s an ongoing process. The threat landscape and your own environment are constantly changing.
- Conduct Regular Vulnerability Assessments: Use specialized tools to scan your AD environment for misconfigurations, weak passwords, and deviations from security baselines.
- Perform Periodic Penetration Tests: Engage internal red teams or external ethical hackers to attempt to breach your AD environment. This provides a real-world assessment of your defenses.
- Stay Informed: The world of AD security evolves rapidly. Follow security researchers, read blogs, and keep your systems patched against the latest vulnerabilities.
Puedes visitar Zatiandrops y leer increÃbles historias
Implementar Segmentación de Red para Servidores AD
La segmentación de red representa una capa de defensa crÃtica que a menudo se subestima en entornos de Active Directory. Al aislar los controladores de dominio y otros servidores crÃticos en segmentos de red dedicados, se limita significativamente la superficie de ataque y se contienen posibles brechas de seguridad. La implementación de firewalls internos y listas de control de acceso (ACLs) que restrinjan el tráfico hacia y desde los servidores de AD a solo los puertos y protocolos estrictamente necesarios es fundamental. Este enfoque de confianza cero asegura que incluso si un endpoint es comprometido, el movimiento lateral hacia la infraestructura de identidad se verá severamente obstaculizado.
Una estrategia efectiva implica crear una zona de red de alto valor para los controladores de dominio. El tráfico hacia esta zona debe estar limitado a operaciones de autenticación y replicación desde fuentes autorizadas. La siguiente tabla detalla los puertos esenciales que deben permitirse, junto con sus protocolos y direcciones de origen/destino tÃpicas:
| Puerto | Protocolo | Propósito | Origen/Destino |
|---|---|---|---|
| 88/TCP, UDP | Kerberos | Autenticación de usuarios y servicios | Todos los equipos del dominio hacia los DCs |
| 389/TCP, UDP | LDAP | Consultas de directorio | Servidores y estaciones de trabajo autorizadas hacia los DCs |
| 636/TCP | LDAPS | LDAP sobre SSL | Servidores y aplicaciones que requieren LDAP seguro |
| 445/TCP | SMB | Compartición de archivos del sysvol | Solo entre controladores de dominio para replicación |
| 464/TCP, UDP | Kerberos Password | Cambio de contraseñas | Todos los equipos del dominio hacia los DCs |
| 3268/TCP | LDAP GC | Catálogo Global | Estaciones de trabajo y servidores de aplicaciones hacia los DCs con el rol GC |
| 3269/TCP | LDAPS GC | Catálogo Global sobre SSL | Clientes que requieren consultas seguras al GC |
| 53/TCP, UDP | DNS | Resolución de nombres | Todos los equipos del dominio hacia los DCs (que también son servidores DNS) |
Gestión Proactiva de Objetos Inactivos y Huérfanos
Los entornos de Active Directory suelen acumular con el tiempo una cantidad significativa de objetos inactivos, como cuentas de usuario deshabilitadas, equipos obsoletos y grupos que ya no se utilizan. Estos objetos representan un riesgo de seguridad latente, ya que pueden ser reutilizados por atacantes sin ser inmediatamente detectados. La implementación de un proceso automatizado para identificar y eliminar o archivar estos objetos es una medida de hardening esencial. Un ciclo de vida de identidades bien definido, vinculado a procesos de RRHH y gestión de activos, puede prevenir esta acumulación.
Para abordar este riesgo de manera efectiva, considere las siguientes acciones:
- AuditorÃa y Reporte Regular: Programe scripts o utilice herramientas para generar reportes mensuales de cuentas que no han iniciado sesión en un perÃodo especÃfico (por ejemplo, 90 dÃas).
- Cuarentena de Objetos: En lugar de eliminar objetos inmediatamente, muévalos a una Unidad Organizativa (OU) dedicada con polÃticas de grupo restrictivas. Esto permite una recuperación fácil en caso de error.
- Limpieza de SID Histórico: Utilice herramientas como OldCmp para identificar y gestionar equipos obsoletos que aún tienen entradas en el dominio.
- Revisión de MembresÃas de Grupos Privilegiados: Asegúrese de que los grupos como Domain Admins, Enterprise Admins y Schema Admins no contengan cuentas de servicio o cuentas inactivas.
Automatización con PowerShell
PowerShell es una herramienta invaluable para la gestión proactiva de objetos inactivos. El siguiente script de ejemplo identifica usuarios que no han iniciado sesión en los últimos 90 dÃas y los deshabilita, registrando la acción en un archivo de log. Es crucial adaptar los umbrales de tiempo a las polÃticas de su organización.
Ejemplo de Script para Deshabilitar Usuarios Inactivos:
# Definir la fecha lÃmite$InactiveDate = (Get-Date).AddDays(-90)# Buscar usuarios inactivos, excluyendo cuentas crÃticas$InactiveUsers = Get-ADUser -Filter {LastLogonDate -lt $InactiveDate -and Enabled -eq $true} -Properties LastLogonDate | Where-Object {$_.Name -notlike "admin"}# Deshabilitar cada usuario y registrar la acciónforeach ($User in $InactiveUsers) { Disable-ADAccount -Identity $User.SamAccountName; Write-Output "$(Get-Date): Cuenta $($User.SamAccountName) deshabilitada por inactividad." | Out-File "C:LogsInactiveUsers.log" -Append }
Fortalecimiento de la Configuración de DNS
Dado que Active Directory depende completamente de DNS para su funcionamiento, un servicio DNS seguro es un pilar del hardening general. Los atacantes a menudo apuntan al DNS para realizar envenenamiento de caché, redireccionamiento de tráfico o para exfiltrar datos. La implementación de las siguientes medidas puede aumentar drásticamente la seguridad de su infraestructura DNS de AD:
- Habilitar DNSSEC: Domain Name System Security Extensions (DNSSEC) protege contra la manipulación de respuestas DNS al firmar digitalmente los registros. Aunque su implementación en un entorno interno puede ser compleja, es altamente recomendable para prevenir ataques de suplantación.
- Configurar Sockets Seguros: Asegúrese de que la configuración de “Socket Pool” y “Cache Locking” esté habilitada en los servidores DNS. La Socket Pool asigna aleatoriamente los puertos de origen utilizados para las consultas DNS, dificultando los ataques de suplantación. Cache Locking protege los registros en caché de ser sobrescritos.
- Restringir las Transferencias de Zona: Configure las transferencias de zona para que solo se permitan a los servidores secundarios autorizados (listados en la pestaña “Name Servers” de la zona) o, preferiblemente, desactÃvelas por completo si no se utilizan.
- Monitoreo de Consultas Anómalas: Implemente alertas para detectar patrones de consultas DNS inusuales, como intentos de resolución masiva de nombres de dominio aleatorios (indicativo de malware buscando un servidor de comando y control) o consultas a dominios conocidos por actividades maliciosas. Herramientas como el Analizador de Diagnóstico de Replicación de Active Directory pueden ayudar en esta tarea.
Protección Avanzada contra Ataques de Fuerza Bruta
Mientras que los bloqueos de cuenta básicos son efectivos, los atacantes sofisticados utilizan técnicas de “low-and-slow” para evadirlos, realizando un pequeño número de intentos desde una gran cantidad de direcciones IP diferentes. Para contrarrestar esto, se necesita una estrategia de defensa en capas que vaya más allá de las polÃticas de bloqueo de cuentas nativas.
- Implementar Smart Lockout: Azure AD Connect puede sincronizar configuraciones para habilitar el “Smart Lockout” en servicios hÃbridos. Esta caracterÃstica distingue entre intentos de inicio de sesión legÃtimos y malintencionados, bloqueando al atacante mientras permite que el usuario legÃtimo siga accediendo desde ubicaciones familiares.
- Configurar Cuentas de Señuelo (Honeytokens): Cree cuentas de usuario con nombres atractivos (por ejemplo, “sql_admin”, “backup_service”) pero sin permisos reales. Asigne contraseñas extremadamente fuertes y monitoree cualquier intento de autenticación hacia ellas. Un solo intento de inicio de sesión en una de estas cuentas es una indicación clara de un ataque activo. Puede utilizar herramientas de auditorÃa para probar sus propias defensas de manera controlada.
- Análisis de Tráfico de Autenticación: Utilice herramientas como Microsoft Defender for Identity o soluciones SIEM para correlacionar eventos de autenticación fallidos a través de múltiples fuentes. Busque patrones como un único usuario siendo atacado desde muchas IPs, o una sola IP atacando a muchos usuarios en un corto perÃodo de tiempo.
Gestión Segura de Secretos y Contraseñas en Scripts
La automatización mediante scripts es común en la administración de AD, pero a menudo conlleva el riesgo de almacenar credenciales en texto plano. Un atacante que gane acceso a un script que contiene una contraseña puede escalar privilegios instantáneamente. Es fundamental adoptar prácticas seguras para la gestión de secretos.
- Utilizar Cuentas de Servicio Gestionadas (gMSAs): Las gMSAs son un tipo de cuenta especial introducida en Windows Server 2012. El sistema operativo gestiona automáticamente sus contraseñas complejas, que rotan periódicamente, eliminando la necesidad de que un administrador las gestione manualmente. Son ideales para servicios programados y aplicaciones.
- Aprovechar Credential Manager y Azure Key Vault: Para scripts interactivos, evite codificar contraseñas. En su lugar, utilice cmdlets de PowerShell como `Get-Credential` para solicitar credenciales de forma interactiva, o almacene secretos de forma segura en Azure Key Vault, accediendo a ellos a través de identidades gestionadas.
- Implementar Just-In-Time (JIT) y Just-Enough-Access (JEA): Combine estas dos estrategias. JIT proporciona acceso administrativo solo cuando es necesario y por un tiempo limitado, mientras que JEA permite crear extremos de PowerShell restringidos que limitan lo que un administrador (o un script que ejecute) puede hacer. Esto mitiga el riesgo de que unas credenciales comprometidas conduzcan a un dominio completo. Para una guÃa detallada, consulte la documentación oficial de JEA.
Puedes visitar Zatiandrops (www.facebook.com/zatiandrops) y leer increÃbles historias
