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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ets5-password-recovery — ETS5 Password Recovery Tool هي إثبات مفهوم لـ CVE-2021-36799 | Kitploit
أدوات/GitHubGitHub/robertguetzkow/ets5-password-recovery
كسر كلمات المرورأدوات التشفير/فك التشفيرتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةالتشفيرArchived
GitHubrobertguetzkow/ets5-password-recovery

ets5-password-recovery

الأكثر شعبية

عرض الكل →

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

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

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

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

ETS5 Password Recovery Tool هي إثبات مفهوم لـ CVE-2021-36799

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

أداة استعادة كلمة مرور ETS5

جدول المحتويات

  • مقدمة
  • التثبيت
  • المتطلبات
  • كيف تعمل استعادة كلمة المرور؟
  • كيف تم اكتشاف العيب التصميمي؟
  • كيف يمكن تخفيف المخاطر؟
  • الإفصاح المنسق عن الثغرات
  • الترخيص
  • سجل التغييرات

مقدمة

هل نسيت كلمة المرور لأحد مشاريع ETS5 الخاصة بك ولم تعد قادرًا على الوصول إلى تكوين تثبيت KNX؟ تتيح لك أداة استعادة كلمة مرور ETS5 استرداد كلمة مرور المشروع وأسرار أخرى محفوظة في مخزن مشروع ETS5. هذا ممكن لأن ETS5 يحتوي على عيب تصميمي كبير، حيث يستخدم كلمة مرور ثابتة وملح (salt) مشفرين في الكود لتشفير معلومات المشروع (CVE-2021-36799).

موجه الأوامر

تخزين الأسرار التشفيرية في كود المصدر أمر غير مستحسن لأنه يمكن استعادتها عن طريق الهندسة العكسية للبرنامج، مما يوفر حماية قليلة تزيد عن تخزين المعلومات كنص واضح. قد يشكل ذلك تهديدًا لأمان تثبيتات KNX. إذا تمكن المهاجم من الوصول إلى الملفات في مخزن المشروع، فيمكنه فك تشفيرها على الرغم من عدم معرفة كلمة مرور المشروع. تسمح المعلومات الموجودة بداخلها بالتنصت وانتحال الهوية وإعادة تكوين أجهزة KNX. هذه مشكلة خاصة لأن ETS5 يعطي المستخدمين انطباعًا بأن كلمة مرور المشروع ستُستخدم لتشفير معلومات المشروع، وليس فقط للمشاريع المصدرة. لذا، فمن المحتمل أن العديد من المستخدمين ومتكاملي الأنظمة لم يتخذوا خطوات إضافية لضمان سرية مخزن المشروع. إذا قام ETS5 بتنفيذ التشفير بشكل صحيح وتم اختيار كلمة مرور قوية للمشروع، فسيشكل تحديًا أكبر للمهاجم، حتى إذا تمكن من الوصول عن بُعد إلى الكمبيوتر.

المعلومات السرية التالية غير مشفرة بشكل صحيح:

  • كلمات مرور المشاريع
  • مفاتيح FDSK
  • مفاتيح العمود الفقري (Backbone keys)
  • رموز المصادقة للأجهزة والمفاتيح المشتقة منها
  • كلمات مرور إدارة الأجهزة والمفاتيح المشتقة منها
  • كلمات مرور المستخدم/النفق والمفاتيح المشتقة منها
  • مفاتيح الأدوات

أداة استعادة كلمة مرور ETS5 هي إثبات مفهوم يوضح المشكلة عن طريق فك تشفير المعلومات الحساسة وعرضها. تم تطويرها كجزء من الإفصاح المنسق عن الثغرات وتم إصدارها بإذن من رابطة KNX. نشر الأداة يخدم الأغراض التالية:

  1. توثيق المشكلة الأمنية علنًا، مما يسمح للمستخدمين باتخاذ الاحتياطات لتخفيف المخاطر.
  2. لا تخطط رابطة KNX لإصلاح المشكلة في الإصدارات الحالية أو المستقبلية من ETS. قد يؤدي رفع الوعي حول العيب التصميمي إلى تغيير رأيهم. (راجع قسم الإفصاح المنسق عن الثغرات للحصول على تحديث)
  3. الكشف عن العيب التصميمي يشجع رابطة KNX وأي شخص يقرأ هذا المستند على اعتماد ممارسات أفضل في هندسة البرمجيات.
  4. يمكن لأداة استعادة كلمة مرور ETS5 أن تكون مفيدة بالفعل في حال نسي شخص ما كلمة مرور مشروعه الخاص.

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

