Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
HiveV5_keystream_decryptor — أشياء سيئة من أشخاص سيئين | Kitploit
أدوات/GitHubGitHub/reecdeep/hivev5_keystream_decryptor
أدوات التشفير/فك التشفيرالهندسة العكسيةاستعادة البياناتتحليل البرمجيات الخبيثةالتحاليل الرقمية الجنائيةالتشفيرتحليل الملفات الثنائية
GitHubreecdeep/hivev5_keystream_decryptor

HiveV5_keystream_decryptor

أشياء سيئة من أشخاص سيئين

عرض المستودع
49916منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

HiveV5: برهان المفهوم لمفكك تشفير تدفق المفاتيح

مقدمة

تم اختيار عينة Hive التي تم تحليلها والإشارة إليها في هذا المستند عشوائيًا من هذه القائمة التي أنشأها @rivitna والذي أتوجه إليه بأحر الشكر. القطع الأثرية متاحة على منصة VirusTotal.

في هذا المستند، تم اتخاذ الملف a0h2uih3d2.exe كمرجع

MD5: 15CF5E0DA094ACDD751A513402A8C941
SHA-1: 72E15AC4473903C814E65E3C06F54EB0399580AA
SHA-256: 335D2E4A743D059955760ECF2EC25EE86D36AA60B096C9180E860C64EF78EE55

للحصول على فكرة عن مدى تعقيد برنامج الفدية هذا، يرجى إلقاء نظرة على هذا التحليل المنشور من قبل مركز Microsoft لاستخبارات التهديدات (MSTIC).

يرجى قراءة المستند بأكمله بعناية قبل البدء بالتعامل مع الكود!

نظرة عامة مختصرة على Hive v5

في الأشهر الأخيرة، وجهت معظم طاقتي نحو دراسة وهندسة عكسية لخوارزمية تشفير Hive v5. كان لي شرف التعاون مع محلل برمجيات خبيثة ومهندس عكسي بارع @rivitna الذي قام في الماضي بتحليل الإصدارات السابقة من Hive ونشر أكوادًا وبراهين مفاهيم (PoCs) تتعلق بآليات التشفير الخاصة بها. لقد ساهم (وليس بقليل) في تحديد المكونات المشاركة في عمليات تشفير Hive v5، والتي أصبح تحليلها أكثر صعوبة لكونها مكتوبة بلغة RUST. لقد وجدت بعض القواسم المشتركة مع Babuk، وهو برنامج فدية مهم جدًا آخر تم الكشف عن مصادره في يونيو 2021:

  • خوارزمية تبادل المفاتيح؛
  • قائمة العمليات التي يجب إغلاقها قبل بدء خيوط التشفير الـ1256.

عند تشغيل برنامج الفدية Hive v5 على نظام الضحية، فإنه يولد مفتاحين بنص واضح، باستخدام الخوارزمية الموضحة في الدليل أدناه، والمعتمدة على واجهتي برمجة تطبيقات Windows QueryPerformanceCounter و QueryPerformanceFrequency.

يرجى إلقاء نظرة على هذه الصفحة من Microsoft لمزيد من المعلومات حول واجهات برمجة التطبيقات QueryPerformanceCounter، وهنا لـ QueryPerformanceFrequency.

QueryPerformanceCounter هو عداد وقت دقيق جدًا. عند استدعائه، فإنه يعيد الوقت المنقضي منذ آخر مرة تم فيها تشغيل الكمبيوتر.

QueryPerformanceFrequency يعيد قيمة (تردد) عداد الأداء. له قيمة ثابتة تبلغ 0x989680. وهذا يعني أن قيمة QueryPerformanceCounter يتم تحديثها 0x989680 مرة في الثانية، أي 10,000,000 مرة.

يبلغ حجم المفتاحين ذوي النص الواضح 0xCFFF00 بايت، ويتم توليدهما واحدًا تلو الآخر بايتًا ببايت. أدناه المقتطف الذي يتيح إنشاء مصفوفة من 0xA00000 بايت، وهو الجزء الأكبر مما يسمى بمفتاح النص الواضح الذي يستخدمه Hive لتشفير الملفات على جهاز الكمبيوتر الخاص بالضحية.

snippetGenKeyCleartext

يتم الحصول على كل بايت من المفتاح بأخذ قيمة سجل AL. يحتوي سجل EAX على نتيجة الدالة 0044ADE0 التي أعيدت تسميتها بالعلامة createByte والتي تنفذ الفرق بين اللحظة الزمنية الحالية وقيمة البذرة الأولية، المحسوبة عند أول استدعاء للدالة 0044A850 التي أعيدت تسميتها بالعلامة call_to_QueryPerformanceCounter.

فيما يلي الكود المكتوب بلغة C++ لتوليد مفتاح نص واضح:

c++GenKeyCleartext

الخوارزمية بسيطة جدًا، حتى وإن كانت داخل الدالة 0044ADE0 قد أُدرجت تعليمات تنفذ عمليات زائدة وقفزات شرطية متنوعة في محاولة لتأخير زمن تنفيذ الكود أثناء توليد مفتاح النص الواضح:

useless-conditions

في المجلد HiveRansomwareV5_custom_keygen_PoC ستجد الكود الخام المستخرج بالهندسة العكسية من عينة Hive v5 التي تم تحليلها. إنه ليس كودًا محسنًا مثل الموجود في البرمجية الخبيثة، لأنني كنت بحاجة إلى عدم تفويت سطر واحد من الكود في النسخة المترجمة.

