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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2017-8890-msf — لطلب سحب Metasploit | Kitploit
أدوات/GitHubGitHub/7043mcgeep/cve-2017-8890-msf
أطر الاستغلالتحليل الثغرات الأمنيةالاستغلالاستغلال الملفات الثنائية
GitHub7043mcgeep/cve-2017-8890-msf

cve-2017-8890-msf

لطلب سحب Metasploit

عرض المستودع
11منذ 7 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

الوحدة: Phoenix Talon CVE 2017-8890

قد يؤدي هذا إلى حل المشكلة #8571، والتي تطلب وحدات Phoenix Talon.

نظرة عامة على 2017-8890

هذا CVE:

  • هو العضو الأكثر خطورة في فئة Phoenix Talon من ثغرات نواة لينكس. لا يوجد POC لهذا CVE في Exploit DB. لكن هناك POC عامة أخرى متاحة.
  • ليس موثقًا بشكل جيد. لكن إليك شرح قصير لتعطيك فهمًا عامًا للثغرة.
  • موجود في جميع إصدارات النواة حتى 4.10.15، رغم أن بعض المصادر تقول إنه موجود حتى 4.11. اطلع على الـ patch commit هنا.
  • هو نتيجة خلل في كومة IPv4 للنواة (تحديدًا، multicast).

على الجهاز المستهدف، يتم تشغيل double-free بسبب احتفاظ النواة بنسخة إضافية من mc_list في وقت accept().

كود زائف مع شروحات:

جهاز يعمل بنواة 4.10.15 أو أقل يكون عرضة للخطر إذا كان يقوم بالروتين التالي:

root@kitploit:~
sockfd = socket(AF_INET, xx, IPPROTO_TCP);
setsockopt(sockfd, SOL_IP, MCAST_JOIN_GROUP, xxxx, xxxx);
bind(sockfd, xxxx, xxxx);
listen(sockfd, xxxx);
newsockfd = accept(sockfd, xxxx, xxxx);
close(newsockfd);  // trigger release calls, handoff to RCU
sleep(5);          // wait for rcu to free()
close(sockfd);     // second free()

يتم إنشاء الـ socket الأب، sockfd. يتم إضافته إلى مجموعة multicast باستخدام الخيار MCAST_JOIN_GROUP. عند إضافة الـ socket إلى مجموعة multicast على الواجهة المحلية، تقوم النواة بتخصيص ذاكرة. في هذه المرحلة، mc_list موجود في الـ socket الأب.

بعد تعيين عنوان للـ socket باستخدام bind()، ثم listen() للاتصال و accept(). يقوم accept() بإنشاء socket جديد، newsockfd، يتم نسخ جميع الحقول الضرورية من الأب إليه، بما في ذلك قيمة مؤشر mc_list. في هذه المرحلة، هناك مؤشرات متعددة تشير إلى نفس الكتلة الذاكرة، وبالتالي double-free.

عند تأسيس الاتصال، تقوم النواة بإنشاء socket فرعي يرث كائن mc_list الخاص بالـ socket الأب. هذا الخلل في الوراثة موجود في inet_csk_clone_lock في السطر 648 من ملف net/ipv4/inet_connection_sock.c. اطلع على الـ patch لرؤية الإصلاح المكون من سطر واحد لهذا الوراثة غير المقصودة.

بعد ذلك، أغلق الـ socket الفرعي. كما شرحنا أعلاه، هذا لا يحرر كائن mc_list. يمر عبر بنية RCU (remote-copy-update) لتحرير الذاكرة. sleep() لبضع ثوانٍ للتأكد من أن تسليم RCU لديه وقت كافٍ لاستدعاء kfree(). أخيرًا، أغلق الـ socket الأب، مما سيؤدي إلى تشغيل التحرير الثاني.

الوحدة

هجوم بسيط من نوع DoS. تشغيل double-free عن بعد على جهاز مستهدف معروف يقوم بالروتين الخادم المطلوب (مشروح أعلاه). هذا يسبب panic في النواة.

تنزيل الأداة