نقوم بتحليل الثغرة الأمنية في Citrix ADC التي تسمح لك باختراق الشبكة الداخلية للشركة في دقيقة واحدة

في نهاية العام الماضي ، اكتشف خبير التقنيات الإيجابية ثغرة CVE-2019-19781 في برنامج Citrix ADC ، والتي تسمح لأي مستخدم غير مصرح له بتنفيذ أوامر نظام تشغيل تعسفي.



تتعرض حوالي 80 ألف شركة حول العالم للتهديد . لجعل الأمور أسوأ ، يتم تثبيت Citrix ADC عند الواجهة بين الشبكة الخارجية والداخلية للمؤسسة. وهكذا ، بعد استغلال الثغرة الأمنية ، يتمكن المهاجم على الفور من الوصول إلى الشبكة الداخلية للشركة ولديه القدرة على تطوير الهجمات على قطاع الشبكة الخاصة.



في مقال اليوم ، سيقوم مؤلف الدراسة بتحليل الثغرة بمزيد من التفصيل ، وتفاصيل الكشف عنها واستغلالها. اذهب!



ما هو Citrix ADC



Citrix ADC هو حل تسليم التطبيقات وموازنة التحميل المستند إلى البرامج ، والمصممة خصيصًا لتسريع أداء التطبيقات التقليدية والسحابية وتطبيقات الويب ، بغض النظر عن مكان استضافتها. يتم استخدام وحدات التحكم هذه على نطاق واسع في صناعات تكنولوجيا المعلومات والاتصالات. وفقًا للتنبؤات ، بحلول عام 2023 ، سيزداد الطلب على شركات ADC من الشركات المالية وشركات التأمين.



ما مدى خطورة ذلك



خلال مراقبة التهديدات الحالية (استخبارات التهديدات) ، وجد أن ما لا يقل عن 80.000 شركة من 158 دولة معرضة للخطر. في الوقت الذي تم اكتشاف الثغرة الأمنية ، كانت TOP-5 من خلال عدد من هذه المنظمات تشمل الولايات المتحدة الأمريكية (القائد المطلق - أكثر من 38 ٪ من جميع المنظمات الضعيفة تقع في الولايات المتحدة) ، ألمانيا ، بريطانيا العظمى ، هولندا ، أستراليا.



احتلت روسيا المرتبة 26 من حيث العدد الإجمالي للشركات التي يحتمل أن تكون عرضة للخطر في مختلف قطاعات الأعمال - أكثر من 300 منظمة في المجموع. احتلت كازاخستان وبيلاروسيا المرتبة 44 و 45 من حيث عدد الشركات الضعيفة ، على التوالي.



اعتبارًا من فبراير 2020 ، كانت أفضل البلدان من حيث عدد المنظمات التي من المحتمل أن تكون ضعيفة تشمل البرازيل (43٪ من عدد الشركات التي تم تحديد الثغرة فيها في البداية) ، الصين (39٪) ، روسيا (35٪) ، فرنسا (34٪) ، إيطاليا (33٪) وإسبانيا (25٪). تم عرض أفضل الديناميكيات في القضاء على الثغرات الأمنية من قبل الولايات المتحدة والمملكة المتحدة وأستراليا: في هذه البلدان ، تم تسجيل 21٪ من الشركات التي استمرت في استخدام الأجهزة الضعيفة ولم تتخذ أي تدابير للحماية.







الاكتشاف والتشغيل



في بداية بحثي ، وجدت أن استخدام Path Traversal ، وهو مستخدم غير مصرح له لديه القدرة على الوصول إلى الملفات الثابتة التي لا يمكن الوصول إليها بدون إذن (/vpn/../vpns/style.css). تم العثور على هذا خلال تحليل الصندوق الأسود لـ Citrix ADC.







السلوك الموصوف أعلاه يثير اهتمامي ، لذلك قررت العثور على صورة Citrix ADC وتشغيلها محليًا (بفضل زميلي يوري ألينوف للمساعدة).



بادئ ذي بدء ، قمنا بتحليل تكوين خادم الويب Apache (/etc/httpd.conf) ، وهو المسؤول عن واجهة الويب لهذا التطبيق. كما نرى في الصورة أدناه ، تتم معالجة المسارات التي تندرج تحت النمط " /vpns/portal/scripts/.*\.pl$ " بواسطة وظيفة ModPerl :: Registry. اتضح أنه من الممكن تنفيذ مخطوطات بيرل من المجلد/ netscaler / portal / scripts / بدون تصريح.







بعد ذلك ، بدأت في تحليل البرامج النصية التي يمكننا الاتصال بها بالانتقال إلى /vpn/../vpns/portal/scripts/ [scriptName] .pl .







