Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DNSRPC-BOF — Implémentation de Beacon Object File (BOF) de la fonctionnalité dnscmd.exe utilisée pour obtenir une exécution de code à distance sur un serveur ADIDNS en exploitant la faille ServerLevelPluginDll via MS-DNSP. | Kitploit
Outils/GitHubGitHub/paradoxis/dnsrpc-bof
ExploitationPost-ExploitationTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHubparadoxis/dnsrpc-bof

DNSRPC-BOF

Implémentation de Beacon Object File (BOF) de la fonctionnalité dnscmd.exe utilisée pour obtenir une exécution de code à distance sur un serveur ADIDNS en exploitant la faille ServerLevelPluginDll via MS-DNSP.

Voir le dépôt
50514il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DNSRPC-BOF

Implémentation Beacon Object File (BOF) de la fonctionnalité dnscmd.exe utilisée pour obtenir une exécution de code à distance sur un serveur ADIDNS en exploitant la faille ServerLevelPluginDll1 2 3 via MS-DNSP. 4 L'exploitation nécessite l'accès à un compte utilisateur membre du groupe DnsAdmins.

[!NOTE] Étant donné que les BOF ne prennent pas en charge les exceptions C nativement, cette extension s'accroche à la méthode RtlRaiseException et redonne le contrôle au BOF lors des appels RPC. Bien que cette méthode soit bancale, elle est nécessaire car l'implémentation RPC de Microsoft utilise massivement RpcTryExcept pour le contrôle de flux. Cela a fonctionné correctement dans un environnement de test, mais sachez que cette technique pourrait entraîner une instabilité du beacon.

Compilation

Pour compiler le projet, vous pouvez utiliser make sur un système avec MinGW installé :

root@kitploit:~
make

Alternativement, utilisez .\build.bat si vous utilisez l'invite de commandes x64 Native Tools pour Visual Studio sous Windows :

root@kitploit:~
.\build.bat

Les deux étapes de compilation produisent à la fois les fichiers .o ainsi que les fichiers .exe pour expérimenter avec la fonctionnalité BOF dans un environnement de laboratoire.

Utilisation

Les BOF suivants ont été créés pour interagir avec le serveur ADIDNS :

  • dnsrpc_probe - Vérifie si le serveur ADIDNS est actif
  • dnsrpc_info - Obtient les paramètres actuels du serveur ADIDNS
  • dnsrpc_coerce_write - Utilitaire pour forcer le serveur ADIDNS à écrire un fichier sur un partage réseau afin de tester si votre DC peut atteindre le partage réseau donné avant de le casser via le plugin dnsrpc_set_plugin_dll.
  • dnsrpc_set_plugin_dll - Configure la DLL à charger lors du redémarrage du serveur
  • dnsrpc_restart_server - Demande au serveur ADIDNS de redémarrer
  • dnsrpc_cleanup - Nettoie les artefacts de registre laissés par les commandes dnsrpc_coerce_write et dnsrpc_set_plugin_dll. Doit être exécuté sur le contrôleur de domaine lui-même.

En plus de cela, un exemple de payload a été fourni dans dnssrv_plugin.c.

[!WARNING] Si le DC, pour une raison quelconque, ne peut pas atteindre la charge utile DLL que vous avez spécifiée avec dnsrpc_set_pugin_dll, il refusera de redémarrer et vous risquez de paralyser tout le domaine. Envisagez d'utiliser dnsrpc_coerce_write pour tester si le DC peut réellement se connecter à votre partage avant de détruire accidentellement la cible. Les gens ont tendance à se fâcher quand leur DNS tombe en panne.

De plus, dnsrpc_restart_server entraînera deux minutes d'interruption du DNS. Appeler le BOF plusieurs fois fera croître le délai d'attente à chaque fois, alors utilisez-le avec parcimonie.

Développement

Pour tester les BOF dans un environnement de développement, vous pouvez utiliser un outil comme COFFLoader de TrustedSec, qui peut être compilé sous Windows comme suit :

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

Ensuite, pour exécuter un BOF (par exemple : le BOF dnsrpc_info), générez les arguments et passez-les au 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

Pour recompiler les définitions IDL, vous pouvez utiliser la commande suivante :

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

Pendant le développement, le drapeau _DEBUG ajoutera un wmain au binaire final, et le drapeau _VERBOSE est utilisé pour inclure des journaux de débogage supplémentaires. Pour plus d'informations, consultez build.bat et Makefile.

Licence

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails. Je décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par l'utilisation de cet outil. Utilisez-le uniquement dans des environnements où vous avez l'autorisation explicite de le faire.

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 ↩

Télécharger l’outil