Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
DNSRPC-BOF — Beacon Object File (BOF) que implementa la funcionalidad de dnscmd.exe utilizada para obtener ejecución remota de código en un servidor ADIDNS explotando el edge ServerLevelPluginDll mediante MS-DNSP. | Kitploit
Herramientas/GitHubGitHub/paradoxis/dnsrpc-bof
ExplotaciónPost-ExplotaciónPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubparadoxis/dnsrpc-bof

DNSRPC-BOF

Beacon Object File (BOF) que implementa la funcionalidad de dnscmd.exe utilizada para obtener ejecución remota de código en un servidor ADIDNS explotando el edge ServerLevelPluginDll mediante MS-DNSP.

Ver Repositorio
50514hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

DNSRPC-BOF

Implementación de Beacon Object File (BOF) de la funcionalidad de dnscmd.exe utilizada para obtener ejecución remota de código en un servidor ADIDNS explotando el edge ServerLevelPluginDll1 2 3 mediante MS-DNSP. 4 La explotación requiere acceso a una cuenta de usuario que sea miembro del grupo DnsAdmins.

[!NOTE] Debido a que los BOFs no soportan excepciones de C de forma nativa, esta extensión se engancha al método RtlRaiseException y devuelve el flujo de control al BOF durante las llamadas RPC. Aunque este método es chapucero, es necesario debido a que la implementación de RPC de Microsoft hace un uso intensivo de RpcTryExcept para el flujo de control. Esto funcionó bien en un entorno de pruebas, pero ten en cuenta que esta técnica podría provocar inestabilidad en el beacon.

Compilación

Para compilar el proyecto, puedes usar make en un sistema con MinGW instalado:

root@kitploit:~
make

Alternativamente, usa .\build.bat si estás usando el Símbolo del sistema de herramientas nativas x64 para Visual Studio en Windows:

root@kitploit:~
.\build.bat

Ambos pasos de compilación producirán tanto los archivos .o como los archivos .exe para experimentar con la funcionalidad del BOF en un entorno de laboratorio.

Uso

Se han creado los siguientes BOFs para interactuar con el servidor ADIDNS:

  • dnsrpc_probe - Comprueba si el servidor ADIDNS está activo
  • dnsrpc_info - Obtiene la configuración actual del servidor ADIDNS
  • dnsrpc_coerce_write - Utilidad para forzar al servidor ADIDNS a escribir un archivo en un recurso compartido de red para comprobar si tu DC puede alcanzar dicho recurso antes de dejarlo inservible mediante el plugin dnsrpc_set_plugin_dll.
  • dnsrpc_set_plugin_dll - Configura la DLL que se cargará cuando se reinicie el servidor
  • dnsrpc_restart_server - Ordena al servidor ADIDNS reiniciarse
  • dnsrpc_cleanup - Limpia los artefactos del registro dejados por los comandos dnsrpc_coerce_write y dnsrpc_set_plugin_dll. Debe ejecutarse en el propio controlador de dominio.

Además, se ha proporcionado un payload de ejemplo en dnssrv_plugin.c.

[!WARNING] Si el DC, por cualquier motivo, no puede acceder al payload DLL que especificaste con dnsrpc_set_pugin_dll, se negará a reiniciarse y probablemente dejarás todo el dominio inservible. Considera usar dnsrpc_coerce_write para comprobar si el DC puede conectarse realmente a tu recurso compartido antes de destruir accidentalmente el objetivo. La gente tiende a enfadarse cuando su DNS se cae.

Además, dnsrpc_restart_server provocará dos minutos de caída del DNS. Llamar al BOF varias veces hará que el tiempo de espera aumente cada vez, así que úsalo con moderación.

Desarrollo

Para probar los BOFs en un entorno de desarrollo, puedes usar una herramienta como COFFLoader de TrustedSec, que se puede compilar en Windows de la siguiente manera:

root@kitploit:~
cl.exe /W4 /DCOFF_STANDALONE /DDEBUG beacon_compatibility.c COFFLoader.c /Fe:COFFLoader.exe /link advapi32.lib

Luego, para ejecutar un BOF (es decir, el BOF dnsrpc_info), genera los argumentos y pásalos al COFFLoader:

root@kitploit:~
> python beacon_generate.py
Beacon Argument Generator
Beacon>addWString DC01
Beacon>generate
b'0e0000000a00000044004300300031000000'
Beacon> exit

> cl.exe /c /GS- dnsrpc_info.c /Fo:dist\dnsrpc_info.o
> COFFLoader.exe go dist\dnsrpc_info.o 0e0000000a00000044004300300031000000
...
        $SG77912
: Section: 3, Value: 0xA08
        $SG77914H
: Section: 3, Value: 0xA48
        $SG77915X
: Section: 3, Value: 0xA58
        .chks64: Section: 11, Value: 0x0
        X: Section: 0, Value: 0x0
Back
Returning
Ran/parsed the coff
Outdata Below:

server name: DC01.research.lan
server version: 4F7C000A (10.0 build 20348)
rpc structure version: 2 (longhorn)
directory services available: yes
admin configured: yes
allow update: yes
is read-only domain controller: no
boot method: 3 (registry)
no recursion: no
round robin: yes
secure responses: yes
forward timeout: 3
recursion retry: 3
recursion timeout: 8
max cache ttl: 86400
directory services polling interval: 180
scavenging interval: 0
log level: 0x00000000
directory services container: cn=MicrosoftDNS,cn=System,DC=research,DC=lan
domain name: research.lan
forest name: research.lan
log file path: (none)
server addresses: fe80:0000:0000:0000:4cbe:0281:82dd:76ed, 172.16.50.107
listen addresses: (none)
forwarders: 8.8.8.8, 1.1.1.1

Para recompilar las definiciones IDL, puedes usar el siguiente comando:

root@kitploit:~
midl /W1 /char signed /env x64 /target NT100 /Oicf dnsrpc.idl

Durante el desarrollo, el flag _DEBUG añadirá un wmain al binario final, y el flag _VERBOSE se usa para incluir registro de depuración adicional. Para más información, consulta build.bat y Makefile.

Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles. No me hago responsable de ningún uso indebido o daño causado por el uso de esta herramienta. Úsala únicamente en entornos donde tengas permiso explícito para hacerlo.

Footnotes

  1. https://raw.githubusercontent.com/paradoxis/dnsrpc-bof/HEAD/%3Chttps:/medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83%3E ↩

  2. https://raw.githubusercontent.com/paradoxis/dnsrpc-bof/HEAD/%3Chttps:/www.semperis.com/blog/dnsadmins-revisited/%3E ↩

  3. https://raw.githubusercontent.com/paradoxis/dnsrpc-bof/HEAD/%3Chttps:/www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/from-dnsadmins-to-system-to-domain-compromise%3E ↩

  4. https://raw.githubusercontent.com/paradoxis/dnsrpc-bof/HEAD/%3Chttps:/learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp/9500a7e8-165d-4b13-be86-0ddc43100eef%3E ↩

Descargar herramienta