Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DNSRPC-BOF — كائن ملف منارة (BOF) لتنفيذ وظيفة dnscmd.exe المستخدمة للحصول على تنفيذ التعليمات البرمجية عن بُعد على خادم ADIDNS من خلال استغلال ثغرة ServerLevelPluginDll باستخدام MS-DNSP. | Kitploit
أدوات/GitHubGitHub/paradoxis/dnsrpc-bof
الاستغلالما بعد الاستغلالاختبار الاختراقالفريق الأحمرتطوير الحمولات
GitHubparadoxis/dnsrpc-bof

DNSRPC-BOF

كائن ملف منارة (BOF) لتنفيذ وظيفة dnscmd.exe المستخدمة للحصول على تنفيذ التعليمات البرمجية عن بُعد على خادم ADIDNS من خلال استغلال ثغرة ServerLevelPluginDll باستخدام MS-DNSP.

عرض المستودع
50514منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

DNSRPC-BOF

تنفيذ Beacon Object File (BOF) لوظيفة dnscmd.exe المستخدمة للحصول على تنفيذ كود عن بُعد على خادم ADIDNS من خلال استغلال ثغرة ServerLevelPluginDll1 2 3 باستخدام MS-DNSP. 4 يتطلب الاستغلال الوصول إلى حساب مستخدم عضو في مجموعة DnsAdmins.

[!NOTE] نظرًا لأن BOFs لا تدعم استثناءات C بشكل أصلي، فإن هذا الامتداد يربط طريقة RtlRaiseException ويعيد تدفق التحكم إلى BOF أثناء استدعاءات RPC. على الرغم من أن هذه الطريقة غير تقليدية، إلا أنها ضرورية لأن تنفيذ RPC من Microsoft يستخدم بشكل كبير RpcTryExcept لتدفق التحكم. عمل هذا بشكل جيد في بيئة اختبار، لكن كن على دراية بأن هذه التقنية قد تؤدي إلى عدم استقرار الـ beacon.

التجميع

لتجميع المشروع، يمكنك استخدام make على نظام مثبت عليه MinGW:

root@kitploit:~
make

بدلاً من ذلك، استخدم .\build.bat إذا كنت تستخدم x64 Native Tools Command Prompt لـ Visual Studio على Windows:

root@kitploit:~
.\build.bat

ستنتج كلتا خطوتي التجميع ملفات .o بالإضافة إلى ملفات .exe للتجربة مع وظيفة BOF في بيئة مختبرية.

الاستخدام

تم إنشاء BOFs التالية للتفاعل مع خادم ADIDNS:

  • dnsrpc_probe - التحقق مما إذا كان خادم ADIDNS نشطًا
  • dnsrpc_info - الحصول على إعدادات خادم ADIDNS الحالية
  • dnsrpc_coerce_write - أداة لإجبار خادم ADIDNS على كتابة ملف إلى مشاركة شبكة لاختبار ما إذا كان وحدة التحكم بالمجال (DC) يمكنها الوصول إلى مشاركة الشبكة المحددة قبل تعطيلها عبر إضافة dnsrpc_set_plugin_dll.
  • dnsrpc_set_plugin_dll - يهيئ DLL ليتم تحميله عند إعادة تشغيل الخادم
  • dnsrpc_restart_server - يصدر أمرًا لإعادة تشغيل خادم ADIDNS
  • dnsrpc_cleanup - ينظف آثار التسجيل التي خلفتها أوامر dnsrpc_coerce_write و dnsrpc_set_plugin_dll. يجب تنفيذه على وحدة التحكم بالمجال نفسها.

بالإضافة إلى ذلك، تم توفير حمولة مثال في dnssrv_plugin.c.

[!WARNING] إذا لم تتمكن وحدة التحكم بالمجال (DC) لأي سبب من الوصول إلى حمولة DLL التي حددتها باستخدام dnsrpc_set_pugin_dll، فسوف ترفض إعادة التشغيل ومن المحتمل أن تعطل المجال بأكمله. فكر في استخدام dnsrpc_coerce_write لاختبار ما إذا كانت وحدة التحكم بالمجال يمكنها الاتصال بمشاركتك قبل أن تدمر الهدف عن طريق الخطأ. يميل الناس إلى الغضب عندما يتعطل DNS الخاص بهم.

بالإضافة إلى ذلك، سيؤدي dnsrpc_restart_server إلى توقف DNS لمدة دقيقتين. استدعاء BOF عدة مرات سيؤدي إلى زيادة المهلة في كل مرة لذا استخدمه بحذر.

التطوير

لاختبار BOFs في بيئة تطوير، يمكنك استخدام أداة مثل TrustedSec's COFFLoader، والتي يمكن تجميعها على Windows على النحو التالي:

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

ثم لتنفيذ BOF (أي: BOF dnsrpc_info)، قم بإنشاء الوسائط وتمريرها إلى 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

لإعادة تجميع تعريفات IDL، يمكنك استخدام الأمر التالي:

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

أثناء التطوير، سيؤدي علم _DEBUG إلى إضافة wmain إلى الملف الثنائي النهائي، ويستخدم علم _VERBOSE لتضمين تسجيل تصحيح إضافي. لمزيد من المعلومات، راجع build.bat و Makefile.

الترخيص

هذا المشروع مرخص بموجب MIT License - راجع ملف LICENSE للتفاصيل. لا أتحمل أي مسؤولية عن أي إساءة استخدام أو أضرار ناتجة عن استخدام هذه الأداة. استخدمها فقط في البيئات التي لديك فيها إذن صريح للقيام بذلك.

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 ↩

تنزيل الأداة