در تاریخ 8 دسامبر 2022 خبر از یک باگ امنیتی توسط VMware ESXi منتشر شد که در آن گزارشی از خطرات فعال بودن سرویس OpenSLP داده شد. خبری که به نظر بسیاری از متخصصان به آن کمتوجه بودند تا اینکه از دیروز (5 فوریه 2023) هکران از همین راه نفوذ استفاده کردهاند و بصورت جهانی بسیاری از سرورهای که توسط این مجازی ساز مدیریت می شدند را مورد حمله قرار دهند.
در ابتدا تلاش کردیم ابعاد مختلف این حملات به دقت مورد بررسی قرار دهیم تا اطلاعات کافی درباره آن بدست آوریم و نتایج را از طریق سامانه استاتوس ایران سرور با کاربران خود به اشتراک گذاشتیم.
در ادامه نیز به بررسی راهحلهای قطعی برای حل این چالش پرداختیم که در این مقاله باهم به بررسی این راهحلها میپردازیم.
در ابتدا باید گفت در صورتیکه هنوز ماشین های مجازی شما در دسترس است باید ابتدا سرویس OpenSLP را غیرفعال کنید. بعد از تمام اطلاعات خود بکآپ تهیه کنید و مطابق آموزش در لینک زیر تمام پکیج های امنیتی را بر اساس ورژن Esxi که استفاده می کنید را نصب کنید.
[irp posts=”26097″ name=”باگ امنیتی باج افزار ESXiArgs و راهکار های رفع آن”]اما در صورتی که دیر اقدام کردهاید و سرور شما دچار این باج افزار شده است میتوانید مطابق آموزش های میتوانید مشکل را رفع کنید:
[enesdev@ESXi:~] /etc/init.d/slpd stop
[enesdev@ESXi:~] esxcli network firewall ruleset set -r CIMSLP -e 0
[enesdev@ESXi:~] chkconfig slpd off
توضیحات: کامند فوق، rule ستهای امنیتی سرویس CIMSLP که مربوط به OPEN SLP است را غیرفعال میکند. دستور esxi network firewall ruleset برای مدیریت کردن rule های فایروال در esxi است.
💡 از تاریخ 3-2-2023 نسخه esxi 5 و 6 به بالا در مخاطره این باج افزار امنیتی قرار گرفتهاند.
برای کاربرانی که تجربه هک شدن داشتهاند فایلهای vmdk ها رمزگذاری شدهاند و عملاً دسترسی به ماشین مجازی ها امکان پذیر نیست. اما نکته ای که وجود دارد این ویروس تنها فایل های .vmdk و .vmx را مورد حمله قرار می دهد اما به فایل های server-flat.vmdk آسیبی نمی رساند.
در ساختار esxi دیتاها در فایل های flat.vmdk نگه داری میشود. بنابراین در ادامه این آموزش می خواهیم نحوه بازگردانی ماشین های مجازی از طریق فایل های flat.vmdk را پیش ببریم.
در ابتدا می بایست از طریق ssh وارد سرور شوید.
حال یکبار esxi را ریبوت کنید و بعد از ریبوت وارد ssh سرور شوید.
سپس می بایست وارد دایرکتوری مربوط به ماشین مجازی که قصد بازگردانی دیتای آن را دارید، شوید.
بعد از وارد شدن به datastore که ماشین مجازی در آن قرار دارد، کامند ls -la را وارد نمایید، با این دستور حجم فایل vmname-flat.vmdk را مشاهده میکنید.
در این مرحله نیاز است فایل vmname.vmdk موجود را به مسیر دیگری از سرور با دستور mv منتقل کنید.
💡 توجه داشته باشید که هرگز نباید فایل vmname-flat.vmdk را حذف کنید
در این مرحله حجم فایل vmname-flat.vmdk که در مرحله های قبل ملاحظه نمودید را می بایست در دستور زیر جایگزین 64424509440 نمایید.
vmkfstools -c 64424509440 -d thin temp.vmdk
پس از دستور بالا دو فایل با نام های temp.vmdk و temp-flat.vmdk باید ایجاد شده باشد. فایل temp.vmdk را با vi باز کنید و در خط 9 آن مقدارtemp-flat.vmdk را جایگزین vmname-flat.vmdk کنید و سپس خط ddb.thinProvisioned = “1” را هم حذف کنید.
💡 در نظر داشته باشید که vmname نام ماشین شما است.
بعد از انجام این تغییرات باید فایل temp-flat.vmdk را حذف کنید و فایل temp.vmdk را vmname.vmdk (نام ماشین خود) تغییر دهید.
در این مرحله باید فایل .vmx ماشین را بررسی کنیم، در صورتیکه این فایل encrypt شده باید میتوانیم از فایل .vmx~ که بکاپ فایل .vmx می باشد استفاده کنیم.
اگر فایل .vmx کد شده بود باید فایل .vmx~ را جایگزین آن کنید.
حال می بایست فایل .vmsd را هم به مسیر دیگری منتقل کنید، این فایل هم کد شده است و نیازی به آن نیست.
به ssh سرور برگردید و در آن دستور زیر را وارد کنید:
vmkfstools -e xxxx.vmdk
ریکاوری ماشین مجازی به اتمام رسیده است و در صورتیکه ماشین register نباشد میتوانید از طریق پنل esxi آن را register کنید.
در صورتی هم که ماشین register شده باشد ابتدا میبایست آن را unregister کنید. برای unregister ماشینها میتوانید از دستورات زیر در ssh استفاده کنید و بعد از طریق پنل esxi آن را register کنید.
دستور زیر لیست ماشین های register شده را نمایش میدهد
vim-cmd /vmsvc/getallvms
با دستور زیر میتوانید ماشین با ID مورد نظر خود را Unregister کنید:
vim-cmd /vmsvc/unregister <id>
از طریق موارد بالا میتوانید ماشین خود را در دسترس قرار دهید.
در نهایت از توجه شما به این مقاله سپاسگزاریم.