
Active Directory (AD) es el corazón de la mayoría de las redes empresariales basadas en Windows. En él se centraliza la autenticación de usuarios, la gestión de permisos, grupos, políticas y recursos. Precisamente por su importancia, se ha convertido en uno de los principales objetivos de los atacantes durante una intrusión.
Un pentest (prueba de penetración) en Active Directory no busca destruir ni alterar sistemas, sino simular el comportamiento de un atacante para identificar debilidades antes de que alguien con malas intenciones lo haga. Uno de los aspectos más críticos en estos ejercicios son las listas de control de acceso (DACLs), que definen quién puede hacer qué dentro del dominio.
En esta publicación vamos a explicar, de forma clara y práctica, cómo un error de configuración en los permisos —concretamente el llamado GenericAll— puede otorgar un poder total sobre una red. Y lo haremos paso a paso, desde los conceptos más básicos hasta ejemplos reales de explotación.
Active Directory es una base de datos jerárquica que almacena objetos: usuarios, equipos, grupos y políticas. Cada objeto tiene atributos (como nombre, contraseña, dirección, etc.) y permisos que determinan qué usuarios pueden interactuar con ellos.
Por ejemplo, en una empresa puede existir un grupo llamado “Finanzas” cuyos miembros tienen acceso a ciertos archivos y aplicaciones. A su vez, los administradores del dominio (Domain Admins) pueden modificar usuarios, cambiar contraseñas y gestionar toda la red.
Por eso, si un atacante logra escalar hasta convertirse en un administrador de dominio, obtiene control total: puede acceder a cualquier recurso, crear nuevas cuentas o incluso apagar sistemas críticos.
Cada objeto en AD tiene un conjunto de permisos llamado Discretionary Access Control List (DACL). Esta lista define qué usuarios o grupos tienen acceso y qué tipo de acciones pueden realizar: leer, escribir, modificar o eliminar.
Dentro de estas listas existen entradas de control de acceso (ACE), que asignan permisos específicos. Por ejemplo:
ReadProperty: permite leer atributos de un objeto.
WriteProperty: permite modificarlos.
WriteDACL: permite cambiar la propia lista de permisos (muy peligroso).
GenericWrite: permite editar algunos atributos.
GenericAll: otorga control total sobre el objeto.
El permiso GenericAll es el equivalente a un “modo dios” sobre el objeto. Un usuario con este privilegio puede:
Cambiar contraseñas sin conocer la actual.
Agregarse a grupos de alto privilegio como Domain Admins.
Delegar control a otros usuarios.
Modificar o eliminar el objeto.
Imagina que un empleado con una cuenta estándar, sin privilegios especiales, obtiene por error un permiso GenericAll sobre un grupo de administradores. Con solo unos pocos comandos podría añadirse al grupo y obtener dominio total. Ese es el tipo de configuración insegura que un pentest busca detectar.
Para comprenderlo mejor, imaginemos un entorno simulado como el que usaría un auditor de seguridad:
Controlador de dominio: Windows Server (2019).
Cliente atacante: Kali Linux o Windows 10.
Herramientas: BloodHound, PowerView, Net RPC, Rubeus, entre otras.
El objetivo será simular a un usuario común que, sin privilegios administrativos, posee sin saberlo un permiso GenericAll sobre un grupo o cuenta sensible.
Supongamos que existe un usuario llamado “Usuario1”, miembro del dominio pero sin privilegios elevados. Sin embargo, por error, se le ha asignado el permiso GenericAll sobre el grupo Domain Admins.
Un pentester utilizaría herramientas como BloodHound, que permite mapear gráficamente las relaciones de permisos dentro del AD. Al cargar los datos del dominio, se puede observar que “Usuario1” tiene control total sobre el grupo de administradores.
Desde Linux, usando la utilidad net rpc, se pueden listar usuarios y grupos del dominio:
Esto confirma que solo hay un administrador legítimo.
Con el mismo comando, el usuario puede agregarse a ese grupo:
Desde ese momento, el usuario1 es administrador de dominio. Ha pasado de ser un usuario estándar a tener el máximo nivel de control sin explotar ninguna vulnerabilidad técnica, únicamente un error de configuración.
En un segundo ejemplo, imaginemos que el usuario “TesterA” tiene permisos GenericAll sobre la cuenta “TesterB”.
Con ese permiso, puede:
Cambiar la contraseña de TesterB sin conocer la actual.
Modificar atributos, como su nombre o correo.
Asignarle un Service Principal Name (SPN) y realizar ataques avanzados como Kerberoasting.
En este ataque, el pentester solicita un ticket Kerberos de un servicio asociado al usuario objetivo. Este ticket contiene un hash cifrado de la contraseña que puede ser crackeado offline para descubrir credenciales.
Desde Linux, el atacante puede ejecutar:
El script agrega un SPN temporal al usuario objetivo, solicita un ticket de servicio y luego lo elimina para no dejar rastros. Posteriormente, se intenta romper el hash con herramientas como John the Ripper o Hashcat.
Este tipo de ataque es sigiloso, no requiere modificar contraseñas y es muy difícil de detectar si no se monitorean adecuadamente los logs de Kerberos.
Otra manera en que un atacante puede abusar del permiso GenericAll es simplemente cambiando la contraseña del usuario objetivo.
Por ejemplo, desde Linux con Samba:
O desde PowerShell en Windows:
Una vez modificada la contraseña, el atacante puede autenticarse como el usuario víctima. Si ese usuario tiene privilegios, la red está comprometida.
Un buen pentester no solo demuestra la vulnerabilidad, también enseña a detectarla y corregirla.
Monitorear eventos de modificación de DACLs en los logs de seguridad de Windows.
Revisar cambios de contraseñas sin eventos previos de autenticación exitosa.
Detectar solicitudes inusuales de tickets Kerberos (Event ID 4769).
Analizar relaciones de permisos con herramientas como BloodHound periódicamente.
Aplicar el principio de menor privilegio: ningún usuario debe tener más permisos de los necesarios.
Revisar periódicamente las delegaciones de control y herencias de permisos.
Restringir el uso de cuentas con privilegios administrativos solo para tareas específicas.
Implementar monitoreo continuo y alertas cuando se agregan usuarios a grupos sensibles.
Rotar contraseñas de cuentas de servicio regularmente.
Lo más interesante (y peligroso) de este tipo de vulnerabilidad es que no requiere malware, ni exploits, ni técnicas avanzadas de hacking. Basta con un permiso mal configurado.
Un simple error administrativo puede convertir a un usuario común en dueño del dominio completo.
Esto demuestra que la ciberseguridad no es solo cuestión de parches o firewalls, sino de configuración, revisión y control de privilegios.
El pentesting en Active Directory permite descubrir estas configuraciones inseguras antes de que lo haga un atacante real. Es una práctica esencial para cualquier empresa que dependa de entornos Windows, ya que proporciona una visión realista del nivel de exposición y una hoja de ruta clara para la mejora.
Para alguien que nunca ha realizado un pentest en Active Directory, este tipo de ejercicio puede parecer complejo. Pero su esencia es simple: entender cómo los permisos y relaciones entre usuarios pueden ser manipulados.
Los pasos descritos —desde el uso de BloodHound hasta la explotación con Net RPC o PowerShell— ilustran cómo los atacantes piensan y actúan dentro de un dominio. Cada técnica tiene su reflejo en las tácticas del marco MITRE ATT&CK, ayudando a clasificar las acciones según su impacto y objetivo.
Al comprender y practicar estos escenarios de forma ética y controlada, los equipos de seguridad desarrollan la capacidad de prevenir ataques reales. La clave está en la educación, la práctica y la mejora continua.
El Active Directory seguirá siendo un objetivo prioritario, pero también puede ser una fortaleza si se configura con cuidado, se monitorea correctamente y se somete a pruebas regulares. En ciberseguridad, el conocimiento siempre será la mejor defensa.
frenify: Thank you for your kind words! We’re glad you enjoyed the post. Stay tuned for more content – we’ve got plenty more coming your way.
frenify: I really enjoyed reading this. The content is informative, and the layout makes it so easy to follow. Looking forward to more posts like this! Keep up the great work!