التثبيت

يمكن تنزيل الملف التنفيذي من قسم الإصدارات. لا يحتاج إلى تثبيت ويمكن وضعه في أي دليل تختاره.

بدلاً من ذلك، إذا كنت لا ترغب في تشغيل برنامج غير موثوق على نظامك، يمكنك فك تشفير السمات الفردية من ملفات XML الخاصة بالمشروع على موقع CyberChef.

المتطلبات

يعتمد البرنامج على .NET Framework 4.6 أو أحدث. يتضمن Windows 10 بالفعل إصدار .NET مناسب افتراضيًا. سيتعين على مستخدمي إصدارات Windows الأقدم تثبيت إصدار حالي من .NET Framework لتشغيل البرنامج.

كيف تعمل استعادة كلمة المرور؟

على عكس ما توحي به واجهة المستخدم، لا يقوم ETS5 بتشفير ملفات المشروع المخزنة محليًا في C:\ProgramData\KNX\ETS5\ProjectStore بكلمة مرور المشروع. بدلاً من ذلك، يستخدم كلمة المرور الثابتة ETS5Password والملح Ivan Medvedev لإخفاء سمات محددة في ملفات XML الخاصة بالمشروع. الأسرار التشفيرية الثابتة هي ضد أفضل الممارسات، كما هو موضح في CWE-798 و CWE-321.

عملية إزالة الإخفاء هي:

  1. السمة المخفية مشفرة بتشفير Base64 ويجب فك تشفيرها، انظر RFC 4648.
  2. احصل على تمثيل البايت لـ Ivan Medvedev كسلسلة مشفرة بـ ASCII أو UTF-8.
  3. استخدم دالة اشتقاق المفتاح المنفذة بواسطة PasswordDeriveBytes في .NET Framework. تعتمد على PBKDF1، لكنها تضيف عدادًا إلى خوارزمية اشتقاق المفتاح. في ETS5، تُستخدم مع SHA-1 كدالة تجزئة، و100 تكرار، وETS5Password ككلمة مرور، وتمثيل البايت لـ Ivan Medvedev كملح. سيتم استخدام أول 32 بايت من مخرجات اشتقاق المفتاح كمفتاح، و16 بايت التالية كمتجه تهيئة (IV).
  4. قم بفك تشفير السمة التي تم فك تشفير Base64 لها باستخدام AES-256 في وضع CBC مع المفتاح و IV من الخطوة 3.
  5. قم بإزالة حشوة PKCS#7، وتكون النتيجة هي القيمة الأصلية للسمة.

يمكن العثور على تنفيذ لإزالة الإخفاء في ملف Deobfuscator.cs. نظرًا لأن كلمة المرور والملح ثابتان، سيكون من الممكن حساب المفتاح و IV مسبقًا لتخطي اشتقاق المفتاح. لا يتم ذلك في تنفيذ هذا البرنامج، لأنه يهدف إلى عرض جميع خطوات إزالة الإخفاء. ومع ذلك، إذا كنت بحاجة إلى المفتاح و IV، فهما مدرجان أدناه.

HexBase64
المفتاح22BD16CDBB96B0E18E977BB3FEFADD8886E7E38A2F8A6FD9D2F2F5663AC20371Ir0WzbuWsOGOl3uz/vrdiIbn44ovim/Z0vL1ZjrCA3E=
IV8E977BB3FEFADD88E6AE6CBEAE3E7CAFjpd7s/763Yjmrmy+rj58rw==

ملفات المشاريع المصدرة (.knxproj) لا تتأثر بهذا العيب التصميمي، وبالتالي لا يمكن استخدام هذه الأداة لاستعادة كلمة مرور المشروع لها. ملف .knxproj هو ملف ZIP يحتوي على ملف ZIP آخر به المعلومات الحساسة. يستخدم الأخير ضغط Deflate وتشفير ZipCrypto / PKWARE وكلمة مرور المشروع لاشتقاق مفتاح التشفير.

كيف تم اكتشاف العيب التصميمي؟

