Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
DNSRPC-BOF — Beacon Object File (BOF) que implementa a funcionalidade do dnscmd.exe usada para obter execução remota de código em um servidor ADIDNS, explorando a borda ServerLevelPluginDll por meio do MS-DNSP. | Kitploit
Ferramentas/GitHubGitHub/paradoxis/dnsrpc-bof
ExploraçãoPós-ExploraçãoTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubparadoxis/dnsrpc-bof

DNSRPC-BOF

Beacon Object File (BOF) que implementa a funcionalidade do dnscmd.exe usada para obter execução remota de código em um servidor ADIDNS, explorando a borda ServerLevelPluginDll por meio do MS-DNSP.

Ver Repositório
50514há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

DNSRPC-BOF

Implementação em Beacon Object File (BOF) da funcionalidade do dnscmd.exe usada para obter execução remota de código em um servidor ADIDNS explorando a borda ServerLevelPluginDll1 2 3 por meio do MS-DNSP. 4 A exploração requer acesso a uma conta de usuário que seja membro do grupo DnsAdmins.

[!NOTE] Devido ao fato de que BOFs não suportam exceções C nativamente, esta extensão faz hook no método RtlRaiseException e retorna o fluxo de controle de volta ao BOF durante chamadas RPC. Embora esse método seja improvisado, é necessário devido ao fato de que a implementação RPC da Microsoft faz uso intenso de RpcTryExcept para o fluxo de controle. Isso funcionou bem em um ambiente de teste, mas esteja ciente de que essa técnica pode resultar em instabilidade do beacon.

Compilação

Para compilar o projeto, você pode usar make em um sistema com MinGW instalado:

root@kitploit:~
make

Alternativamente, use .\build.bat se estiver usando o Prompt de Comando de Ferramentas Nativas x64 para Visual Studio no Windows:

root@kitploit:~
.\build.bat

Ambas as etapas de compilação produzirão tanto os arquivos .o quanto os arquivos .exe para testar a funcionalidade do BOF em um ambiente de laboratório.

Uso

Os seguintes BOFs foram criados para interagir com o servidor ADIDNS:

  • dnsrpc_probe - Verifica se o servidor ADIDNS está ativo
  • dnsrpc_info - Obtém as configurações atuais do servidor ADIDNS
  • dnsrpc_coerce_write - Utilitário para forçar o servidor ADIDNS a escrever um arquivo em um compartilhamento de rede para testar se seu DC consegue alcançar o compartilhamento de rede especificado antes de danificá-lo por meio do plugin dnsrpc_set_plugin_dll.
  • dnsrpc_set_plugin_dll - Configura a DLL a ser carregada quando o servidor for reiniciado
  • dnsrpc_restart_server - Emite o reinício do servidor ADIDNS
  • dnsrpc_cleanup - Limpa os artefatos do registro deixados pelos comandos dnsrpc_coerce_write e dnsrpc_set_plugin_dll. Deve ser executado no próprio controlador de domínio.

Além disso, um payload de exemplo foi fornecido em dnssrv_plugin.c.

[!WARNING] Se o DC, por qualquer motivo, não conseguir acessar o payload DLL que você especificou com dnsrpc_set_pugin_dll, ele se recusará a reiniciar e você provavelmente prejudicará todo o domínio. Considere usar dnsrpc_coerce_write para testar se o DC consegue realmente se conectar ao seu compartilhamento antes de acidentalmente destruir o alvo. As pessoas tendem a ficar irritadas quando o DNS delas cai.

Além disso, o dnsrpc_restart_server resultará em dois minutos de indisponibilidade do DNS. Chamar o BOF várias vezes fará com que o tempo limite aumente a cada vez, então use-o com moderação.

Desenvolvimento

Para testar os BOFs em um ambiente de desenvolvimento, você pode usar uma ferramenta como o COFFLoader da TrustedSec, que pode ser compilada no Windows da seguinte forma:

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

Em seguida, para executar um BOF (ou seja: o BOF dnsrpc_info), gere os argumentos e passe-os ao 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 as definições IDL, você pode usar o seguinte comando:

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

Durante o desenvolvimento, a flag _DEBUG resultará na adição de um wmain ao binário final, e a flag _VERBOSE é usada para incluir registro de depuração extra. Para mais informações, consulte o build.bat e o Makefile.

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes. Não me responsabilizo por qualquer uso indevido ou danos causados pelo uso desta ferramenta. Use-a apenas em ambientes onde você tenha permissão explícita para fazê-lo.

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 ↩

Baixar ferramenta