
استغلال لإثبات المفهوم لـ CVE-2024-6387 يستهدف خوادم OpenSSH الضعيفة عبر التلاعب بالكومة وحالة السباق لتحقيق تنفيذ التعليمات البرمجية عن بُعد.
يحتوي هذا المستودع على إثبات المفهوم (POC) لاستغلال الثغرة الأمنية CVE-2024-6387 في خوادم SSH التي تشغل إصدارات ضعيفة من OpenSSH.
إثبات المفهوم، أو POC، هو برنامج أو سكريبت يوضح استغلال ثغرة أمنية بطريقة محكومة وقابلة للتكرار. هدفه الرئيسي هو إظهار أن الثغرة موجودة ويمكن استغلالها لتنفيذ تعليمات برمجية خبيثة أو القيام بإجراءات غير مصرح بها على النظام المتأثر.
صُمم إثبات المفهوم في هذا المستودع لاستغلال الثغرة CVE-2024-6387 في خوادم SSH. فيما يلي شرح مختصر لكيفية عمل كل جزء من الكود:
CVE-2024-6387.py: يحتوي هذا الملف على الكود الرئيسي لإثبات المفهوم. يتم هنا تعريف دوال لإنشاء اتصال بخادم SSH، وإرسال حزم محددة للتلاعب بذاكرة الهيب (heap) الخاصة بالخادم، وقياس أوقات الاستجابة، واستغلال حالة السباق (race condition) في الخادم.
setup_connection(ip, port): إنشاء اتصال TCP/IP بالخادم البعيد. send_packet(sock, packet_type, data): إرسال حزمة إلى الخادم البعيد. perform_ssh_handshake(sock): إجراء مصافحة SSH كاملة. prepare_heap(sock): تجهيز هيب الخادم بحزم محددة لاستغلال الثغرة. time_final_packet(sock, parsing_time): قياس وقت الاستجابة النهائي للخادم. attempt_race_condition(sock, parsing_time, glibc_base): محاولة استغلال حالة السباق في خادم SSH. perform_exploit(ip, port): تنفيذ الاستغلال الكامل مع محاولة عدة عناوين أساسية لـ glibc.
لكي يعمل إثبات المفهوم هذا مع الثغرة CVE-2024-6387، يجب إجراء التعديلات أو الاعتبارات التالية:
تحديث شيل كود (shellcode): استبدل المحتوى المؤقت للشيل كود shellcode = b"\x90\x90\x90\x90" بشيل كود حقيقي ينفذ الإجراء المطلوب على الخادم المتأثر.
التكيف مع CVE-2024-6387: تأكد من أن هياكل البيانات والحزم المُرسلة في الدالتين prepare_heap و create_public_key_packet مصممة خصيصاً لاستغلال نقاط الضعف الموصوفة في CVE-2024-6387.
تم توفير هذا المستودع لأغراض تعليمية وبحثية. قد يكون استغلال الثغرات دون إذن غير قانوني وممنوع منعاً باتاً في البيئات غير المصرح بها. لا يتحمل المؤلف أي مسؤولية عن سوء استخدام هذا الكود.