يستدعي كل نص برمجي تقريبًا وظيفة csd لوحدة NetScaler :: Portal :: UserPrefs ( /netscaler/portal/modules/NetScaler/Portal/UserPrefs.pm ). تعمل الوظيفة مع رؤوس HTTP NSC_USER و NSC_NONCE. لا يتم اتخاذ إجراءات مثيرة للاهتمام مع الرأس الثاني ، ولكن يتم استخدام قيمة رأس NSC_USER كاسم للملف. إذا كان الملف (الذي تم تمرير اسمه كقيمة رأس NSC_USER) غير موجود ، فسيتم إنشاء هذا الملف بهيكل معين ، وإذا كان موجودًا بالفعل ، فسيتم تحليل المتغير $ doc واستناداً إليه .... اتضح أنه إذا استخدمنا اجتياز المسار في اسم الملف ، فيمكننا إنشاء ملف بالملحق ".xml" في أي دليل لنظام الملفات حيث لدينا أذونات الكتابة. للتحقق من ذلك ، أرسل السطر "../../../../tmp/myTestFile" كقيمة رأس "NSC_USER" وتحقق من وجود الملف في الدليل "/ tmp /". في هذه المرحلة ، لدينا القدرة على إنشاء ملف بامتداد ".xml" ، ولكن لا توجد طريقة للتحكم في محتويات الملف. دعونا ننتبه إلى البرنامج النصي "newbm.pl" ، والذي يقع أيضًا في الدليل الذي نهتم به. يأخذ هذا النص البرمجي معلمات POST ويكتب إلى ملف (يتم تحديد اسمه في رأس NSC_USER) قيم المعلمات مثل "url" و "title" و "desc".



























من الممكن الآن ليس فقط إنشاء ملفات xml في أماكن عشوائية ، ولكن أيضًا للتحكم جزئيًا في محتواها.



لمتابعة المسار إلى RCE ، دعنا نعود إلى تكوين خادم الويب ونلاحظ أنه يتم معالجة مسار آخر (/ vpns / portal /) بواسطة وظيفة perl NetScaler :: Portal :: Handler ( / netscaler / portal / modules / NetScaler / Portal / Handler.pm )







تحصل وظيفة المعالج على الجزء من المسار بعد الحرف "/" الأخير كاسم ملف ، وتبحث عنه في المجلد "/ netscaler / portal / templates /" وتحاول عرض هذا الملف باستخدام مكتبة "Template Toolkit". وبالتالي ، إذا كان بإمكاننا تحميل ملفنا في المجلد الذي يحتوي على قوالب ، فيمكننا أيضًا استدعاء العرض الخاص به.











مزيد من الاستغلال معقد بسبب حقيقة أن مكتبة Template Toolkit تعمل في مثل هذا الوضع بحيث يستحيل تنفيذ كود perl باستخدام طرق قياسية. على سبيل المثال ، لا يمكن استخدام التوجيه " [٪ PERL٪] ".







بناءً على هذه القيود ، قررت البحث عن نقاط الضعف في المكونات الإضافية القياسية للمكتبة. ضع في اعتبارك مكونًا إضافيًا مثل "Datafile" ( /usr/local/lib/perl5/site_perl/5.14.2/mach/Template/Plugin/Datafile.pm ). الملف صغير نوعًا ما ، لذلك ننتبه فورًا إلى استدعاء الوظيفة القياسية "فتح" باستخدام وسيطتين. هذا الاستخدام غير آمن ويمكن أن يؤدي إلى RCE.







نحن نحاول استغلال الثغرة محليًا وكاختبار نقوم بإنشاء ملف "testRCE" في المجلد "/ tmp /".







في الوقت الحالي لدينا القدرة على إنشاء ملفات في أماكن عشوائية على النظام ، للتحكم جزئيًا في محتواها ونقاط ضعفها في مكتبة مجموعة أدوات النماذج. نستخدم كل هذا من أجل الحصول على تنفيذ أوامر تعسفية من مستخدم غير مصرح به.



قم بإنشاء ملف في المجلد يحتوي على قوالب ، سيؤدي عرضها إلى تنفيذ التعليمات البرمجية وإنشاء مترجم سطر أوامر ويب.







ثم نقدم هذا الملف.







ننتقل إلى البرنامج النصي (shell shell) الذي أنشأناه سابقًا وننفذ أمر نظام تشغيل تعسفي.







كيف تحمي نفسك



أصدرت Citrix إرشادات لمعالجة مشكلة عدم الحصانة هذه. بالإضافة إلى ذلك ، توصي الشركة المصنعة بأن يقوم المستخدمون على الفور بتحديث جميع إصدارات البرامج الضعيفة إلى الإصدارات الموصى بها.



يمكن للشركات استخدام جدران الحماية على مستوى التطبيق لمنع هجوم محتمل. على سبيل المثال ، يكتشف PT Application Firewall هذا الهجوم خارج الصندوق: يجب وضع النظام في حظر الطلبات الخطيرة للحماية في الوقت الحقيقي. مع الأخذ في الاعتبار إجمالي عمر الثغرة المحددة التي تم تحديدها (كانت ذات صلة منذ إصدار أول نسخة ضعيفة من البرنامج ، أي منذ عام 2014) ، من المهم أيضًا تحديد الاستغلال المحتمل لهذه الثغرة (وبالتالي اختراق البنية التحتية) في وقت لاحق.



يمكن لمستخدمي PT Network Attack Discovery ، بدءًا من 18 ديسمبر 2019 ، الاستفادة من القواعد الخاصة التي تكشف عن محاولات استغلال هذه الثغرة الأمنية عبر الإنترنت.



المؤلف : Mikhail Klyuchnikov (@ __mn1__ )، تقنيات إيجابية



الجدول الزمني



  • 5 ديسمبر 2019 تم إبلاغ Citrix
  • 19 ديسمبر 2019 الإفراج عن خطوات التخفيف من Citrix



All Articles