Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
DNSRPC-BOF — Beacon Object File (BOF)-Implementierung der dnscmd.exe-Funktionalität, die verwendet wird, um Remote-Codeausführung auf einem ADIDNS-Server zu erlangen, indem die ServerLevelPluginDll-Schwachstelle über MS-DNSP ausgenutzt wird. | Kitploit
Tools/GitHubGitHub/paradoxis/dnsrpc-bof
ExploitationPost-ExploitationPenetrationstestsRed TeamingPayload-Entwicklung
GitHubparadoxis/dnsrpc-bof

DNSRPC-BOF

Beacon Object File (BOF)-Implementierung der dnscmd.exe-Funktionalität, die verwendet wird, um Remote-Codeausführung auf einem ADIDNS-Server zu erlangen, indem die ServerLevelPluginDll-Schwachstelle über MS-DNSP ausgenutzt wird.

Repository anzeigen
50514vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

DNSRPC-BOF

Beacon Object File (BOF)-Implementierung der dnscmd.exe-Funktionalität, die verwendet wird, um Remote-Codeausführung auf einem ADIDNS-Server zu erlangen, indem die ServerLevelPluginDll-Ecke1 2 3 über MS-DNSP ausgenutzt wird. 4 Für die Ausnutzung ist ein Benutzerkonto erforderlich, das Mitglied der Gruppe DnsAdmins ist.

[!NOTE] Da BOFs C-Ausnahmen nicht nativ unterstützen, greift diese Erweiterung in die Methode RtlRaiseException ein und gibt die Kontrollflusssteuerung während RPC-Aufrufen an den BOF zurück. Obwohl diese Methode hacky ist, ist sie notwendig, da Microsofts RPC-Implementierung stark auf RpcTryExcept für die Kontrollflusssteuerung setzt. Dies funktionierte in einer Testumgebung einwandfrei, aber beachten Sie, dass diese Technik zu Beacon-Instabilität führen kann.

Kompilierung

Um das Projekt zu kompilieren, können Sie entweder make auf einem System mit installiertem MinGW verwenden:

root@kitploit:~
make

Alternativ verwenden Sie .\build.bat, wenn Sie die x64 Native Tools-Eingabeaufforderung für Visual Studio unter Windows verwenden:

root@kitploit:~
.\build.bat

Beide Kompilierungsschritte erzeugen sowohl die .o-Dateien als auch .exe-Dateien, um mit der BOF-Funktionalität in einer Laborumgebung herumzuspielen.

Verwendung

Die folgenden BOFs wurden erstellt, um mit dem ADIDNS-Server zu interagieren:

  • dnsrpc_probe – Prüft, ob der ADIDNS-Server aktiv ist
  • dnsrpc_info – Ruft die aktuellen ADIDNS-Servereinstellungen ab
  • dnsrpc_coerce_write – Dienstprogramm, um den ADIDNS-Server zu zwingen, eine Datei auf eine Netzwerkfreigabe zu schreiben, um zu testen, ob Ihr DC die angegebene Netzwerkfreigabe erreichen kann, bevor Sie ihn über das Plugin dnsrpc_set_plugin_dll zerstören.
  • dnsrpc_set_plugin_dll – Konfiguriert die DLL, die beim Neustart des Servers geladen werden soll
  • dnsrpc_restart_server – Veranlasst den ADIDNS-Server zum Neustart
  • dnsrpc_cleanup – Bereinigt die Registrierungsartefakte, die von den Befehlen dnsrpc_coerce_write und dnsrpc_set_plugin_dll hinterlassen wurden. Muss auf dem Domänencontroller selbst ausgeführt werden.

Darüber hinaus wurde ein Beispiel-Payload in dnssrv_plugin.c bereitgestellt.

[!WARNING] Wenn der DC aus irgendeinem Grund die DLL-Payload, die Sie mit dnsrpc_set_pugin_dll angegeben haben, nicht erreichen kann, weigert er sich, wieder hochzufahren, und Sie legen wahrscheinlich die gesamte Domäne lahm. Erwägen Sie die Verwendung von dnsrpc_coerce_write, um zu testen, ob der DC tatsächlich eine Verbindung zu Ihrer Freigabe herstellen kann, bevor Sie versehentlich das Ziel zerstören. Menschen neigen dazu, wütend zu werden, wenn ihr DNS ausfällt.

Darüber hinaus führt dnsrpc_restart_server zu zwei Minuten DNS-Ausfallzeit. Wenn Sie den BOF mehrmals aufrufen, wächst das Timeout jedes Mal, also verwenden Sie ihn sparsam.

Entwicklung

Um die BOFs in einer Entwicklungsumgebung zu testen, können Sie ein Tool wie TrustedSec's COFFLoader verwenden, das unter Windows wie folgt kompiliert werden kann:

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

Um dann einen BOF auszuführen (z. B. den BOF dnsrpc_info), generieren Sie die Argumente und übergeben Sie sie an den 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

Um die IDL-Definitionen neu zu kompilieren, können Sie den folgenden Befehl verwenden:

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

Während der Entwicklung führt das Flag _DEBUG dazu, dass ein wmain zur endgültigen Binärdatei hinzugefügt wird, und das Flag _VERBOSE wird verwendet, um zusätzliche Debug-Protokollierung einzuschließen. Weitere Informationen finden Sie in build.bat und Makefile.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details. Ich übernehme keine Verantwortung für Missbrauch oder Schäden, die durch die Verwendung dieses Tools verursacht werden. Verwenden Sie es nur in Umgebungen, in denen Sie ausdrücklich die Erlaubnis dazu haben.

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 ↩

Tool herunterladen