
واجهة روبي تفاعلية للاختبار المخوَّل لـ CVE-2025-55182 (react2shell)
______ \_____ ______ / /
| / / /| /_ \
| | / | | /
|| /_____ ___| /_______ /
/ / / /
(react2rubyshell)
[!مهم]
إخلاء مسؤولية: تقع مسؤولية أي إجراءات يتم اتخاذها باستخدام هذا السكريت على عاتق الفرد الذي يقوم بتنفيذه. استخدم هذا فقط ضد الأنظمة التي تمتلكها أو لديك إذن صريح باختبارها.
json، net/http، optparse، readline، securerandom، shellwords، uriلا حاجة لجواهر خارجية.
استنسخ المستودع، أدخل دليل المشروع، وشغّل السكريت باستخدام روبي:
git clone https://github.com/hakkuri01/r2rs.git
cd r2rs
ruby r2rs.rb -h
ruby r2rs.rb -t TARGET [options]
-t, --target TARGET عنوان IP أو اسم المضيف أو URL للهدف (مطلوب)
-p, --port PORT منفذ HTTP للهدف
-nb, --no-banner إخفاء شعار البدء
-h, --help عرض تعليمات الأمر
أمثلة:
ruby r2rs.rb -t 127.0.0.1
ruby r2rs.rb -t 127.0.0.1 -p 3000
ruby r2rs.rb -t http://127.0.0.1:3000
ruby r2rs.rb -t "https://example.test/app?debug=1" -p 8443
ruby r2rs.rb -nb -t 127.0.0.1 -p 3000
إذا لم يتضمن TARGET مخططاً (scheme)، فسيتم افتراض http://. عناوين URL الخاصة بـ HTTPS مدعومة.
إذا كان عنوان URL للهدف يحتوي على أحرف خاصة بالصدفة (shell) مثل ؟، فقم بإحاطته بعلامتي اقتباس:
ruby r2rs.rb -t "https://127.0.0.1/test?x=1"
قبل إطلاق الجلسة النشطة، تقوم الأداة بالتحقق من صحة الهدف باستخدام أمر استكشافي. إذا فشل التحقق، تطبع رسالة خطأ وتخرج.
الجلسة مدعومة بـ HTTP: يقوم روبي المحلي بإعادة استخدام اتصال HTTP واحد، ويرسل الأوامر من خلال مسار الطلب الحالي، ويعرض الاستجابة في موجه Readline تفاعلي. يتم تهيئة سياق الموجه عند بدء التشغيل وتحديثه بعد كل أمر باستخدام المستخدم البعيد واسم المضيف ودليل العمل.
اكتب exit أو اضغط على Ctrl-C لإغلاق الجلسة.
لا يتطلب هذا الوضع عمداً وجود روبي أو بايثون أو socat أو script أو أي أداة مساعدة PTY على الجانب الهدف. وبسبب ذلك، فهو ليس PTY عن بعد حقيقياً. قد تظل البرامج التي تعمل بملء الشاشة والحساسة لـ TTY مثل vim وnano وsu وssh ومطالبات كلمة المرور التفاعلية محدودة.