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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/angelusrivera/cve-2025-49844
ماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالتعلم والتعليمالفريق الأحمرأمن قواعد البيانات
GitHubangelusrivera/cve-2025-49844

CVE-2025-49844

# ماسح ودليل تعليمي لـ CVE-2025-49844 (RediShell)، ثغرة استخدام بعد التحرير في برمجة Lua النصية في Redis. يفحص خوادم Redis للتحقق من التعرض، ويوفر خطوات المعالجة، ويشرح آليات الاستغلال لأغراض التعلم.

عرض المستودع
1110منذ 11 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

🚨 CVE-2025-49844 (RediShell) - دليل شامل

⚠️ للتعلم فقط، وليس للاختراق ;) ⚠️

مرحبًا! هذه أداة بسيطة صنعتها لمساعدة الناس على التحقق مما إذا كانت خوادم Redis الخاصة بهم معرضة لهذه الثغرة. ليست مخصصة للهجمات الفعلية - فقط للتعلم وحماية أغراضك الخاصة.

ما هذا الموضوع؟

حسنًا يا أصدقائي، إليكم واحدة من أكثر الأخطاء إثارة للاهتمام في عام 2025، وهي CVE-2025-49844. باختصار، إذا كان بإمكان أي شخص تشغيل نصوص Lua على خادم Redis الخاص بك، فيمكنه الوصول إلى الذاكرة.

الأمور المهمة

  • مدى الخطورة؟: خطيرة جدًا (9.9/10)
  • من المتأثر؟: أي شخص يستخدم إصدار Redis 8.2.1 أو أقدم
  • ماذا يحدث؟: تنفيذ كود
  • كيف يفعلون ذلك؟: من خلال نصوص Lua (التي يستخدمها Redis لأشياء قاعدة البيانات المتقدمة)

لنبدأ!

الخطوة 1: بناء هذه الأداة

root@kitploit:~
# أولاً، جهّز أدوات Go
cd scanner
go mod tidy

# ثم قم ببناء الماسح الضوئي
go build -o rscan redis-scanner.go

الخطوة 2: فحص خوادمك

root@kitploit:~
# فحص خادم واحد
./rscan -host your-server.com -port 6379

# الفحص بكلمة مرور (إذا كان لديك واحدة)
./rscan -host your-server.com -port 6379 -auth yourpassword

# فحص عدة خوادم دفعة واحدة
./rscan -host server1.com,server2.com,server3.com

# أو الفحص من ملف
./rscan -file hosts.txt

الخطوة 3: إصلاح ما هو معطل

root@kitploit:~
# إيقاف تشغيل نصوص Lua (هذا يوقف الهجوم)
redis-cli ACL SETUSER default -@scripting

# أو فقط قم بتحديث Redis إلى أحدث إصدار

ماذا تعني النتائج؟

  • 🚨 خطر! - خادم Redis الخاص بك معرض للخطر (إصدار قديم + نصوص Lua تعمل)
  • 🛡️ جيد! - خادم Redis الخاص بك محمي (Lua معطل أو إصدار أحدث)
  • ✅ رائع! - خادم Redis الخاص بك آمن (إصدار 8.2.2 أو أحدث)
  • ❌ عذرًا! - لا يمكن الاتصال أو حدث خطأ ما

كيف تعمل ثغرة الذاكرة هذه

المشكلة

هذا ما يسمى بخطأ "الاستخدام بعد التحرير" (use-after-free). باختصار، لدى Redis نظام لإدارة الذاكرة يرتبك أحيانًا بشأن الذاكرة التي قام بتنظيفها بالفعل.

كيف يجب أن تعمل:

  1. 📝 يقوم Redis بإنشاء بعض البيانات في الذاكرة
  2. 🔍 يستخدم تلك البيانات لشيء ما
  3. 🗑️ ينظف الذاكرة عندما ينتهي
  4. ✅ كل شيء آمن وسليم

كيف تعمل فعليًا (الثغرة):

  1. 📝 يقوم Redis بإنشاء بعض البيانات في الذاكرة
  2. 🔍 يستخدم تلك البيانات لشيء ما
  3. 🗑️ ينظف الذاكرة
  4. 🔍 يحاول استخدام البيانات مرة أخرى (لكنها اختفت بالفعل!)
  5. 💥 كل شيء ينهار وهذا ما يتم استغلاله للمتعة ;)

كيف يستخدمها القراصنة

  • ما يستهدفونه: نظام نصوص Lua في Redis
  • الأوامر التي يستخدمونها: EVAL و EVALSHA (هذه تشغل نصوص Lua)
  • ما يريدونه: الكتابة فوق الذاكرة وتشغيل كود عشوائي

كيفية إصلاح هذا

افعل هذا الآن (أول 24 ساعة)

  1. اعثر على جميع خوادم Redis الخاصة بك (قد يكون لديك أكثر مما تظن)
  2. تحقق من إصداراتها (أي شيء 8.2.1 أو أقدم معطل، ستحتاج إلى التحديث!)
  3. أوقف تشغيل نصوص Lua (هذا يوقف الهجوم فورًا)
  4. خطط للترقية (هذا هو الإصلاح الحقيقي)

