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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
EternalBlueC — مجموعة EternalBlue المعاد بناؤها بلغة C/C++ والتي تتضمن: ثغرة MS17-010، كاشف ثغرة EternalBlue، كاشف DoublePulsar ورافع شيل كود و DLL لـ DoublePulsar | Kitploit
أدوات/GitHubGitHub/bhassani/eternalbluec
أطر الاستغلالتحليل الثغرات الأمنيةالاستغلالشيل كودتحليل البرمجيات الخبيثةاختبار الاختراقالتعلم والتعليمتوليد شيفرة القشرةتطوير الحمولاتاستغلال الملفات الثنائية
GitHubbhassani/eternalbluec

EternalBlueC

61313810منذ يوم واحدتمت المراجعة من قبل Kitploit

مجموعة EternalBlue المعاد بناؤها بلغة C/C++ والتي تتضمن: ثغرة MS17-010، كاشف ثغرة EternalBlue، كاشف DoublePulsar ورافع شيل كود و DLL لـ DoublePulsar

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

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

License: GPL v3

EternalBlueC

مجموعة أدوات EternalBlue أعيدت كتابتها بلغة C/C++ وتتضمن:

  • استغلال MS17-010 (يحتوي على DoublePulsar)
  • كاشف ثغرة EternalBlue/MS17-010
  • كاشف DoublePulsar
  • تحميل DLL عبر DoublePulsar
  • تحميل شيل كود عبر DoublePulsar
  • تحميل DLL مع هيكل SMB عبر DoublePulsar
  • تحميل شيل كود مع هيكل SMB عبر DoublePulsar
  • تحميل ملف تنفيذي داخل DLL عبر DoublePulsar

إنجازات المشروع

  • تحميل شيل كود - مكتمل ويعمل، احقن شيل كودك في أي عملية تريدها
  • تحميل DLL - مكتمل ويعمل، احقن DLL الخاص بك في أي عملية تريدها
  • تحميل DLL مع ملف تنفيذي مدمج - مكتمل، احقن DLL الخاص بك في أي عملية تريدها ويقوم بإسقاط الملف التنفيذي باسم "mssecsvc.exe"

أهداف المشروع

  • السماح بتوليد حزم مفاوضات DoublePulsar، وإعداد الجلسة، واتصال الشجرة، وTransNamedPipe، وTransaction2 ديناميكيًا باستخدام هياكل SMB ولقطات سداسية عشرية
  • السماح بتحرير حمولة استغلال EternalBlue لإزالة زرع DoublePulsar والسماح بإرسال شيل كود مخصص بدلاً من ذلك
  • السماح بتوليد حزم EternalBlue ديناميكيًا
  • طلب إدخال المستخدم لجميع عناوين IP، والحمولات مثل شيل كود أو مسارات الملفات، والإذن للمتابعة
  • أن يكون أكثر تفصيلاً
  • إضافة إصدار Windows من استجابة SMB إلى الشاشة
  • إضافة دعم لمعاملات سطر الأوامر (DoublepulsarExecute.exe -h 192.168.0.8 -f PopCalculatorShellcode.bin)
  • إضافة المزيد من التحقق من الأخطاء مثل مهلة المقبس

مجموعة أدوات EternalBlue و DoublePulsar

  • ms17_vuln_status.cpp - يرسل هذا البرنامج 4 حزم SMB: حزمة مفاوضات واحدة، حزمة إعداد جلسة واحدة، حزمة اتصال شجرة واحدة، وطلب TransNamedPipe واحد. ثم يقرأ البرنامج استجابة NT_STATUS من طلب TransNamedPipeRequest (طلب PeekNamedPipe) ويحدد ما إذا كان NT_STATUS في حزمة SMB يساوي 0xC0000205 (STATUS_INSUFF_SERVER_RESOURCES). إذا كان ذلك صحيحًا، فإن الهدف يكون عرضة لثغرة MS17-010. تم اختباره على Windows 7 x64-bit غير محدث.

ms17vulnstatus

  • doublepulsar_check.cpp - يرسل هذا البرنامج 4 حزم SMB: حزمة مفاوضات واحدة، حزمة إعداد جلسة واحدة، حزمة اتصال شجرة واحدة، وحزمة SESSION_SETUP من نوع Trans2. بإرسال حزمة SESSION_SETUP من نوع Trans2، يمكن مقارنة معرف المضاعفة المرسل في حزمة استجابة Trans2 مقابل معرف المضاعفة: 0x51 أو 81. يقرأ DoublePulsar معرف المضاعفة المرسل وبعد نجاح أمر ping، يعيد +10 بالنظام الست عشري لمعرف المضاعفة في استجابة Trans2 SESSION_SETUP. بعد ذلك، تُرسل أوامر لحرق باب خلفي DoublePulsar. يكون أمر حرق DoublePulsar في معاملات المهلة لحزمة SMB. بعد ذلك، يصبح DoublePulsar خاملًا ولا يُزال من النظام. تم اختباره على Windows 7 x64-bit.

