خطاهای پیکربندی در ماشین های مجازی به سرعت به حمله باج افزار در داخل یک hypervisor ماشین مجازی از طریق یک Python ransomware script تبدیل شد. تحقیقات اخیر در مورد Python ransomware script نشان داد که مهاجمان یک اسکریپت پایتون سفارشی را بر روی hypervisor ماشین مجازی هدف اجرا کردند تا همه دیسک های مجازی را رمزگذاری کنند و ماشین های مجازی سازمان را آفلاین کنند.

در حمله ای که Sophos انجام داده بود، از زمان مصالحه اولیه تا استقرار اسکریپت باج افزار، مهاجمان فقط بیش از سه ساعت را در شبکه هدف گذراندند تا دیسک های مجازی را در سرور VMware ESXi رمزگذاری کنند.

مهاجمان در ابتدا با ورود به حساب TeamViewer (حساب کاربری که احراز هویت چند عاملی راه اندازی نشده بود)، در رایانه ای که متعلق به یک کاربر با اعتبار مدیر دامنه در شبکه هدف بود، به نیازمندی های خود دسترسی پیدا کردند. مهاجمان ۳۰ دقیقه از نیمه شب در سازمان مورد نظر وارد سیستم شده و ده دقیقه بعد یک Python ransomware script را برای شناسایی اهداف موجود در شبکه بارگیری و اجرا کردند.

درست قبل از ساعت ۲ بامداد ، مهاجمان یک سرویس گیرنده SSH به نام Bitvise را بارگیری کردند و از آن برای ورود به سرور VMware ESXi که با استفاده از Advanced IP Scanner شناسایی کرده بودند، استفاده کردند. سرورهای ESXi دارای یک سرویس SSH داخلی به نام ESXi Shell هستند که مدیران می توانند آن را فعال کنند، اما معمولاً به طور پیش فرض غیرفعال است.

Python ransomware script

کارمندان فناوری اطلاعات این سازمان به استفاده از ESXi Shell برای مدیریت سرور عادت کرده بودند و چندین بار در ماه قبل از حمله پوسته را فعال و غیرفعال کرده بودند. با این حال ، آخرین باری که پوسته را فعال کردند ، بعداً نتوانستند آن را غیرفعال کنند. جنایتکاران وقتی متوجه شدند که پوسته فعال است از این موقعیت اتفاقی استفاده حداکثری خود را کردند.

Python ransomware script:

سه ساعت پس از اسکن شبکه توسط مهاجمان، آنها از اطلاعات خود برای ورود به ESXi Shell استفاده کردند و فایلی با نام fcker.py را در پایگاه داده ESXi کپی کردند، جایی که تصاویر دیسک مجازی مورد استفاده توسط ماشین های مجازی که روی hypervisor اجرا می شوند، قرار دارد.

مهاجمان یکی پس از دیگری اسکریپت پایتون خود یا Python ransomware script را اجرا کردند و مسیر حجم داده های دیسک ذخیره داده را به عنوان استدلال به اسکریپت منتقل کردند. هر بخش جداگانه شامل دیسک مجازی و فایلهای تنظیمات VM برای چندین ماشین مجازی بود. با تشکر از برخی اقدامات محکم کارشناسی، تیم مربوطه در پاسخی سریع نسخه ای از Python ransomware script را بازیابی کرد ، حتی اگر به نظر می رسید مهاجمان قبل از حذف پرونده ، آن را با داده های دیگر رونویسی کرده اند. باز هم موفق به حذف کامل ردپای خود نشده بودند.

در ابتدا، اسکریپت مربوطه سیستم فایل، یک پایگاه داده را راه اندازی می کرد و نقشه فهرست درایو را ایجاد می نمود، سپس بعد از این مرحله این Python ransomware script نام هر ماشین مجازی در هایپروایزر را ذخیره می کند و آنها را در فایلی به نام vms.txt می نویسد. 

سپس دستور ESXi Shell vim-cmd vmsvc/power.off را یک بار برای هر ماشین مجازی اجرا می کند و نام VM ها را به صورت متغیر به صورت یک به یک منتقل می کند. تنها زمانی که ماشین های مجازی خاموش شوند ، اسکریپت شروع به رمزگذاری حجم های پایگاه داده می کند.

کلیدهای رمزگذاری در حین عملیات ایجاد می شدند:

یکی از مواردی که ما هنگام مرور کد مشاهده کردیم وجود چندین کلید رمزنگاری و کدگذاری شده و همچنین یک روال معمول برای ایجاد جفت کلیدهای رمزنگاری بیشتر بود. به طور معمول ، یک مهاجم فقط باید “کلید عمومی” را که مهاجم در دستگاه خود ایجاد کرده است جاسازی کند و برای رمزگذاری فایل ها در رایانه مورد نظر استفاده شود. اما به نظر می رسد که این Python ransomware script هر بار که اجرا می شد یک کلید منحصر به فرد ایجاد می کرد.

python script

ظاهراً ، هر بار که این Python ransomware script اجرا می شود و به نظر می رسد مهاجمان اسکریپت را یک بار برای هر پایگاه داده ESXi که می خواستند رمزگذاری کنند اجرا می کردند. باج افزار یک جفت کلید منحصر به فرد ایجاد می کند که برای رمزنگاری فایل ها در طول اجرای خاص مورد استفاده قرار می گیرد. 

در مورد حمله ای که ما مورد بررسی قرار دادیم ، سه پایگاه داده وجود داشت که مهاجمان با اجرای تک تک اسکریپت مربوطه، آنها را هدف قرار داده بودند ، بنابراین اسکریپت سه جفت کلید منحصر به فرد ایجاد کرد که یکی برای هر پایگاه داده ایجاد می شد.

Encryption keys generated on-the-fly

اسکریپت مربوطه یعنی Python ransomware script توانایی انتقال این کلیدها را به هیچ وجه ندارد و راهی برای مهاجم وجود ندارد که پیش بینی کند کلیدها چه چیزی خواهند بود ، بنابراین اسکریپت باید نسخه ای از کلید مخفی را پشت سر بگذارد (کلیدی که مهاجم برای رمزگشایی به آن نیاز دارد)

در مورد ESXi ، استفاده از ESXi Shell چیزی است که می تواند از طریق یک کنسول فیزیکی در دستگاه یا از طریق ابزارهای معمول مدیریتی ارائه شده توسط VMware روشن یا خاموش شود. مدیران فقط باید اجازه دهند Shell در حین استفاده توسط کارکنان فعال باشد و به محض اتمام تعمیرات (مانند نصب وصله ها) آن را غیرفعال کنند.