إصلاح سريع (أوقف الهجوم الآن!)

root@kitploit:~
# إيقاف تشغيل نصوص Lua (هذا يوقف الهجوم)
redis-cli ACL SETUSER default -@scripting

# أو قم بتحرير ملف redis.conf وأضف هذا السطر:
disable-commands eval evalsha

# ثم أعد تشغيل Redis
sudo systemctl restart redis

قم بتأمين شبكتك

root@kitploit:~
# السماح فقط لعناوين IP محددة بالاتصال بـ Redis
iptables -A INPUT -p tcp --dport 6379 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 6379 -j DROP

# اجعل Redis يستمع فقط على واجهات شبكة محددة
bind 127.0.0.1 10.0.0.100

إعداد كلمات مرور قوية

root@kitploit:~
# تعيين كلمة مرور قوية
redis-cli CONFIG SET requirepass "fuckredis1234ilovehacking!"

# إنشاء مستخدمين بصلاحيات محدودة
redis-cli ACL SETUSER appuser on >password +@read +@write -@scripting
redis-cli ACL SETUSER readonly on >password +@read -@scripting

تحديث Redis (الإصلاح الحقيقي)

root@kitploit:~
# قم بنسخ بياناتك احتياطيًا أولاً (افعل هذا دائمًا!)
sudo cp -r /var/lib/redis /var/lib/redis.backup.$(date +%Y%m%d)

# تحديث Redis إلى الإصدار المُصلح
# على Ubuntu/Debian:
sudo apt update && sudo apt install redis-server=8.2.2*

# على CentOS/RHEL:
sudo yum update redis

# تحقق من أن التحديث نجح
redis-server --version

اختبر أن إصلاحك يعمل فعلاً

تأكد من حظر النصوص

root@kitploit:~
# هذا يجب أن يفشل إذا كان إصلاحك يعمل
redis-cli -a "YourPassword" EVAL "return 'test'" 0
# يجب أن يقول: (error) ERR unknown command 'EVAL'

تحقق من أمان شبكتك

root@kitploit:~
# تحقق مما إذا كان Redis يمكن الوصول إليه من الشبكة
nmap -p 6379 your-redis-server

# اختبر ما إذا كانت كلمة المرور مطلوبة
redis-cli -h your-redis-server -p 6379 ping
# يجب أن يطلب كلمة المرور

كيفية اكتشاف هذا الهجوم

علامات في شبكتك

  • أنماط متزايدة من استخدام نصوص Lua
  • شخص يرسل نصوصًا كبيرة جدًا أو معقدة
  • الكثير من النصوص تعمل بسرعة كبيرة
  • نصوص من الواضح أنها مشبوهة

علامات على خادمك

  • Redis يستمر في الانهيار أو إعادة التشغيل
  • استخدام الذاكرة يقفز صعودًا وهبوطًا
  • Redis يقوم باتصالات شبكة غريبة
  • الوصول إلى ملفات لا ينبغي الوصول إليها

تحقق من سجلاتك

root@kitploit:~
# ابحث عن نشاط نصوص Lua الغريب
grep -i "eval\|evalsha" /var/log/redis/redis.log

# تحقق من محاولات تسجيل الدخول الفاشلة
grep -i "auth" /var/log/redis/redis.log

# ابحث عن أخطاء النصوص
grep -i "script" /var/log/redis/redis.log

ما مدى صعوبة استغلال هذا؟

إنه معقد جدًا (إذا كنت لا تعرف ما يحدث)

  • تحتاج إلى فهم كيفية عمل Redis من الداخل
  • حيل الذاكرة: عليك العبث بكيفية إدارة Redis للذاكرة
  • مهارات Lua: تحتاج إلى أن تكون جيدًا في كتابة نصوص Lua
  • توقيت مثالي: عليك تشغيل الثغرة في اللحظة المناسبة تمامًا

كيف تبدو الاستغلالات الحقيقية

  1. إنشاء أنماط ذاكرة غريبة: كتابة نصوص Lua تجعل Redis يرتب الذاكرة بطرق محددة
  2. خداع عملية التنظيف: جعل Redis ينظف الذاكرة في الوقت الخطأ
  3. كسر الذاكرة: التسبب في استخدام Redis لذواكر محذوفة بالفعل
  4. تشغيل الكود الخاص بك: استخدام الذاكرة المكسورة لتنفيذ ما تريد

ما مدى سوء هذا حقًا؟

ماذا يحدث إذا تم اختراقك

  • سيطرة كاملة: يمكن للقراصنة تشغيل أي شيء يريدونه على خادمك
  • كل بياناتك: يمكنهم رؤية كل شيء في قاعدة بيانات Redis الخاصة بك
  • الانتشار إلى خوادم أخرى: قد يستخدمون خادمك لمهاجمة أشياء أخرى
  • البقاء مخفيين: يمكنهم الاحتفاظ بالوصول حتى بعد أن تظن أنك أصلحت المشكلة