في المجلد HiveRansomwareV5_custom_keygen_PoC-optimized ستجد الكود المحسن المشتق من الكود الخام المذكور أعلاه. في هذه النسخة، يكون الكود أسهل بكثير في القراءة من الكود الخام، وذلك لفهم الوظيفة التي ينفذها.

كلا النسختين تحتاجان إلى تخصيص باسم المستخدم الخاص بك قبل تشغيلهما من أجل حفظ مفتاح النص الواضح المُولَّد على سطح المكتب لديك.

يتم توليد كلا مفتاحي النص الواضح باستخدام نفس الخوارزمية.
يتكون مفتاح النص الواضح من 0xA00000 بايت مولدة عشوائيًا بشكل آمن. ثم يتم نسخ أول 0x2FFF00 بايت في النهاية، مما ينشئ مفتاح نص واضح نهائيًا بحجم 0xCFFF00 بايت.

memcpy2FFF00

ثم يستخدم Hive المفتاحين المُولَّدين لتشفير الملفات، لكن قبل كل شيء، يقوم برنامج الفدية Hive v5 بتشفير المفاتيح المُولَّدة في بنية مخصصة (يشار إليها فيما بعد باسم تدفقات المفاتيح) ويضعها في جذر كل محرك أقراص يقوم بتشفيره باستخدام امتداد .key. على سبيل المثال، إذا كان لديك محركا الأقراص C وD مثبتين على نظامك، فستكون تدفقات المفاتيح المشفرة موجودة في جذر كل محرك.

keysAtRoot

يستخدم برنامج الفدية Hive v5 مفاتيح النص الواضح المُولَّدة لتشفير الملفات باستخدام تعليمة XOR، لذا فنحن أمام تشفير متماثل سريع جدًا على معالجات x86/x64 الحديثة.

كيف يحمي Hive v5 نفسه، وكيف يتحول مفتاح النص الواضح إلى تدفق مفاتيح

يحتاج برنامج الفدية Hive v5 إلى حماية مفتاح النص الواضح المُولَّد بتشفيره مرتين، وسنسمي هاتين المرحلتين فيما بعد بالجولات. يتطلب الأمر جولتين من التشفير للحصول على تدفق المفاتيح النهائي.

لتحقيق ذلك، يتم تنفيذ الخطوات التالية في كل جولة:

  1. توليد مفتاح خاص بحجم 32 بايت، باستخدام نفس الخوارزمية المستخدمة لإنشاء كل بايت من المفتاح؛
  2. باستخدام خوارزمية المنحنى الإهليلجي Curve25519 لتبادل المفاتيح وفقًا لـ Diffie-Hellman، يشتق Hive مفتاحًا عامًا من المفتاح الخاص الذي تم توليده للتو؛
  3. باستخدام Curve25519 مجددًا، يولد Hive مفتاحًا مشتركًا من المفتاح الخاص الذي تم توليده للتو ومن المفتاح العام لشريك Hive (يتغير في كل قطعة أثرية من قطع Hive v5)؛
  4. توليد قيمة nonce بحجم 24 بايت، كنوع من ناقل التهيئة (IV)، باستخدام نفس الخوارزمية المستخدمة للمفتاح الخاص ومفتاح النص الواضح؛
  5. باستخدام خوارزمية HChaCha20، يتم اشتقاق المفتاح المستخدم لتشفير مفتاح النص الواضح المُولَّد؛
  6. باستخدام المفتاح الذي تم إنشاؤه في الخطوة 5 وقيمة nonce التي تم إنشاؤها في الخطوة 4، يقوم Hive بتشفير مفتاح النص الواضح باستخدام خوارزمية XChaCha20. تنتج هذه العملية أيضًا كود مصادقة للرسالة (MAC) بحجم 16 بايت لضمان سلامة عملية التشفير.

تضمن الخطوة 3 إنشاء تدفق مفاتيح يمكن فتحه بزوج مزدوج من المفاتيح الخاصة: تلك التي يولدها Hive أثناء التشفير، وتلك التي ولدها شريك Hive عندما قام بتجميع برنامج الفدية من أجلنا.

keystreamCreation

الفكرة وراء هجوم القوة العمياء

في نهاية هذا الوصف، هناك نقطة معينة تتضح: مفتاح النص الواضح، والمفتاح الخاص، وقيمة nonce المستخدمة في جولتي التشفير يتم توليدها جميعًا بواسطة نفس الدالة أعلاه (0044ADE0 والمعروفة أيضًا باسم createByte). الدالة 0044ADE0 مشروطة بالوقت الذي تستغرقه وحدة المعالجة المركزية (CPU) لتنفيذ الكود المُستدعى داخل حلقة for.

بإلقاء نظرة على الشكل أعلاه الذي يبرز بنية تدفق المفاتيح بعد جولتي التشفير، يتضح أن لدينا وصولًا حرًا فقط إلى قيمة nonce (وإلا لما عرف شركاء Hive كيفية فك تشفير الملفات).

لذا دعونا نركز على قيمة NONCE، التي يبلغ طولها 24 بايت:

NONCE: 40 A4 08 6C D0 D0 34 98 FC 60 C4 28 8C F0 F0 54 B8 1C 80 E4 48 AC AC 10

الفرق بين بايت من قيمة nonce والبايت التالي له (بالقيمة المطلقة) يمثل الوقت المنقضي بين تكرار وآخر. نقدم بهذا التعريف مفهوم البصمة.

بصمة NONCE: 64 9c 64 64 00 9c 64 64 9c 64 9c 64 64 00 9c 64 9c 64 64 9c 64 00 9c

تنزيل الأداة