أثناء التحضير لأطروحتي "تحليل أمان بروتوكول KNXnet/IP الآمن"، قمت بالتحقيق في كيفية تخزين ETS5 لمعلومات المشروع. نظرًا لأن ETS يولد ويخزن مفاتيح وكلمات مرور تشفيرية تُستخدم بواسطة أجهزة KNX IP Secure لمصادقة بعضها البعض، وتوفير السرية للاتصالات المتعددة البث، وتأمين تكوين الأجهزة، فمن المهم الحفاظ على سرية المعلومات. إذا تمكن المهاجم من الوصول إلى معلومات المشروع المخزنة بواسطة ETS، فسيؤدي ذلك إلى اختراق أمان تثبيت KNX بالكامل.

لهذا السبب، تم فحص مخزن مشروع ETS5 للتحقق مما إذا كانت البيانات مخزنة بطريقة تضمن السرية. ملفات المشروع في C:\ProgramData\KNX\ETS5\ProjectStore قابلة للقراءة بواسطة كل حساب مستخدم، ولا يلزم وجود صلاحيات مسؤول. تم العثور على المؤشرات التالية التي أثارت الشك في أن البيانات غير مشفرة بشكل صحيح:

  1. ملفات تكوين XML غير مشفرة بالكامل. فقط السمات الحساسة، مثل رموز مصادقة الأجهزة، وكلمات مرور إدارة الأجهزة، ومفاتيح FDSK، ومفاتيح الأدوات، تم تعديلها بحيث لا تحتوي على قيمتها النصية العادية.
  2. يتم تخزين سمة لكلمة مرور المشروع في أحد ملفات XML. بدا هذا غريبًا بعض الشيء لأنه مع التنفيذ الصحيح، سيقوم التشفير باشتقاق المفتاح من كلمة مرور المشروع، لذا لم يكن تخزينها ضروريًا بشكل صارم. ومع ذلك، افتراضيًا، كان من الممكن استخدام هذا للتحقق مما إذا كانت كلمة المرور المدخلة صحيحة قبل محاولة فك تشفير سمات أخرى.
  3. مشروعان بكلمات مرور مختلفة للمشروع، ولكن بأجهزة متطابقة، كان لهما نفس القيم لبعض السمات الخاصة بالجهاز، مثل FDSK.

أشارت النقطة الأخيرة بوضوح إلى أن كلمة مرور المشروع لم تُستخدم في الخوارزمية التي تعدل قيم السمات. يمكن رؤية مثال أدناه، حيث تم تعيين رموز مصادقة الأجهزة في مشروعين P-02FB و P-0117 إلى قيم متطابقة. المخرجات المخفية هي نفسها أيضًا، على الرغم من استخدام كلمات مرور مشروع مختلفة. نظرًا لعدم وجود طلب لإدخال أي شيء بخلاف كلمة مرور المشروع عند فتح المشروع في ETS5، فهذا يعني أن المفتاح إما يجب أن يكون مخزنًا في مكان ما أو أنه خوارزمية إخفاء بسيطة لا تتطلب أي مفتاح. بدا من المحتمل أن الحل لم يكن مثاليًا لضمان السرية وقد يعرض تثبيتات KNX للخطر.

ملفات التكوين غير مشفرة بالكامل.```xml

``` #### كلمة مرور مشروع مختلفة لا تغير المخرجات إذا كانت قيم السمات الأصلية متطابقة```xml ``` نظرًا لأن الملاحظات أشارت بقوة إلى استخدام نهج غير آمن، ربما بسبب استخدام مفتاح تشفير مشفر بشكل ثابت (hard-coded)، كان من الضروري التحقيق في كيفية تعديل قيم السمات. كان الهدف هو تحديد ثغرة أمنية محتملة، يمكن بعد ذلك الإبلاغ عنها للبائع وإصلاحها، مما يحسن الأمان لجميع المستخدمين. تقييم ما إذا كان التنفيذ يوفر سرية كافية يعني أنه كان لا بد من إجراء هندسة عكسية لـ ETS5.