ماذا يعني هذا لعملك

  • تسرب البيانات: يمكن سرقة جميع معلوماتك الحساسة
  • كل شيء ينهار: قد تتوقف خدمة Redis الخاصة بك عن العمل
  • مشاكل قانونية: قد يتم تغريمك لعدم حماية البيانات
  • لا أحد يثق بك: قد يغادر العملاء إذا اكتشفوا ذلك

لنكن تقنيين

ما هي أجزاء Redis المعطلة

  • محرك نصوص Lua (أوامر eval و evalsha)
  • كيفية إدارة Redis للذاكرة
  • نظام جمع القمامة (ينظف الذاكرة غير المستخدمة)

كيف تنكسر الذاكرة

تحدث الثغرة عندما:

  • تقوم بإنشاء أنماط محددة من الكائنات في Lua
  • تعبث بكيفية عد Redis للمراجع إلى الذاكرة
  • تجبر Redis على تنظيف الذاكرة في الوقت الخطأ
  • تستغل توقيت إدارة Redis للذاكرة

أي الإصدارات متأثرة

  • إصدار Redis 8.2.1 والأقدم
  • أي إصدار لديه نصوص Lua مفعلة
  • هذه الثغرة موجودة منذ حوالي 13 عامًا (يا للهول!)

كيف تبدو الاستغلالات (للتعلم)

البنية الأساسية (هذا لن يعمل فعلاً)

root@kitploit:~
-- هذا فقط ليعرض لك شكل البنية
local function create_memory_pattern()
    -- إنشاء كائنات تعبث بتنظيف ذاكرة Redis
    local objects = {}
    for i = 1, 1000 do
        objects[i] = {data = "pattern_" .. i}
    end
    return objects
end

local function trigger_gc()
    -- إجبار Redis على تنظيف الذاكرة في الوقت الخطأ
    collectgarbage("collect")
    -- هنا تحدث ثغرة الذاكرة
end

-- بنية الهجوم الرئيسية
local objects = create_memory_pattern()
-- العبث بمراجع الذاكرة
-- إجبار جمع القمامة
-- استخدام الذاكرة المكسورة لتشغيل الكود

كيفية حماية نفسك

قم بتأمين شبكتك

  • إعداد قواعد جدار الحماية
  • لا تدع Redis يتحدث مع الإنترنت كله
  • راقب حركة مرور الشبكة
  • فعّل التسجيل

تحكم في من يمكنه الوصول

  • استخدم كلمات مرور قوية
  • إعداد صلاحيات المستخدمين (ACLs)
  • امنح الناس فقط الوصول الذي يحتاجونه
  • تحقق بانتظام من من لديه الوصول

راقب المشاكل

  • انظر إلى سجلاتك
  • راقب أداء Redis
  • انتبه للسلوك الغريب
  • لديك خطة عندما تسوء الأمور

هل تريد اختبار هذا بأمان؟

إذا كنت تريد رؤية كيف يعمل هذا دون كسر أي شيء حقيقي، يمكنك استخدام Docker:

root@kitploit:~
# ابدأ Redis للاختبار (هذا معرض للخطر)
docker run -d --name redis-test -p 6379:6379 redis:6.0

# اختبره
cd scanner
./rscan -host localhost -port 6379

# أوقف المعرض للخطر وابدأ المُصلح
docker stop redis-test
docker run -d --name redis-fixed -p 6379:6379 redis:6.0 redis-server --rename-command EVAL "" --rename-command EVALSHA ""
./rscan -host localhost -port 6379

# نظف بعد الانتهاء
docker stop redis-fixed && docker rm redis-fixed

أشياء إضافية (إذا أردتها)

كل الخيارات

root@kitploit:~
cd scanner
./rscan --help

فحص عدة خوادم

أنشئ ملف hosts.txt هكذا:

root@kitploit:~
# ضع خوادمك هنا
server1.com
server2.com:6380
192.168.1.100
redis.example.com:6379

اجعله أسرع

root@kitploit:~
# استخدم المزيد من العمال للفحص بشكل أسرع (إذا كان لديك الكثير من الخوادم)
./rscan -host server1.com,server2.com -workers 20

ما الذي تحتاجه

  • Go 1.21+ (لبناء الماسح الضوئي)
  • redis-cli (للاتصال بـ Redis)
  • Docker (اختياري، للاختبار الآمن)

إذا كسرت ترقيتك كل شيء

root@kitploit:~
# التراجع إلى النسخة الاحتياطية
sudo systemctl stop redis
sudo rm -rf /var/lib/redis
sudo cp -r /var/lib/redis.backup.$(date +%Y%m%d) /var/lib/redis
sudo systemctl start redis

أمور قانونية

هذا فقط للتعلم وحماية أغراضك الخاصة. لا تستخدمه لاختراق خوادم الآخرين - فهذا غير قانوني. لا تكن غبيًا.

المصادر !!

  • صفحة CVE الرسمية
  • مدونة أبحاث Wiz
  • وثائق أمان Redis
  • تفاصيل CVE
تنزيل الأداة