doublepulsar_check

  • DoublePulsarXORKeyCalculator.cpp - يرسل هذا البرنامج 4 حزم SMB: حزمة مفاوضات واحدة و 3 طلبات. الطلب الأخير هو طلب Trans2 SESSION_SETUP. يتم استلام استجابة Trans2 SESSION_SETUP ويتم استخراج توقيع SMB في (Recvbuff[18] -> Recvbuff[22]). يشير Recvbuff[22] إلى نوع البنية المعمارية. إذا كان 1، فالهدف هو x64-bit، وإذا كان 0، فالهدف هو x86/32-bit. يُحول توقيع SMB من الأحرف غير الموقعة إلى عدد صحيح غير موقع.

SMBSignatureWireshark

ثم تُمرر هذه القيم من Recvbuff[18] -> Recvbuff[22] من خلال دالة حساب مفتاح XOR الخاص بـ DoublePulsar، والتي تولد مفتاح XOR صحيحًا غير موقع يمكن استخدامه لتشفير شيل كود أو حمولة DLL التي سيتم تحميلها إلى DoublePulsar. تم اختباره على Windows 7 x64-bit.

لقطة شاشة نموذجية:

XORCalculator

نفس المفتاح من ثنائي NSA الأصلي في FUZZBUNCH XORCalculatorFromNSAbinary

  • DoublePulsar_structure_ping.cpp - يرسل هذا البرنامج 4 حزم SMB: حزمة مفاوضات واحدة، حزمة إعداد جلسة واحدة، حزمة اتصال شجرة واحدة، وحزمة Trans2 SESSION_SETUP. الفرق بين هذا و doublepulsar_check.cpp هو أن هذا يولد حزمة PING الخاصة بـ DoublePulsar باستخدام هيكل بدلاً من سلسلة SMB السداسية العشرية الثابتة التي استخرجتها من عينة Wannacry. فرق آخر هو أن هذا البرنامج يولد حزمة TreeConnect ديناميكيًا بدلاً من استخدام الحزمة الثابتة الموجودة في عينة Wannacry. ستخبرك حزمة ping المولدة في هذا البرنامج ما إذا كان DoublePulsar مثبتًا على الجهاز البعيد.

  • DoublePulsar_structure_exec.cpp - يرسل هذا البرنامج 5 حزم SMB: حزمة مفاوضات SMB واحدة، حزمة إعداد جلسة واحدة، حزمة اتصال شجرة واحدة، حزمة Ping من DoublePulsar Trans2 SESSION_SETUP، وحزمة تنفيذ من DoublePulsar Trans2 SESSION_SETUP. الفرق بين هذا و Doublepulsar_UploadShellcode.cpp هو أن هذا يولد حزمة تنفيذ DoublePulsar Trans2 باستخدام هيكل بدلاً من سلسلة SMB السداسية العشرية الثابتة التي استخرجتها من عينة Wannacry.

  • Doublepulsar_UploadDLL.cpp - هذا البرنامج مخصص لـ DLLs. يرسل هذا البرنامج 4 حزم SMB مع بيانات DLL في حزم SMB Trans2: حزمة مفاوضات واحدة، حزمة إعداد جلسة واحدة، حزمة اتصال شجرة واحدة، طلب Ping Trans2 SESSION_SETUP، وحزمة تنفيذ Trans2 SESSION_SETUP. تُرسل حزمة طلب Ping Trans2 SESSION_SETUP للحصول على توقيع SMB في حزمة استجابة Trans2 SESSION_SETUP. تتم معالجة هذا التوقيع من خلال حاسبة مفتاح XOR الخاص بـ DoublePulsar. ثم يقرأ البرنامج ملف DLL ويجمعه مع شيل كود نواة 64 بت وشيل كود مساحة المستخدم لتشغيل DLL، ويقوم بعملية XOR للمخزن المؤقت باستخدام مفتاح XOR الخاص بـ DoublePulsar الذي حسبناه من توقيع SMB. يتم إنشاء حزمة عن طريق تخصيص الذاكرة، ونسخ حزمة Trans2، وتحرير القيم اللازمة لعمل معاملة SMB (UserID، TreeID، TotalDataCount، DataCount، ByteCount)، ثم نسخ بيانات XOR (شيل كود النواة + DLL) إلى النهاية، والتكرار عبر ذلك بإرسالها بحجم حزمة إجمالي 4096 بايت في المرة الواحدة إلى DoublePulsar. الحجم الإجمالي للحزمة = 4178. 4096 بايت مخصصة للبيانات المشفرة بـ XOR. سيتم أيضًا تطبيق استخدام هياكل SMB و TRANSACTION2 في الإصدارات المستقبلية.

  • Doublepulsar_UploadShellcode.cpp - يرسل هذا البرنامج 5 حزم SMB: حزمة مفاوضات واحدة، حزمة إعداد جلسة واحدة، حزمة اتصال شجرة واحدة، حزمة Ping Trans2 SESSION_SETUP واحدة، وحزمة تنفيذ Trans2 SESSION_SETUP واحدة. تُرسل حزمة طلب Trans2 SESSION_SETUP للحصول على توقيع SMB في حزمة استجابة TRANS2 SESSION_SETUP. تتم معالجة هذا التوقيع من خلال حاسبة مفتاح XOR الخاص بـ DoublePulsar. ثم ينسخ البرنامج شيل كود النواة وشيل كود نموذجي من مخزن مؤقت، ويقوم بعملية XOR للمخزن المؤقت باستخدام مفتاح XOR الخاص بـ DoublePulsar الذي حسبناه من توقيع SMB. يتم إنشاء حزمة عن طريق تخصيص الذاكرة، ونسخ حزمة تنفيذ Trans2، وتحرير القيم اللازمة لعمل معاملة SMB (UserID، TreeID، TotalDataCount، DataCount، ByteCount)، ثم نسخ معاملات SESSION_SETUP و 4096 بايت من بيانات شيل كود المشفرة بـ XOR إلى النهاية، وإرسالها بحجم حزمة إجمالي 4178 بايت إلى DoublePulsar. الحجم الإجمالي للحزمة = 4178. سيكون طول NetBIOS 4174 لأن رأس NetBIOS لا يحسب نفسه للحجم. 12 بايت من هذه الحزمة مخصصة لمعاملات Doublepulsar SESSION_SETUP. 4096 بايت مخصصة للبيانات المشفرة بـ XOR. في إصدار مستقبلي، سيتم استخدام هياكل SMB و TRANSACTION2.