بما أن ETS5 يعتمد على إطار عمل .NET، والذي كان واضحًا فورًا من ملفات DLL المستخدمة، كان من الممكن إجراء عملية التفكيك بسهولة من خلال ILSpy. تم تشويش الثنائي باستخدام Dotfuscator، على الأرجح لجعل جهود الهندسة العكسية أكثر صعوبة. ومع ذلك، تم ترك أسماء الفئات والوظائف سليمة في الغالب بشكل مفاجئ. ومن ثم، كان النهج المختار هو البحث عن الفئات والوظائف التي تبدو مرتبطة بمعالجة ملفات XML، التشفير، فك التشفير، التشويش، إزالة التشويش، المفاتيح أو كلمات المرور. أدى هذا إلى اكتشاف Knx.Ets.ObjectModel.Import.PasswordDescrambler.Scramble و Knx.Ets.ObjectModel.Import.Encryption.EncryptString، والتي يتم استدعاؤها على القيم المشوشة للسمات المخزنة في ملفات XML. لم يتم تمرير أي مادة مفتاح إلى الوظائف، فقد استخدمت فقط قيمًا ثابتة لاشتقاق مفتاح تم استخدامه بعد ذلك لتشفير / فك تشفير السمات باستخدام AES-256 في وضع CBC. كان من الواضح أنه تم استخدام بيانات اعتماد مشفرة بشكل ثابت (hard-coded) لاشتقاق مفتاح. قام Dotfuscator بتغيير تدفق التحكم وأدخل عمليات زائدة، لكن استدعاءات الوظائف من إطار عمل .NET لم يكن من الممكن إخفاؤها. وهكذا، كان من الممكن كتابة مواصفات لعملية (إزالة) التشويش في هذه المرحلة لنهج شبه نظيف الغرفة (semi-clean-room). الجزء المفقود الوحيد هو السلسلة المستخدمة في اشتقاق المفتاح والتي تم إخفاؤها بواسطة dotfuscator. تم اختيار De4dot لعكس تشويش السلسلة، مما كشف عن كلمة المرور ETS5Password. كان IV قابلاً للقراءة بالفعل قبل تطبيق De4dot حيث تم تعريفه كتسلسل بايت. بدافع الفضول الشخصي، تم اكتشاف أن تلك لم تكن بايتات عشوائية، ولكنها في الواقع تمثيل بايت ASCII/UTF-8 للسلسلة Ivan Medvedev.

نظرًا لأن الخلل التصميمي يشكل خطرًا على تركيبات KNX، كان لا بد من الإبلاغ عن المشكلة إلى جمعية KNX. كانت هناك حاجة إلى تطبيق إثبات المفهوم (proof of concept) لضمان إمكانية إثبات المشكلة إذا طُلب ذلك. لتجنب أي انتهاكات لحقوق النشر، تم تنفيذ إثبات المفهوم بناءً على المواصفات التي تم تدوينها. تم ذلك لتجنب أي إعادة استخدام للكود من البرنامج الأصلي. كما أن تطبيق Dotfuscator جعل الكود الأصلي وحتى غير المشوش غير صالح للاستخدام لتنفيذ نظيف على أي حال، مما يضمن أنه حتى النسخ غير المقصود للأصل كان غير مرجح.

للحصول على تفاصيل حول الإفصاح المنسق بعد تطوير إثبات المفهوم، انظر القسم الإفصاح المنسق عن الثغرات الأمنية.

كيف يمكن تخفيف المخاطر؟

لسوء الحظ، اعتبارًا من 2021-07-18، لا يوجد إصدار ETS مصحح متاح. لذلك، من الضروري اتخاذ تدابير إضافية خارج ETS5 لمعالجة المخاطر. تشرح الأقسام الفرعية أدناه أساليب مختلفة يمكن اتخاذها اعتمادًا على نموذج التهديد الذي تفترضه وتحاول الحماية منه.

تشفير القرص بالكامل

  • الحل:
    • تشفير محرك الأقراص الثابتة بالكامل باستخدام Windows BitLocker أو برنامج تابع لجهة خارجية مثل VeraCrypt.
  • الإيجابيات:
    • جميع البيانات الموجودة على محرك الأقراص الثابتة مشفرة ولا يمكن للمهاجمين الوصول إليها طالما أن الجهاز مغلق. يفترض هذا استخدام كلمة مرور معقدة.
    • يوفر Windows بالفعل حلاً سهل الاستخدام مع BitLocker في بعض إصدارات Windows، كما تتوفر حلول برمجية مفتوحة المصدر بسهولة.
  • السلبيات:
    • لا يوفر السرية أثناء تشغيل الكمبيوتر. إذا تمكن المهاجم من الوصول إلى أحد حسابات المستخدمين / استغلال ثغرة تنفيذ التعليمات البرمجية عن بُعد، فسيكون قادرًا على الوصول إلى معلومات المشروع كنص عادي.

