
بيئة مختبرية تعليمية توضح ثغرة CVE-2025-49844 (RediShell) في Redis. تتضمن إعداد Docker، ونص برمجي لاستغلال الثغرة (PoC)، وتوصيات أمنية لتصحيح الثغرة وتحصين النظام.
بيئة مختبرية عملية لاختبار وفهم الثغرة الأمنية الحرجة CVE-2025-49844 (RediShell) في Redis.
هذا لأغراض تعليمية فقط!
جميع إصدارات Redis قبل:
يستخدم هذا المختبر Redis 7.2.0 (إصدار معرض للخطر).
# تثبيت Docker و Docker Compose
sudo apt-get update
sudo apt-get install docker.io docker-compose
# تثبيت تبعيات Python
pip install redis colorama
# 1. تشغيل مثيل Redis المعرض للخطر
docker-compose up -d
# 2. انتظر بضع ثوانٍ حتى يبدأ Redis
sleep 5
# 3. تحقق من أن Redis يعمل
docker-compose ps
# 4. تشغيل الاستغلال
python3 exploit_poc.py -H localhost -p 6380 -m all
# فحص الثغرة فقط
python3 exploit_poc.py -H localhost -p 6380 -m check
# تشغيل اختبار UAF الأساسي
python3 exploit_poc.py -H localhost -p 6380 -m basic
# اختبار الهروب من الصندوق الرملي
python3 exploit_poc.py -H localhost -p 6380 -m sandbox
# اختبار تلف الذاكرة المتقدم
python3 exploit_poc.py -H localhost -p 6380 -m advanced
# تشغيل جميع الاختبارات
python3 exploit_poc.py -H localhost -p 6380 -m all
# مع المصادقة
python3 exploit_poc.py -H localhost -p 6380 -a "password" -m all
# عرض السجلات
docker-compose logs -f
# الاتصال بواجهة Redis CLI
docker-compose exec redis-vulnerable redis-cli
# إيقاف المختبر
docker-compose down
# إزالة كل شيء (بما في ذلك وحدات التخزين)
docker-compose down -v
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-49844 (RediShell) PoC ║
║ Use-After-Free in Redis Lua Interpreter ║
║ CVSS Score: 10.0 (CRITICAL) ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing connection to localhost:6380...
[+] Connected successfully!
[i] Redis Version: 7.2.0
[*] Checking if Lua scripting is enabled...
[+] Lua scripting is enabled!
[*] Checking vulnerability status...
[i] Detected Redis version: 7.2.0
[!] VULNERABLE: This version is affected by CVE-2025-49844
[!] Update to the latest patched version immediately!
[*] Attempting basic UAF trigger...
[+] Lua script executed: UAF pattern executed
[!] UAF pattern triggered (simplified demo)
[*] Testing Lua sandbox boundaries...
[*] Testing os.execute...
[+] Protected: os.execute blocked
[*] Testing io.popen...
[+] Protected: io.popen blocked
[*] Testing loadfile...
[+] Protected: loadfile blocked
[*] Testing package.loadlib...
[+] Protected: package.loadlib blocked
[*] Attempting memory corruption pattern...
[+] Memory corruption pattern executed: Memory corruption pattern completed
[!] In vulnerable versions, this could lead to RCE!
============================================================
[*] PoC execution completed
============================================================
تستغل الثغرة خطأ استخدام بعد التحرير (Use-After-Free) عمره 13 عامًا في مترجم Lua الخاص بـ Redis:
# سحب أحدث إصدار مصحح
docker pull redis:8.2.2
# أو
docker pull redis:7.4.6
# /etc/redis/redis.conf
# تفعيل المصادقة
requirepass your_strong_password_here
# تقييد الوصول إلى الشبكة
bind 127.0.0.1 ::1
protected-mode yes
# تعطيل الأوامر الخطيرة
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
rename-command EVALSHA ""
# تفعيل التسجيل
loglevel notice
logfile /var/log/redis/redis-server.log
# تعطيل سكربتات Lua لمستخدمين محددين
redis-cli ACL SETUSER myuser -@scripting
# إنشاء مستخدم محدود
redis-cli ACL SETUSER limited on >password ~* +@read +@write -@scripting
# استخدام قواعد جدار الحماية
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379
# أو استخدام iptables
sudo iptables -A INPUT -p tcp --dport 6379 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6379 -j DROP
# التحقق مما يستخدم المنفذ
sudo lsof -i :6380
# أو تغيير المنفذ في docker-compose.yml
# ports:
# - "6381:6379"
# تثبيت الحزم المطلوبة
pip install redis colorama
# أو استخدام بيئة افتراضية
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# إضافة المستخدم إلى مجموعة docker
sudo usermod -aG docker $USER
# ثم تسجيل الخروج والدخول مرة أخرى
# التحقق من السجلات
docker-compose logs
# إعادة تشغيل الحاوية
docker-compose restart
# إعادة بناء الصورة
docker-compose up -d --build
redis_exploit/
├── Dockerfile # Redis 7.2.0 vulnerable instance
├── docker-compose.yml # Docker Compose configuration
├── exploit_poc.py # Main exploit script
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore file
└── README.md # This file
هذا الـ PoC مبسط ولأغراض تعليمية فقط. يتضمن استغلال CVE-2025-49844 الفعلي معالجة ذاكرة معقدة. قم دائمًا بتحديث مثيلات Redis الخاصة بك إلى أحدث إصدار!