DnsAdmins
Última actualización
Última actualización
Los miembros del grupo DnsAdmins tienen acceso privilegiado a la información DNS dentro de la red. El servicio DNS de Windows soporta complementos personalizados, lo que le permite invocar funciones desde dichos complementos para resolver consultas de nombres que no están cubiertas por las zonas DNS locales. Este servicio se ejecuta bajo la cuenta NT AUTHORITY\SYSTEM, lo que significa que ser miembro del grupo DnsAdmins puede ser aprovechado para escalar privilegios en un controlador de dominio o en un servidor independiente que actúe como servidor DNS para el dominio.
A través de la utilidad dnscmd, es posible especificar la ruta a una DLL de complemento personalizada. Como se explica en detalle en esta publicación, se puede realizar un ataque cuando el servicio DNS se ejecuta en un controlador de dominio, que es una configuración común. El ataque podría ocurrir de la siguiente manera:
Gestión DNS por RPC: La gestión del servicio DNS se lleva a cabo a través de RPC (Remote Procedure Call), lo que permite interacciones remotas.
Carga de DLLs personalizadas: A través del parámetro ServerLevelPluginDll (documentado en el protocolo MS-DNSP), es posible cargar una DLL personalizada sin necesidad de verificar la ruta de la DLL. Esto se puede lograr usando el comando dnscmd en la línea de comandos.
Modificación del registro: Cuando un miembro del grupo DnsAdmins ejecuta el comando dnscmd, la clave del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters\ServerLevelPluginDll se configura para apuntar a la DLL especificada.
Reinicio del servicio DNS: Al reiniciar el servicio DNS, la DLL definida en el registro se carga, lo que podría incluir una ruta que apunte a un recurso compartido en la red accesible para la cuenta de máquina del controlador de dominio.
Explotación de la DLL: Un atacante puede aprovechar esta vulnerabilidad cargando una DLL personalizada con fines maliciosos, como ejecutar un shell inverso o cargar herramientas como Mimikatz para volcar las credenciales almacenadas en el sistema.
Este ataque se basa en la capacidad de un atacante con privilegios de DnsAdmins para cargar una DLL maliciosa en el servidor DNS, lo que puede comprometer gravemente la seguridad de la red y permitir la escalada de privilegios o el acceso a información sensible.
Podemos generar una DLL maliciosa para enviarnos una reverse shell a nuestra máquina atacante.
A continuación, creamos un servidor HTTP con Python para compartir el archivo dll.
Descargue el archivo en la máquina víctima.
Ganamos acceso al sistema como NT AUTHORITY\SYSTEM
.