
استغلال SSH لـ CVE-2024-6387 : RCE في خادم OpenSSH، على أنظمة Linux القائمة على glibc
CVE-2024-6387 هو مثال افتراضي، لكن لنفترض أنه ثغرة أمنية حقيقية في تطبيق خادم OpenSSH. قد تتضمن هذه الثغرة مشكلة تجاوز سعة المخزن المؤقت أو تلف الذاكرة تسمح للمهاجمين عن بُعد بتنفيذ كود عشوائي على الخادم. إليك شرح عالي المستوى لكيفية استغلال هذه الثغرة:
الكود المقدم بلغة Python هو أداة استغلال مصممة لاستغلال CVE-2024-6387. إليك تحليل مفصل للخطوات التي ينفذها:
تأسيس الاتصال: يُنشئ اتصال TCP بخادم SSH الهدف.
def setup_connection(ip, port):
# ...
إرسال واستقبال الحزم: يتولى إرسال واستقبال الحزم من وإلى خادم SSH.
def send_packet(sock, packet_type, data):
# ...
تبادل إصدار SSH: يبدأ المصافحة SSH عن طريق إرسال واستقبال سلسلة إصدار SSH.
def send_ssh_version(sock):
# ...
def receive_ssh_version(sock):
# ...
تهيئة تبادل المفاتيح (KEX_INIT): يُرسل ويستقبل حزمة تهيئة تبادل المفاتيح.
def send_kex_init(sock):
# ...
def receive_kex_init(sock):
# ...
تنفيذ مصافحة SSH: يجمع الخطوات أعلاه لإكمال مصافحة SSH.
def perform_ssh_handshake(sock):
# ...
تحضير الكومة: يُرسل سلسلة من الحزم للتلاعب بحالة الكومة على الخادم.
def prepare_heap(sock):
# ...
بنية الملف المزيفة: يُنشئ هياكل ملفات مزيفة لاستغلال ثغرة تلف الذاكرة.
def create_fake_file_structure(data, glibc_base):
# ...
قياس وقت التحليل: يقيس الوقت الذي يستغرقه الخادم لتحليل حزم معينة، مما يساعد في توقيت الاستغلال النهائي بشكل صحيح.
def time_final_packet(sock):
# ...
حزمة المفتاح العام: يُصمم حزمة تحتوي على حمولة الاستغلال، بما في ذلك الشيل كود.
def create_public_key_packet(packet, size, glibc_base):
# ...
استغلال حالة السباق (Race Condition): يحاول استغلال حالة السباق عن طريق توقيت الحزمة النهائية بشكل صحيح.
def attempt_race_condition(sock, parsing_time, glibc_base):
# ...
الدالة الرئيسية: تُنسق عملية الاستغلال الكلية، بما في ذلك محاولات متعددة بقواعد glibc مختلفة.
def main():
# ...
يمثل CVE-2024-6387 ثغرة خطيرة في OpenSSH تسمح بتنفيذ كود عن بُعد. يستغل سكريبت Python المقدم هذه الثغرة عن طريق التلاعب بالكومة وتوقيت إرسال الحزم لإحداث تلف في الذاكرة، مما يؤدي في النهاية إلى تنفيذ شيل كود المهاجم على الخادم. يُظهر السكريبت تقنيات تطوير الاستغلال النموذجية، بما في ذلك حقن الكومة، وتلف الذاكرة، والتوقيت الدقيق لحالات السباق.