در ۳ ماهه اول سال ۲۰۲۱، مهاجمان سایبری مجموعهای از حملات را به وسیله باجافزار Cring انجام دادند. گزارش این حملات در توییت Swisscom CSIRT ذکر شده است اما هنوز مشخص نیست که چگونه این باجافزار شبکه داخلی یک کسبوکار را آلوده میکند.
تحقیقاتی که توسط کارشناسان Kaspersky ICS CERT در یکی از کسبکارهای مورد تهاجم انجام شد، نشانگر این بود که حملات باجافزار Cring از یک آسیبپذیری در سرورهای Fortinet سوءاستفاده میکند.
قربانیان این حملات شامل کسبوکارهای صنعتی در کشورهای اروپایی هستند. حداقل در یکی از این حملات، این حمله سایبری منجر به تعطیلی موقت فرآیند صنعتی به علت استفاده از سرورهای مورد استفاده برای کنترل فرآیند صنعتی شد.
در این پست، ما نتایج تحقیقات و جنبههای جالب این حمله را مورد بحث قرار میدهیم.
شایان ذکر است که شرکت Fortinet چندین بار به کاربران هشدار داد که از خطر ناشی از آسیبپذیری و خطر بالای حملات از جمله حملات به گروههای APT، آگاه است.
مهاجمان از آسیبپذیری CVE-2018-13379 برای دسترسی به شبکه کسبوکارها استفاده کردند. همچنین از این آسیبپذیری برای استخراج فایل VPN Gateway نیز استفاده شده است. این اطلاعات حاوی موارد ارزشمندی مانند نام کاربری و رمز عبور به صورت plaintext است.
تجهیزات FortiGate که هنوز پچ نشدهاند، در برابر حمله directory traversal آسیبپذیر هستند که به فرد مهاجم اجازه میدهد تا به فایلهای سیستمی موجود در FortiGate SSL VPN دسترسی پیدا کنند. بهطور خاص، یک مهاجم غیرمجاز میتواند از طریق اینترنت به این دستگاهها متصل شده و به صورت ریموت به فایل “sslvpn_websession” که شامل نامکاربری و رمزعبور ذخیره شده است، به صورت فایل متنی دسترسی پیدا کنند. این آسیبپذیری بر روی دستگاههایی که نسخههای ۶٫۰٫۰, ۶٫۰٫۴, ۵٫۶٫۳ to 5.6.7, 5.4.6, 5.4.12 را اجرا میکنند، تاثیرگذار است.
چند روز قبل از شروع مرحله اصلی حمله، مهاجمان اتصالات آزمایشی خود را به VPN Gateway و به منظور بررسی وجود نسخه آسیبپذیر نرمافزار در دستگاه هدف، انجام دادند.
ممکن است مهاجمان با اسکن آدرسهای IP، دستگاه آسیبپذیر را شناسایی کرده باشند؛ و یا ممکن است یک لیست آماده شامل IPهای دستگاههای آسیبپذیر FortiGate VPN Gateway خریده باشند. در پاییز ۲۰۲۰، پیشنهادی برای فروش اطلاعات یک پایگاه اطلااعاتی از چنین وسایلی در یکی از فرومهای دارکوب مشاهده شد.
پس از دستیابی به اولین سیستم در شبکه داخلی کسبوکار، مهاجمان نرمافزار Mimikatz را در آن سیستم نصب کردند و از این نرمافزار برای سرقت اطلاعات اعتبار حساب کاربران ویندوز که قبلا وارد این سیستم آسیبدیده شده بودند، استفاده شد.
با کمک نرمافزار Mimikatz، مهاجمان توانستند اکانت مدیر دامنه را تهدید کرده و پس از آن شروع به توزیع بدافزار در سیستمهای دیگر در شبکه کسبوکار کردند. مهاجمان برای انجام این کار از فریمورک Cobalt Strike استفاده کردند. ماژول Cobalt Strike با استفاده از PowerShell در سیستمهای مورد استفاده بارگیری شد.
پس از راهاندازی، اسکریپت مخرب PowerShell ظرفیت (payload) را رمزگشایی میکند. (Cobalt Strike Beacon backdoor که کنترل از راه دور سیستم مخرب را به مهاجمان ارائه میکند.)
IP 198.12.112[0]204، به عنوان آدرس دستور و کنترل سرور Cobalt Strike Beacon مشخص شده است.
پس از به دست آوردن کنترل سیستم آلوده، مهاجمان یک اسکریپت از طریق cmd روی دستگاه بارگیری کردند. این اسکریپت برای بارگیری و راهاندازی باجافزار Cring طراحی شده است.
اسکریپت در مسیر زیر ذخیره شد:
%TEMP%\execute.bat (e.g., C:\Windows\Temp\execute.bat).
پس از نصب بر روی سیستم آلوده، اسکریپت cmd با نام execute.bat اجرا شد. این اسکریپت به وسیله PowerShell و با نام “kaspersky” شروع به کار کرد. مهاجمان از این روش برای پنهان کردن آثار فعالیت بدافزار و پنهان کردن عملکرد آن به عنوان راهحلهای امنیتی استفاده کردند. همچنین یک دستور برای دانلود یک فایل از اینترنت به PowerShell در حال اجرا، اضافه شد. URL این فایل http://45.67.231[.]128/ip.txt بود که فایل دانلود شده به عنوان خروجی C:\__output. ذخیره شد.
اگرچه فایل دانلود شده با فرمت .txt بود اما در واقع این فایل، همان فایل اجرایی بدافزار (باجافزار) Cring بود. در زمان تجزیه و تحلیل سرور میزبان بدافزار، فایل ip.txt از قبل حذف شده بود اما مهاجمان نسخه جدیدی از این بدافزار با نام NoNet.txt بر روی سرور بارگیری کردند.
برای مخفی کردن فایلهای دیتابیس و حذف نسخههای پشتیبان آن، بدافزار Cring خدمات نرمافزارهای زیر را متوقف کرد:
Microsoft SQL server: SQLTELEMETRY,
SQLTELEMETRY$ECWDB2, SQLWriter
سرویس SstpSvc که برای ایجاد اتصالات VPN استفاده میشود نیز، متوقف شد. به احتمال زیاد، مهاجمان که در این مرحله سیستم آلوده را از طریق Cobalt Strike کنترل میکنند، این کار را انجام دادهاند تا اتصال از طریق VPN به سیستمهای آلوده امکانپذیر نباشد. این کار برای جلوگیری از پاسخگویی به موقع مدیران سیستم به این حادثه سایبری، انجام شده است.
علاوه بر این، بدافزار برای رمزگذاری بدون دردسر فایلها، فرآیندهای نرمافزارهای زیر را نیز متوقف کرد:
Microsoft Office: mspub.exe
Oracle Database software: mydesktopqos.exe
mydesktopservice.exe
این بدافزار فایلهای بکآپ که دارای پسوندهای زیر بودند را نیز، حذف کرد:
.VHD, .bac, .bak, .wbcat, .bkf, .set, .win, and .dsk.
همچنین اگر نام این فایلهای بکآپ با کلماتی مانند Backup یا backup شروع شود، فایل و فولدر آنها را به طور کامل حذف میکند.
پس از انجام این عملیات، بدافزار یک اسکریپت از طریق cmd به نام kill.bat در درایوها ایجاد کرد که پس از اجرا، این اسکریپت به صورت خودکار حذف شد.
در مرحله بعدی، بدافزار شروع به رمزنگاری پروندهها با استفاده از الگوریتمهای رمزنگاری قدرتمند کرد. این بدان معناست که بدون دانستن کلید خصوصی RSA که در اختیار مهاجمان قرار دارد، نمیتوان فایلها رمزگشایی کرد. هر فایل با استفاده از AES رمزنگاری شد و کلید رمزگذاری AES با استفاده از یک کلید عمومی RSA رمزنگاری شده که در فایل اجرایی برنامه مخرب رمزنگاری شده است. اندازه کلید RSA، ۸,۱۹۲ بیت بود.
فایلهایی که دارای پسوندهای زیر بودند، رمزنگاری شده است:
• .vhdx (Virtual Hard Disk)
.ndf (Microsoft SQL Server secondary database)
.wk (Lotus 1-2-3 spreadsheet)
.xlsx (Microsoft Excel spreadsheet)
.txt (text document)
.doc (Microsoft Word document)
.docx (Microsoft Word document)
.xls (Microsoft Excel spreadsheet)
.mdb (Microsoft Access database)
.mdf (disk image)
.sql (saved SQL query)
.bak (backup file)
.ora (Oracle database)
.pdf (PDF document)
.ppt (Microsoft PowerPoint presentation)
.pptx (Microsoft PowerPoint presentation)
.dbf (dBASE database management file)
.zip (archive)
.rar (archive)
.aspx (ASP.NET webpage)
.php (PHP webpage)
.jsp (Java webpage)
.bkf (backup created by Microsoft Windows Backup Utility)
.csv (Microsoft Excel spreadsheet)
با تکمیل رمزنگاری، بدافزار یادداشت زیر را از خود به جای گذاشت:
(مهاجمان برای ارائه رمز فایلها به قربانی، ۲ بیتکوین درخواست کرد! آنها همچنین اذعان کردند که رمزگشایی فایلها به هیچ طریقی ممکن نیست و فقط کد رمزگشا توسط آنها ارائه میشود.)
جزئیات مختلف این حمله سایبری نشان میدهد که مهاجمان زیرساختهای این کسبوکار مورد حمله را به دقت تجزیه و تحلیل کردند و زیرساختها و مجموعه ابزارهای خود را براساس اطلاعات جمعآوری شده در مرحله شناسایی آماده کردهاند.
به عنوان مثال، سرور میزبان بدافزار ۴۵٫۶۷٫۲۳۱[.]۱۲۸ که باجافزار Cring از آن بارگیری شد، فیلتر توسط آدرسهای IP را فعال کرده و فقط به درخواست چندین کشورهای اروپائی پاسخ میدهد.
اسکریپتهای cmd مهاجمان، فعالیت بدافزار را به عنوان عملکرد آنتیویروس (کسپرسکی) مورد استفاده کسبوکار پنهان کرده و فرآیندهای سرورهای دیتابیس (Microsoft SQL Server) و پشتیبانگیری (Veeam) در سیستمهایی که برای رمزنگاری انتخاب شدهاند، متوقف کرد.
تجزیه و تحلیل فعالیتهای مهاجمان نشان میدهد که براساس نتایج شناسایی انجام شده در شبکه کسبوکار قربانی، آنها تصمیم گرفتند آن سرورهایی را رمزگذاری کنند که بیشترین آسیب را به قربانی وارد میکند.
شایان ذکر است تعدادی از دلایلی که منجر به این حادثه سایبری شده، توسط بخش ICS CERT کسپرسکی هشدار داده شده بود..
دلایل اصلی این حادثه، استفاده از نسخه سیستمعامل منسوخ و آسیبپذیر در سرور FortiGate VPN (نسخه ۶٫۰٫۲ در زمان حمله استفاده شده است)، که مهاجمان را قادر به استفاده از آسیبپذیری CVE-2018-13379 و دسترسی به شبکه کسبوکار کرده است.
عدم بهروزرسانی به موقع دیتابیس آنتیویروس برای راهحل امنیتی مورد استفاده در سیستمهای مورد حمله نیز نقشی اساسی ایفا میکند، مانع از شناسایی راهحل و جلوگیری از تهدید میشود. همچنین لازم به ذکر است که برخی از اجزای آنتیویروس غیرفعال شده و این کیفیت محافظت را بیشتر کاهش میدهد.
از دیگر عوامل موثر در توسعه حادثه میتوان به تنظیمات سطح دسترسی تعریف شده کاربران در domain policies و ردههای اول دسترسی RDP اشاره کرد.
هیچ محدودیتی در دسترسی به سیستمهای مختلف وجود نداشت. به عبارت دیگر، کلیه کاربران مجاز به دسترسی به تمامی سیستمها بودند. چنین تنظیماتی به مهاجمان کمک میکند تا بدافزارها را در شبکه کسبوکار خیلی سریع گسترش دهند. زیرا با موفقیت در به خطر انداختن یک حساب کاربری، دسترسی آنها به سیستمهای متعددی فراهم میشود.
۱٫ نرمافزار SSL VPN Gateway را به جدیدترین نسخه بهروزرسانی کنید.
۲٫ راهحلهای امنیتی ضدباجافزار را به آخرین نسخه بهروزرسانی کنید.
۳٫ همیشه دیتابیسهای مربوط به ضدباجافزار را به آخرین نسخه بهروزرسانی کنید.
۴٫ اطمینان حاصل کنید تمامی ماژولهای مربوط به نرمافزارهای ضدباجافزار فعال هستند.
۵٫ پالیسی active directory را تغییر دهید: به کاربران اجازه دهید فقط به سیستمهایی دسترسی داشته باشند که به آنها در حین کار کردن نیاز دارند.
۶٫ دسترسی VPN را بین امکانات شبکه محدود کنید: پورتهایی که نیاز ندارید، مسدود کنید.
۷٫ سیستم پشتیبان را برای ذخیره نسخههای پشتیبان در یک سرور اختصاصی پیکربندی کنید.
۸٫ حداقل ۳ نسخه پشتیبان برای هر سیستم مهم تهیه کنید.
۹٫ حداقل یک نسخه پشتیبان از هر سرور را در یک حافظه ذخیرهسازی مانند هارد دیسک ذخیره کنید.
۱۰٫ بهطور منظم، تنظیمات یکپارچگی نسخههای پشتیبان را تایید کنید.
Indicators of compromise (IOC):
File path
%temp%\execute.bat (downloader script)
C:__output (Cring executable)
MD5
c5d712f82d5d37bb284acd4468ab3533 (Cring executable)
۳۱۷۰۹۸d8e21fa4e52c1162fb24ba10ae (Cring executable)
۴۴d5c28b36807c69104969f5fed6f63f (downloader script)
IP addresses
۱۲۹٫۲۲۷٫۱۵۶[.]۲۱۶ (used by the threat actor during the attack)
۱۲۹٫۲۲۷٫۱۵۶[.]۲۱۴ (used by the threat actor during the attack)
۱۹۸٫۱۲٫۱۱۲[.]۲۰۴ (Cobalt Strike CnC)
۴۵٫۶۷٫۲۳۱[.]۱۲۸ (malware hosting)