
PoC لـ CVE-2024-23997
إثبات مفهوم لثغرة CVE-2024-23997.
راجع: يعمل الوكيل (proxy)، خاصة وكيل الويب، كوسيط في منتصف اتصال الويب، حيث يستقبل ويرسل الطلبات والاستجابات نيابةً عن الآخرين. لذلك، وبغض النظر عن المنفذ الذي يستخدمه YANA، يمكن للوكيل اعتراض الاتصال. بينما تُستخدم الوكلاء لأغراض أمنية أو لزيادة سرعة البحث عبر التخزين المؤقت، تستغل العديد من البرامج الخبيثة هذه الوكلاء للتنصت على اتصالات الويب التي يرسلها المستخدمون.
دعنا نلقي نظرة على مثال واحد باستخدام YANA. لقد قمت بتثبيت Burp Suite، وهي أداة وكيل تعمل كبرنامج خبيث، على نظام Windows 10 لدي لإعداد بيئة تدريب. Burp Suite هي أداة تشخيص أمن الشبكات من PortSwigger، وإصدار المجتمع الخاص بها متاح مجانًا. إذا كنت ترغب في متابعة هذا المثال، يرجى ملاحظة أن التدريب يتطلب تغييرات في إعدادات الشبكة، لذا من الضروري استعادة الإعدادات.
الخطوة 1) البرنامج الخبيث الفعلي لا يغير إعدادات الإنترنت ولكنه يستمع إلى الحزم باستخدام Windows API و Linux API وما إلى ذلك. ومع ذلك، نظرًا لتعقيده، يتم تفعيل الخيارات يدويًا. اضغط على مفتاح Windows وابحث عن Internet Options.
الخطوة 2) انتقل إلى علامة التبويب Connections، وانقر على زر LAN settings.
الخطوة 3) حدد خانة "Use a proxy server for your LAN"، وانقر على زر Advanced. لاستعادة الإعدادات، ما عليك سوى إلغاء التحديد.
الخطوة 4) عدّل محتوى HTTP في Servers إلى "127.0.0.1" و"8080"، و Exceptions إلى "<-loopback>" وانقر على أزرار OK لحفظ الخيار.
الخطوة 5) افتح Burp Suite.
الخطوة 6) نظرًا لأننا سنكتفي بالتحقق فقط، حدد خانة "Temporary project in memory" وانقر على زر Next.
الخطوة 7) اختر "Use Burp defaults" وانقر على زر Start Burp.
الخطوة 8) انتقل إلى علامة التبويب Proxy، ثم انقر على Proxy settings للتحقق من أن الوكيل مضبوط على 127.0.0.1:8080 في Proxy listeners وتحقق من تحديد Running. أيضًا، انتقل إلى Response interception rules ضمن Proxy listeners وتحقق من تحديد Intercept response based on the following rules. عند إغلاق نافذة الإعدادات، يتم تطبيق الخيارات تلقائيًا.
الخطوة 9) انتقل إلى علامة التبويب Intercept في Proxy وتحقق من أن "Intercept is on"، ثم افتح Yana. عندما يكون الاعتراض مفعّلًا، يتم تعليق جميع اتصالات HTTP/HTTPS ولا يتم إرسالها إلى الطرف الآخر حتى يتم تعطيل الاعتراض أو الضغط على Forward.
الخطوة 10) أثناء الضغط على زر Forward، ابحث عن استجابات HTML بين الاستجابات الواردة من خادم Yana الخلفي. من السهل تمييزها لأن وسم title في مستند HTML مكتوب باسم Yana.
الخطوة 11) أدخل كود JS ("<script>require('child_process').exec('C:/Windows/System32/calc.exe')</script>") باستخدام وسم سكربت تحت وسم body الخاص بـ HTML.
الخطوة 12) بعد ذلك، قم بتعطيل "Intercept is on"، وسيستقبل برنامج Yana Electron الحزم وينفذ السكربت، مما يؤدي إلى تشغيل برنامج الآلة الحاسبة.
الخطوة 13) عند اكتمال التدريب، انتقل إلى Internet options وقم بتعطيل استخدام خادم الوكيل.
وذلك لأن خيار nodeIntegration ممكّن في Yana. حتى إذا تم تعطيل هذا الخيار، يصبح تنفيذ كود Node.js من HTML ممكنًا باستخدام طرق أخرى متنوعة. إذا تم التنفيذ بصلاحيات Yana، وإذا كان Yana يعمل بصلاحيات المسؤول أو الجذر، فيمكن تنفيذ الكود الخبيث المحقون بهذه الصلاحيات. لذلك، وكما ذُكر سابقًا، من الأكثر أمانًا جلب وعرض صفحات HTML باستخدام بروتوكولات مثل بروتوكول File، التي يصعب اعتراضها في الاتصال بين البرامج، بدلاً من استخدام بروتوكول HTTP.