تشفير الملفات / المجلدات

  • الحل:
    • تشفير دليل C:\ProgramData\KNX\ETS5\ProjectStore وجميع الملفات الموجودة بداخله باستخدام نظام تشفير الملفات (EFS) في Windows.
  • الإيجابيات:
    • معلومات المشروع مشفرة ولا يمكن للمهاجمين الوصول إليها طالما أن الجهاز مغلق.
    • إذا تم إعداد EFS بواسطة حساب المسؤول أو حساب مخصص لتشغيل ETS، فلن تتمكن حسابات المستخدمين الأخرى من الوصول إلى الملفات. يجب أن يوفر هذا الحماية إذا تمكن المهاجم من الوصول إلى حساب مستخدم على الكمبيوتر وليس الحساب الذي قام بتكوين EFS. يلزم وجود كلمة مرور قوية لحساب المسؤول أو حساب ETS، حيث يتم استخدامها لحماية مواد المفتاح.
  • السلبيات:
    • لا يوفر دائمًا السرية أثناء تشغيل الكمبيوتر. إذا تمكن المهاجم من الوصول إلى حساب المستخدم الذي قام بإعداد EFS أو تمكن من تشغيل التعليمات البرمجية في سياق ذلك المستخدم، فسيظل بإمكانه الوصول إلى معلومات المشروع كنص عادي.

وحدة تخزين مشفرة

  • الحل:
    • إنشاء وحدة تخزين مشفرة باستخدام برنامج تابع لجهة خارجية مثل VeraCrypt، وتخزين معلومات المشروع هناك فقط.
  • الإيجابيات:
    • معلومات المشروع مشفرة ولا يمكن للمهاجمين الوصول إليها طالما أن وحدة التخزين غير مثبتة. يفترض هذا استخدام كلمة مرور معقدة أو رمز جهاز لتشفير وحدة التخزين.
    • يوفر حماية محدودة حتى في حالة تمكن المهاجم من الحصول على حقوق المسؤول. طالما أن وحدة التخزين غير مثبتة أثناء وصول المهاجم إلى النظام، يجب أن تظل البيانات الموجودة في وحدة التخزين المشفرة سرية.
  • السلبيات:
    • يجب نقل ملفات المشروع الأصلية إلى وحدة التخزين المشفرة ثم حذفها بشكل آمن، بحيث لا يمكن استعادة الملفات الأصلية غير المشفرة.
    • يجب إنشاء رابط رمزي (symbolic link) لجعل وحدة التخزين المثبتة تظهر تحت C:\ProgramData\KNX\ETS5\ProjectStore.
    • بشكل عام، يكون إعداده أكثر تعقيدًا.

الإفصاح المنسق عن الثغرات الأمنية

  • 2021-06-26 - تم الإبلاغ عن المشكلة لجمعية KNX
  • 2021-07-09 - أكدت جمعية KNX المشكلة
  • 2021-07-12 - سمحت جمعية KNX بالإفصاح الفوري
  • 2021-07-18 - الإفصاح العام
  • 2021-07-19 - تم تعيين CVE-2021-36799

وفقًا لـ Joost Demarest، المدير التقني والمالي لجمعية KNX، لن يتلقى ETS5 أي تصحيحات حيث تم الانتهاء من تطوير تلك النسخة. لقد سمح بالنشر الفوري للمشكلة في 2021-07-12، متخليًا عن التأخير لمدة 90 يومًا المعروض للإفصاح.

تحديث 2021-11-08

بسبب سوء فهم، ادعى ملف README سابقًا أن جمعية KNX تخطط لمعالجة المشكلة في ETS6. هذا ليس صحيحًا. أوضحت جمعية KNX في 2021-10-25 أنها لا تخطط لإصلاح هذه المشكلة، لأنها لا تعتبر من مسؤولية ETS تخزين مواد المفتاح التشفيري بشكل آمن عندما لا يتم تصديرها.

تحديث 2021-11-10

لقد تواصلت معي جمعية KNX وشرحت أنهم راجعوا خططهم. إنهم يعتزمون الآن توثيق أوجه القصور في إصدار ETS الحالي وتشفير مخزن المشروع بشكل صحيح في إصدار مستقبلي من ETS6.

الترخيص

يتم توزيع المشروع بموجب رخصة MIT.

سجل التغييرات

1.0.0 - 2021-07-18

تجزئة الالتزام:

  • c6a3750cefa74d84c5886097cdd0f30dc1bd0dd1

تنزيل:

  • الكود المصدري
  • الملف التنفيذي

التغييرات:

  • الإصدار الأولي
تنزيل الأداة