UploadShellcode

  • شيل كود مولّد من - كتب zerosum0x0 شيل كود مخصصًا لـ ETERNALBLUE يمكن إعادة استخدامه لـ DOUBLEPULSAR، مع تعديل صغير. نظرًا لأن الكتابة فوق استدعاء النظام في شيل كود المنسوخ كانت غير ضرورية لحالة الاستخدام هذه، قمنا بإلغاء تعريفها:
    ;%define SYSCALL_OVERWRITE ; to run at process IRQL in syscall
    أعد التجميع باستخدام: nasm -w-other -o >(xxd -p -c 16 | sed 's/../\x&/g') external/source/shellcode/windows/multi_arch_kernel_queue_apc.asm
    https://github.com/rapid7/metasploit-framework/blob/master/external/source/shellcode/windows/multi_arch_kernel_queue_apc.asm
    https://raw.githubusercontent.com/ninp0/eternalblue/master/eternalblue_kshellcode_x64.asm
    https://raw.githubusercontent.com/ninp0/eternalblue/master/eternalblue_kshellcode_x86.asm
    https://www.rapid7.com/blog/post/2019/10/02/open-source-command-and-control-of-the-doublepulsar-implant/

  • DoublePulsar_UploadExe.cpp - هذا البرنامج مخصص للملفات التنفيذية. سيتم قراءة الملف التنفيذي في الذاكرة ووضعه في DLL مشغل من Wannacry وإرساله عبر DoublePulsar. حزمة مفاوضات واحدة، حزمة إعداد جلسة واحدة، حزمة اتصال شجرة واحدة، حزمة Trans2 Ping واحدة، وحزم متعددة من حزم exec SESSION_SETUP من نوع Trans2. تُرسل حزمة طلب Ping Trans2 للحصول على توقيع SMB في حزمة استجابة Trans2. تتم معالجة هذا التوقيع من خلال حاسبة مفتاح XOR الخاص بـ DoublePulsar. ثم يقرأ البرنامج ملف EXE ويجمعه مع شيل كود نواة 64 بت وشيل كود مساحة المستخدم وملف DLL هيكلي، ويقوم بعملية XOR للمخزن المؤقت باستخدام مفتاح XOR الخاص بـ DoublePulsar الذي حسبناه من توقيع SMB. يتم إنشاء حزمة عن طريق تخصيص الذاكرة، ونسخ حزمة تنفيذ Trans2، وتحرير القيم اللازمة لعمل معاملة SMB (UserID، TreeID، TotalDataCount، DataCount، ByteCount)، ثم نسخ بيانات XOR (شيل كود النواة + DLL + الملف التنفيذي) إلى النهاية، والتكرار عبر ذلك بإرسالها بحجم حزمة إجمالي 4096 بايت في المرة الواحدة إلى DoublePulsar. الحجم الإجمالي للحزمة = 4178. سيكون طول NetBIOS 4174 لأن رأس NetBIOS لا يحسب نفسه للحجم. 12 بايت من هذه الحزمة مخصصة لمعاملات Doublepulsar SESSION_SETUP. 4096 بايت مخصصة للبيانات المشفرة بـ XOR.

  • EternalBlue.cpp - يرسل هذا البرنامج عدة حزم SMB: مفاوضات، إعداد جلسة، اتصال شجرة، وحزم متعددة من NT trans و Trans2. هذه الحزم من نوع NT trans تكون مشوهة مما يهيئ الاستغلال في ذاكرة الكمبيوتر الضحية. يتم إرسال المزيد من حزم SMB الفارغة أو البيضاء إلى الضحية عبر مقابس متعددة إلى نفس المنفذ على الضحية. معظم حمولة EternalBlue المشفرة بـ base64 تُرسل عبر المقبس 1 حيث تم إرسال حزم المفاوضات وإعداد الجلسة واتصال الشجرة. ثم يتم إنشاء 20 مقبسًا آخر وإرسال البيانات إلى تلك المقابس (المقبس 3 إلى المقبس 21). بعد ذلك، يُرسل DoublePulsar عبر المقبس 3 إلى المقبس 21. ثم تُغلق المقابس بواسطة البرنامج مما يفجر EternalBlue و DoublePulsar على الكمبيوتر الضحية. ثم يتم إرسال طلب قطع اتصال SMB وطلب تسجيل خروج SMB ويغلق الاتصال. يعمل هذا الاستغلال وتم اختباره على Windows 7 x64-bit. استغرق الأمر حوالي 5 ثوانٍ لكي يصبح الباب الخلفي قيد التشغيل بالكامل، كما تم الإبلاغ عنه مسبقًا في تقارير EternalBlue حول الإنترنت. قد تكون هناك حاجة لمزيد من محاولات الاستغلال. ومع ذلك، يوجد حاليًا خطأ في تعيين TreeID و UserID بشكل غير صحيح في الحزم، وسيتم إصلاحه في إصدار لاحق. سيعمل هذا ضد الأجهزة التي تم تشغيلها مؤخرًا حيث يتم تعيين TreeID و UserIDs إلى القيم الافتراضية. ستحتاج هذه الحزم إلى تحديث قيم TreeID و UserID الخاصة بها حيث تم تعيينها حاليًا إلى القيم الافتراضية "08 00". EternalBlue EternalBlue_cmd eternalbluepackets

وحدة Metasploit

تم إنشاء وحدة Metasploit مخصصة جعلتها قابلة للتشغيل باستخدام وحدة DoublePulsar RCE مفتوحة المصدر من Metasploit.

قمت بتغيير المنطق للسماح بتوليد DLL ودمجها مع شيل كود نواة x64 (مُسبق الإضافة) الذي أخذته من Wannacry، للسماح لـ DoublePulsar بتشغيل DLL.

msfconsole

كود تعليمي إضافي

يحتوي المستودع أيضًا على ما يلي للأغراض التعليمية وهي غير مدعومة من قبلي:

  • سكريبت Python لتحميل DLL الخاص بـ DoublePulsar x86/x64

  • ثنائي EternalBlue الكل في واحد

  • كود التجميع لـ Multi arch kernel queue apc وكود نواة Multi-Arch Windows x86/x64 من Ring 0 إلى Ring 3 عبر Queued APC

  • شيل كود حمولة نواة EternalBlue x64/x86 من worawit

  • ملف إعادة تشغيل Eternalblue

تنزيل الأداة