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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/bootsareme/copyfail-deconstructed
تصعيد الامتيازاتالاستغلالشيل كودالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
GitHubbootsareme/copyfail-deconstructed

copyfail-deconstructed

نسخة سهلة الفهم من CVE-2026-31431

عرض المستودع
31منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

copyfail-مفكك

نسخة سهلة الفهم من CVE-2026-31431، وهي تقنية لتصعيد الامتيازات تسمح لأي شخص بأن يصبح root. الإثبات الأصلي للمفهوم موجود هنا: https://github.com/theori-io/copy-fail-CVE-2026-31431، لكنه مضغوط ومصغّر بشدة ليصبح أصغر حجم ممكن. يحاول هذا المستودع تفكيك ذلك الكود بطريقة أكثر قابلية للقراءة، بما في ذلك ما يفعله الكود، وكيفية تحميل الحمولة، وكيفية استهداف معماريات مختلفة. اطّلع على الشرح الفني الأكثر تفصيلاً هنا: https://xint.io/blog/copy-fail-linux-distributions.

الاستخدام

افتراضياً، تشغيل python3 copyfail.py سيشغّل شيلكود x64 يستهدف /usr/bin/su. يمكنك توفير حمولة خاصة بك عن طريق تشغيل python3 copyfail.py [path/to/custom/payload.elf]. كمثال، يوجد تجميع شيلكود ARM64 داخل payloads/. لذا لاختبار الأجهزة ذات معمارية ARM64، يجب أولاً بناء حمولة مصغّرة باستخدام سكريبت الرابط المخصص لدينا:

root@kitploit:~
as -o shellcode_aarch64.o payloads/shellcode_aarch64.S
ld -nostdlib -static -o shellcode_aarch64.elf shellcode_aarch64.o
strip -s shellcode_aarch64.elf

ثم يمكنك تشغيل الاستغلال الأساسي باستخدام python3 copyfail.py shellcode_aarch64.elf.

لتشغيل النسخة المطوّرة بلغة C:

  1. البناء (كما هو موضح أدناه)
  2. ./c_copyfail والذي يشغّل نفس الشيلكود الافتراضي أعلاه.
  • يمكنك مرّة أخرى توفير حمولة خاصة بك عن طريق تشغيل ./c_copyfail [path/to/custom/payload.elf].

لبناء نسخة C:

root@kitploit:~
cd c_port
make

تحديداً، هذا يجمّع ملف .S الهدف إلى ملف ثنائي خام يُخرَج كمصفوفة unsigned char بلغة C:

root@kitploit:~
gcc -c payloads/[shellcode].S
objcopy -O binary [shellcode].o [payload].raw
xxd -i [payload].raw > payload.txt

أو، لمعمارية x86 32 بت:

root@kitploit:~
gcc -c -m32 payloads/[shellcode].S
objcopy -O binary [shellcode].o [payload].raw
xxd -i [payload].raw > payload.txt

يمكنك بعد ذلك نسخ محتويات هذا الملف إلى كود المصدر الخاص بك، أو يمكنك ببساطة تشغيل ./c_copyfail.exe [path/to/payload.elf] مباشرةً حيث payload.elf يولّد من as + ld وليس من gcc + objcopy.

الإصلاحات

لتجنّب الاستغلال، شغّل:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null

إذا تم الاستغلال بالفعل، يمكنك إعادة تشغيل الجهاز، أو تشغيل: echo 3 | sudo tee /proc/sys/vm/drop_caches

الشرح

  1. يسمح النواة للمستخدم بالتحدث مع واجهة التشفير من خلال مقبس من النوع AF_ALG
  • في عام 2017، أُضيف "تحسين في المكان" (in-place optimisation) إلى جزء algif_aead من واجهة التشفير
  • عندما تُرسَل البيانات عبر المقبس باستخدام استدعاء النظام splice()، تضع النواة صفحات ذاكرة التخزين المؤقت الفعلية للملف الذي تم إلحاقه (spliced) في منطقة عمل التشفير
  • خوارزمية التشفير authencsn تتعامل مع مخزن الإخراج الخاص بها كمساحة خدش وتكتب 4 بايتات بعد الموضع المفترض
  1. ما يمكن أن يفعله الطرف الافتراضي
  • اختيار أي ملف قابل للقراءة (مثلاً /usr/bin/su في هذه الحالة)
  • اختيار إزاحة داخل ذلك الملف حيث ستتم الكتابة ذات 4 بايتات
  • اختيار قيمة 4 بايتات للكتابة (جزء من البيانات المرتبطة في عملية AEAD)
  • كتابة شيلكود لاستبدال الملف في الذاكرة
  1. استبدال ذاكرة التخزين المؤقت للصفحات (page-cache) إلى صلاحيات root
  • النواة لا تضع علامة "متسخ" على الصفحة المفسدة، لذا يبدو الملف غير متغير
  • عند تنفيذ /usr/bin/su، تقرأه النواة من ذاكرة التخزين المؤقت وتحصل على بايتات معدّلة
  • بتكرار الكتابة ذات 4 بايتات (حوالي 40 مرة)، يمكنهم استبدال فحص UID داخل /usr/bin/su ليصبح UID = 0 (root)
  • يتم الحصول على شيل root لأي مستخدم
  1. المعالجة
  • تفريغ ذاكرة التخزين المؤقت للصفحات لإزالة الملفات المعدّلة في الذاكرة، فيُقرأ من القرص في المرة التالية
  • إلغاء تحميل وحدة النواة
  • وضعها في القائمة السوداء لمنع تحميلها
  • إذا كانت وحدة مضمّنة، يجب حظر استدعاء النظام باستخدام seccomp أو eBPF. أو إزالتها من التهيئة وإعادة تشغيل الجهاز.

الملف الثنائي su تم إفساده في الذاكرة، لذا لن يتم اكتشاف تعديل الملف. لاستعادته من القرص، يمكنك تفريغ ذاكرة التخزين المؤقت للصفحات.

تنزيل الأداة