
CVE-2020-11881: DoS عن بُعد بدون مصادقة لخدمة SMB في MikroTik.
يصف هذا التقرير الثغرة CVE-2020-11881، وهي ثغرة حجب خدمة (DoS) عن بُعد بدون مصادقة في خدمة SMB الخاصة بـ MikroTik والتي تعمل على نظام RouterOs. تسمح الثغرة للمهاجم بالتسبب في انهيار خدمة SMB قيد التشغيل، وقد تم الإفصاح عنها بشكل مسؤول إلى security<@>mikrotik.com في 06.04.2020.
تم تقديم بروتوكول Server Message Block (SMB) بواسطة Microsoft وأُعيد تنفيذه من قبل العديد من البائعين من أجل الحفاظ على التوافق في تبادل الملفات مع أنظمة وخدمات Windows. يُستخدم البروتوكول بشكل عام لتبادل الملفات بين أنظمة Windows.
6.41.3 (إصدار طويل الأمد)
6.45.8 (إصدار طويل الأمد)
6.45.9 (إصدار طويل الأمد)
6.46.4 (إصدار مستقر)
6.47.2 (مستقر)
6.47.3 (مستقر)
7.0beta5 (نسخة تجريبية)
7.1beta2 وما دون
من المحتمل أن المزيد من الإصدارات التي صدرت قبل 12.09.2020 متأثرة. باستثناء الإصدار 6.47.0 الذي يبدو أنه تم إصلاحه لدورة إصدار واحدة كاستجابة لعملية الإفصاح المسؤول الأولية.
سينهار خادم SMB بعد استلامه حزمة negotiation-request تليها حزمة setup-request معدلة.
لتفعيل الثغرة، يجب أن يكون حقل MessageID في حزمة setup-request مضبوطًا على 1 وحقل
SessionID مضبوطًا على 0. تنهار الخدمة لأنها على ما يبدو لا تستطيع التعامل مع حقل SessionID.
لإعادة إنتاج الخلل بشكل موثوق، يرجى إعادة بناء بيئة الاختبار المستخدمة المتوفرة في هذا المستودع.
قم بتنزيل بيئة RouterOs وتشغيلها.
يرجى تنفيذ السكربت التالي على نسخة مثبتة حديثًا من Ubuntu 18.04، حيث أن السكربت سيقوم بتثبيت جميع البرامج المطلوبة. ينتهي السكربت بتوفير عنوان IP الخاص بجهاز RouterOs الافتراضي.
sudo ./setupMikroTikEnvironment.sh
تفعيل SMB على RouterOs
قم بتشغيل الأوامر التالية لتفعيل خدمة SMB.
telnet <RouterOs IP>
(user: admin, <no password>)
ip smb set enabled=yes
ip smb print
يمكن فحص الخدمة يدويًا من النظام المضيف باستخدام الأمر التالي ويجب أن تستجيب
برسالة Anonymous login successful طالما كانت الخدمة قيد التشغيل.
smbclient -N -L \\\\<RouterOs IP>
هجوم حجب الخدمة
يتحقق سكربت python3 cve-2020-11881.py من توفر خدمة SMB قبل وبعد
عملية الاستغلال. وينتهي التنفيذ الناجح بعدم توفر خدمة SMB.
يرجى تنفيذ السكربت كما هو موضح أدناه.
python3 cve-2020-11881.py --ip <RouterOs Ip>
سيؤدي اختبار خدمة SMB باستخدام الأمر التالي إلى الفشل.
smbclient -N -L \\\\<RouterOs IP>
إزالة الجهاز الافتراضي
لإزالة الجهاز الافتراضي، ما عليك سوى تشغيل السكربت مرة أخرى.
sudo ./setupMikroTikEnvironment.sh
تم الإبلاغ عن الخلل في 06.04.2020 ولم يتم إصلاحه في 12.09.2020 حتى بعد طلبات متعددة.
نقاش حول CVE: https://forum.mikrotik.com/viewtopic.php?f=2&t=166137
Currently only the long-term version channel (v6.46.7) has all the necessary fixes for this CVE. We are working on getting them published in stable and testing channels as well. Sorry for any inconvenience.