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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pipe-primitive — تقنية استغلال أولية في نواة لينكس مستوحاة من DirtyPipe | Kitploit
أدوات/GitHubGitHub/veritas501/pipe-primitive
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالتعلم والتعليمالهروب من الحاويةاستغلال الملفات الثنائية
GitHubveritas501/pipe-primitive

pipe-primitive

تقنية استغلال أولية في نواة لينكس مستوحاة من DirtyPipe

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

الأكثر شعبية

عرض الكل →

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

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

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

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

pipe-primitive

أصل استغلالي في نواة لينكس مستوحى من DirtyPipe (CVE-2022-0847).


قبل أيام، قمت مثل العديد من كبار المتخصصين في الأمن بدراسة وإعادة إنتاج ثغرة DirtyPipe (CVE-2022-0847)، وشعرت بعمق بمدى سهولة استخدام هذه الثغرة. فهي تبدأ من مشكلة عدم تهيئة ذاكرة، وتنتهي بالتعديل على أي ملف، ودون الحاجة في منتصف الطريق إلى تسريب KASLR أو عمليات ROP وJOP. لذلك لا حاجة لتجاوز حمايات مثل SMEP أو SMAP.

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

فجأة أدركت أن البنية التي تقع فيها DirtyPipe وهي struct pipe_buffer تبدو مألوفة جدًا. آه! أليست هي البنية التي تُخصَّص باستخدام علم GFP_KERNEL_ACCOUNT، وتقع في slab-1k، وتحتوي على حقل ops الذي كثيرًا ما كنت أستخدمه لتسريب KASLR وخطف RIP؟

ثم شعرت أنني أحمق، فلماذا كنت أعدّل ops في pipe_buffer لتنفيذ ROP؟ أليس تعديل flags في pipe_buffer مع splice كافيًا مباشرةً للكتابة التعسفية في أي ملف! عندها لا نحتاج إلى تسريب kaslr، ولا نحتاج إلى تكييف الاستغلال مع إصدارات النواة المختلفة، ولا نهتم بالـ gadgets، ولا نحتاج لتجاوز حمايات SMEP وSMAP وKPTI وغيرها.

سارعتُ إلى إخراج exploits السابقة التي أعدت إنتاجها لدراسة CVE-2021-22555 وغيرها من الاستغلالات التي تتعامل مع بنية pipe_buffer، وعدّلتها قليلًا، ونجحت فورًا في استغلال نوى غير مصحّحة بإصدارات مختلفة. فيما يلي بعض الأمثلة:

  • https://github.com/veritas501/CVE-2021-22555-PipeVersion
  • https://github.com/veritas501/CVE-2022-0185-PipeVersion
  • https://github.com/veritas501/CVE-2022-25636-PipeVersion

وبما أنني لم أرَ أحدًا من قبل استخدمها كأصل (primitive) في استغلال نواة لينكس، فقد سميتها من تلقاء نفسي "Pipe Primitive" XD.


الخلاصة، هي أنك تحتاج إلى الحصول على قدرة تعديل بنية Pipe، مثل UAF في slab-1k، أو كتابة خارج الحدود في slab-1k مع إزاحة (أي ليست تجاوزًا مباشرًا بالترتيب).

بهذه الطريقة، في النواة >= 5.8، نحتاج فقط إلى تعديل flag |= PIPE_BUF_FLAG_CAN_MERGE لصفحة splice في pipe_buffer (وإذا كانت لديك القدرة يمكنك أيضًا جعل offset وlen صفرًا، لتتمكن من الكتابة من بداية الملف)؛ وفي النواة < 5.8، نحتاج أولاً إلى تسريب anon_pipe_ops من pipe_buffer، ثم تعديل ops لصفحة splice إلى anon_pipe_ops (لأن في الإصدارات < 5.8 إمكانية الدمج تعتمد على ops) (وإذا كانت لديك القدرة يمكنك أيضًا جعل offset وlen صفرًا).


أما إذا سألت كيف يتم الهروب من الحاوية بمثل هذا؟ أعتقد أن ما أريد فعله سيكون مشابهًا لـ CVE-2019-5736 إلى حد كبير XD.

تنزيل الأداة