گروهی از مهاجمان با سوءاستفاده از ضعف امنیتی با شناسه CVE-2022-30190 موسوم به Follina در حال انتشار بدافزار Qbot که از جمله بدافزارهای ناقل تهدیدات باجافزاری است هستند.
Qbot که با نامهای Qakbot یا Pinksliplot نیز شناخته میشود، به طور فعال توسعه یافته و قادر به شناسایی اولیه (Reconnaissance)، گسترش دامنه نفوذ به سیستمهای مجاور در شبکه (Lateral movement)، استخراج دادهها (Data exfiltration) و انتشار کدهای مخرب است و به عنوان یک واسط جهت نفوذ اولیه عمل میکند.
مرکز CERT ایالات متحده در گزارشی، Qbot را به عنوان یکی از فعالترین بدافزارهای سال 2021 معرفی کرده است.
در یکی از این حملات اخیر که این سایت به بررسی آن پرداخته است، بلافاصله پس از اجرای کد مخرب Qbot، بدافزار، به سرور C2 متصل شده و فرایند شناسایی را از روی دستگاه آلوده آغاز میکند. در جریان حمله، مهاجمان بر روی چندین سیستم متمرکز شده و ابزارهای مدیریت از راه دور مانند NetSupport و Atera Agent را نصب نمودند و از Cobalt Strike جهت ماندگار کردن دسترسی به شبکه استفاده کردند. این نفوذ 2 روز به طول انجامید و مهاجمان اسناد حساس موجود بر روی یکی از سرورهای فایل سازمان قربانی را سرقت نموده و پس از آن از شبکه خارج شدند.
تحلیل حمله
در این حمله، مهاجمان از آسیبپذیری CVE-2022-30190 (معروف به Follina) و از طریق اسناد Word، که اکسپلویت در آن جاسازی شده جهت نفوذ اولیه سوءاستفاده نمودهاند. احتمالاً این اسناد Word از طریق ایمیلهای فیشینگ ارسالی توسط گروه هکری TA570 دریافت شدهاند.
پس از اجرای سند Word آلوده، یک فایل HTML که حاوی کد مخرب PowerShell است، از یک سرور راه دور بازیابی میشود. محتوای کد مخرب که از طریق base64 کدگذاری شده، برای دانلود فایلهای DLL بدافزار Qbot و ذخیره آنها در پوشه Temp کاربر استفاده میشود. DLL بدافزار Qbot از طریق regsvr32.exe اجرا شده و بلافاصله در پروسههای معتبر (explorer.exe) بر روی دستگاه تزریق میشود.
کد مخرب تعبیه شده در این فایلها که اسکریپتی Powerhell است، امکاناتی نظیر تصویربرداری از صفحه نمایش کاربر را برای مهاجم فراهم میکند.
پروسه تزریق شده، جهت انجام فعالیتهای جاسوسی و اکتشافی و همچنین اتصال به سرورهای C2 بدافزارQbot ، اقدام به ایجاد ابزارهایی نظیر whoami، net.exe و nslookup در Windows میکند. تقریباً یک ساعت بعد، مهاجمان از یکی از ابزارهای داخلی Windows به نام esentutl.exe برای استخراج دادههای مرورگر استفاده کردند، تکنیکی که در حملات قبلی نیز مشاهده شده بود.
Qbot از ایجاد فرامین (Task) زمانبندی شده جهت پایداری و ماندگاری در سیستم استفاده میکند. Task زمانبندی شده حاوی یک فرمان PowerShell بود که به چندین نشانی IP مربوط به سرورهای C2 که به روش base64 کدگذاری شده ارجاع میدهد. فرمان مذکور در کلیدهایی با نام تصادفی در Registry با نام HKCU ذخیره شدهاند.
سپس، مهاجم فایلهای DLL بدافزار Qbot رابه صورت از راه دور از طریق SMB بر روی چندین سرور در سراسر شبکه کپی میکند. آنها همچنین در هر یک از سیستمهای آلوده، چندین پوشه را به فهرست استثنائات Windows Defender اضافه کردند تا راهکارهای تشخیصی را دور بزنند. سپس با ایجاد سرویسهای راه دور بستر برای اجرای فایلهای DLL فراهم میشود.
در همان یک ساعت اول، یک اتصال به سرور Cobalt Strike برقرار میشود اما تا زمانی که آلودگی به سیستمهای مجاور در شبکه منتقل نشود، سرور Cobalt Strike شروع به فعالیت نمیکند. ابزارهایی نظیر nltest.exe و AdFind توسط پروسه Cobalt Strike تزریق شده (explorer.exe) اجرا میشوند. این پروسه تزریق شده نیز برای دسترسی به پروسه سیستمی LSASS مورد استفاده قرار میگیرد. سپس، مهاجمان یک ابزار مدیریت از راه دور به نام NetSupport Manager را نصب کردند. در عرض 20 دقیقه پس از نصب، مهاجم از طریق ارتباط جاری Session Remote Desktop به Domain Controller دسترسی مییابد.
ابزار مدیریت از راه دور Atera در Domain Controller مستقر میشود. Atera ابزاری محبوبی است که توسط مهاجمان برای کنترل سیستمهای قربانی مورد استفاده قرار میگیرد. این آخرین فعالیت مهاجمان در روز اول حمله بود.
مهاجمان در اوایل روز بعد ابزاری به نام Network Scanner که توسط SoftPerfect ارائه شده را بر روی Domain Controller دانلود کردند. این ابزار پس از اجرا، اقدام به پویش در سراسر شبکه برای شناسایی پورتهای باز کرد. در نهایت، مهاجمان از طریق RDP به یکی از سرورهای اشتراک فایل متصل شده و به اسناد حساس دسترسی پیدا کردند. قبل از خروج مهاجمان از شبکه، دیگر هیچ فعالیت دیگری از سوی آنها مشاهده نشد.
همچنین فایلهای دستکاری شده و نشانههای آلودگی (IoC) این حملات نظیر pcaps، ثبت محتویات حافظه، فایلها، گزارش رویدادها نظیر بستههای Sysmon ،Kape و موارد دیگر در ادامه ارائه شده است.
سیر زمانی
نمودار آلودگی
نفوذ اولیه
از زمان افشای آسیبپذیری CVE-2022-30190 (Follina) در اوایل خرداد ماه، مهاجمان بارها از این ضعف در کارزارهای فیشینگ مختلف سوءاستفاده کردهاند. اولین بار بهرهجویی از این ضعف امنیتی به گروه هکری TA570، که کد مخرب را از طریق ارسال ایمیلهای فیشینگ منتقل کردند، نسبت داده شد. این نفوذ پس از آن آغاز شد که یک سند Word، که با سوءاستفاده از Follina آلوده شده بود، جهت انتقال و انتشار بدافزار Qbot در سرور مورد استفاده قرار گرفت.
هنگامی که با یک سند Word با فرمت OOXML سروکار دارید، فایلها و پوشههای مرتبط در یک فایل به صورت ZIP فشرده و ذخیره میشوند که میتوان به راحتی با بکارگیری یکی از ابزارهای رایج نظیر unzip آن را از حالت فشرده خارج کرد. یکی از فایلهای جاسازی شده که در حین تحلیل Follina maldoc نیاز به بازرسی دارد، document.xml.rels نام دارد.
این فایل “Relationship”ا(RELS) به یک فایل HTML راه دور ارجاع میدهد و به گونهای پیکربندی شده که هنگام بازشدن سند Word یا حتی در حالت پیش نمایش (Preview Mode)، بازیابی و بارگذاری میشود.
در بخش پایین کد منبع صفحه HTML بازیابی شده، تگ اسکریپت حاوی کد مخرب JavaScript تعریف شده و ms-msdt scheme نامیده میشود.
سیستمی که در برابر Follina آسیبپذیر است توسط ابزار Microsoft Support Diagnostic Tool – به اختصار MSDT – تفسیر و اجرا میشود. یکی از روشهای عالی تشخیص بهرهجویی از این ضعف امنیتی، رصد پروسههای نرمافزار Microsoft Office نظیر WINWORD.EXE است.
در این حمله، کد مخرب حاوی اسکریپت PowerShell بود که به روش base-64 کدگذاری شده بود. کد مخرب رمزگشایی شده نیز پس از اجرا توسط PowerShell در EventID 4104 (Logging block script) ثبت میشود.
Payload اکسپلویت Follina، کتابخانههای Qbot را از سه URL مختلف دانلود میکند، فایلها را در پوشه Temp کاربر قرار میدهد و در نهایت با بکارگیری regsvr32.exe، فایلهای DLL را اجرا میکند.
اجرا
پس از اجرای کد مخرب MSDT، نمونه جدیدی از sdiagnhost.exe (Scripted Diagnostics Native Host) ایجاد شد. این پروسه مسئول فراخوانی کد مخرب Follina بود که در این حمله، سه نمونه (Child Instance) به نام regsrv32.exe را ایجاد کرد.
پس از اجرای کد مخرب، فایل XML به نام PCW.debugreport.xml در پوشه localappdata%\Diagnostics% ایجاد میشود. این فایل را میتوان به عنوان یک فایل دستکاری شده مهم در هنگام تحلیل نحوه بهرهجویی از Follina مورد بررسی قرار داد. مسیر کد مخرب در تگ TargetPath مربوط به فایل XML درج شده است. کد مخرب پیکربندی شده برای اجرا در سیستم در این فایل تعبیه شده است.
ماندگاری
Qbot با ایجاد فرامین زمانبندی شده در نقاط پایانی، خود را بر روی سیستم ماندگار میکند. نمونه ای از فرمان اجرا شده را میتوانید در ادامه مشاهده کنید:
رویدادهای ایجاد شده توسط فرامین زمانبندی شده در لاگ مربوط به Microsoft-Windows-TaskScheduler/Operational ثبت میشود.
تحلیل فرامین زمانبندی شده نشان داد که PowerShell به یک کلید Registry که مقادیر تصادفی را تولید میکند، ارجاع داده شده است. مقدار آن بر روی هر نقطه پایانی با نقطه پایانی دیگر میتواند متفاوت باشد:
دادههای این کلید Registry شامل یک رشته کدگذاری شده با base64 میباشد:
رمزگشایی رشته کدگذاری شده با base64، نشانیهایIPv4 و پورتهای مربوط به سرور C2 بدافزار QBot را به این صورت نمایش داد:
نشانیهای مربوط به IPv4 سرور C2 در بخش نشانیهای آلودگی این گزارش ارائه شده است.
پروسه SysWow64\Explorer.exe نیز در تعدادی دامنه مشاهده شده و توسط درخواستهای DNS با مقدار RCODE:0 مربوط به QueryStatus (بدون خطا) نشان داده شده است.
علاوه بر این، ارتباطات مربوط به سرویس ایمیل بررسی شد:
دورزدن راهکارهای تشخیصی
بدافزار QBot به بکارگیری روش Process Hollowing (تعویض فایل اجرایی و جایگزینی کد مخرب به جای آن) معروف است. در این مورد، نسخه 32 بیتی explorer.exe (که با استفاده از C:\Windows\SysWOW64 مشخص میشود) در حالت Suspend راهاندازی شد و سپس به عنوان یک هدف جهت تزریق مورد استفاده قرار گرفت.
با بررسی و تحلیل Process Hollowing مربوط به حافظه سرور، پروسههای تزریق شده با بکارگیری ماژولهای Volatility و malfind به راحتی قابل کشف و شناسایی بودند. خروجی که شامل explorer.exe و تگ VAD PAGE_EXECUTE_READWRITE و هدر MZ در فضای حافظه است، دارای ویژگیهای رایجی جهت تزریق پروسه در حافظه است.
پروسه explorer.exe، جهت ایجاد و تزریق به نمونههای دیگر 32 بیتی explorer.exe بکار گرفته میشود. نمونهای از رویداد را میتوان در ادامه مشاهده کرد. SourceProcessId: 11672 متعلق به QBot است و یک DLL را به TargetProcessId: 3592 تزریق میکند که در نتیجه تحلیل مشخص شد که بخشی از ارتباطات مربوط به سرور C2 ابزار Cobalt Strike است.
با استفاده از شناسههای پروسههای تزریقی و نامهای این پروسهها، ارتباطات شبکه با بکارگیری ماژولهای netscan و Volatility تطبیق داده شد و در نتیجه هر دو پروسه explorer تزریق شده Qbot (PID: 3992) و Cobalt Strike (PID: 5620) شناسایی شدند (دادههای زیر از دستگاههای متفاوتی نسبت به لاگ قبلی دریافت شده است.)
پوشههای مختلفی که Qbot فایلهای مخرب دریافتی را در آنجا ذخیره میکند، به عنوان استثناء در Windows Defender هم در مرحله اجرا و هم جهت ماندگاری در سیستم تعریف میشوند.
سرقت اطلاعات اصالتسنجی
بدافزار Qbot اطلاعات اصالتسنجی را از Credential Manager به سرقت میبرد.
در یکی از سیستمهای موردنظر، پروسه تزریقی امکان دسترسی مشکوک به یک رشته را در پروسه LSASS فراهم کرد. ابزاری نظیر Mimikatz اغلب این سطح دسترسی را درخواست میکند تا سطوح دسترسی زیر فراهم شود:
- PROCESS_VM_READ (0x0010)
- PROCESS_QUERY_INFORMATION (0x0400)
- PROCESS_QUERY_LIMITED_INFORMATION (0x1000)
- PROCESS_ALL_ACCESS (0x1fffff)
تعامل پروسه LSASS از پروسه تزریق شده Explorer در دو سطح دسترسی مختلف، از نشانی 0x1410 مشاهده و بررسی شده است:
علاوه بر این، تنها در یک دستگاه، میانگین تعامل LSASS، با حق دسترسی 0x1FFFFF (PROCESS_ALL_ACCESS) توسط پروسه explorer تقریباً 13 هزار مورد در هر دو ساعت بود. این میزان حجم قابل توجهی از رویدادها را شامل میشود.
شناسایی
فرامین شناسایی شده زیر توسط Qbot از طریق پروسه تزریقی در سیستم هک شده آغاز میشود:
بعداً، فرامین بیشتری از پروسه Cobalt Strike تزریق شده در سیستم قربانی دیگری نیز مشاهده شد:
در همان سیستم، AdFind برای شناسایی تمامی کامپیوترها در دامنه Active Directory اجرا شد:
در روز دوم نفوذ، مهاجمان ابزاری به نام Network Scanner (netscan.exe) که توسط SoftPerfect ارائه شده را با استفاده از Internet Explorer بر روی Domain Controller دانلود کردند.
این ابزار برای راهاندازی یک پورت دیگر جهت پویش، این بار در درگاههای TCP 445 و TCP 3389 مورد استفاده قرار گرفت.
پروسه SysWOW64\Explorer از طریق سرور ATERA درخواستهای دورهای را به api.ipify.org در سراسر مدت زمان نفوذ و حمله ارسال میکند. Ipify.org میتواند برای تعیین نشانی IPv4 عمومی شبکه استفاده شود. بکارگیری ipify.org در حملات قبلی نیز مشاهده شده است.
گسترش دامنه نفوذ به سیستمهای مجاور در شبکه
جهت گسترش دامنه نفوذ به سیستمهای مجاور در شبکه (Lateral Movement)، فایلهای DLL بدافزار Qbot به صورت از راه دور از روی اولین دستگاه آلوده بر روی پوشه $C سایر دستگاههای شبکه ذخیره میشوند.
این عملیات همچنین به وضوح در دادههای Zeek SMB File در شبکه قابل مشاهده بود.
یک سرویس محلی نیز در هر یک از سیستمهای مورد نظر ایجاد شد و با استفاده از regsvr32.exe برای اجرای DLL مربوط به بدافزار Qbot پیکربندی گردید.
امضاهای Suricata زیر هم فایلهای از راه دور و هم رویدادهای ثبت سرویس را شناسایی کردند:
- ET RPC DCERPC SVCCTL – Remote Service Control Manager Access
- ET POLICY SMB Executable File Transfer ET POLICY SMB2 NT Create AndX Request For a DLL File – Possible Lateral Movement
سرویس جدید مدت کوتاهی پس از فراخوانی DLL بدافزار Qbot اجرا شد.
مهاجمان همچنین از RDP برای سوییچ بین سیستمهای موجود در شبکه مانند Domain Controller و File Server استفاده میکردند.
ایجاد پروسه rdpclip.exe در دستگاه هدف نشانه دیگری از موفقیتآمیز بودن اتصال RDP است. شروع این پروسه توسط یک حساب کاربری سیستمی (Non-human) یکی دیگر از روشهای عالی تشخیص اتصال RDP است.
استخراج و سرقت دادهها
بدافزار Qbot از ماژولهای مختلفی جهت استخراج و سرقت اطلاعات حساس از دستگاه قربانی استفاده کرده است.
نرمافزار Outlook نیز احتمالاً برای سرقت پیامهای ایمیل راهاندازی شد. با این حال، شواهدی برای تأیید قطعی این موضوع پیدا نشد.
بدافزار Qbot همچنین از ابزار داخلی Windows esentutl.exe برای استخراج دادههای مرورگر از Internet Explorer و Microsoft Edge استفاده کرد:
مهاجمان در سرور فایل، به صورت دستی فایلها را با استفاده از ابزارهای مختلف جستجو کردند. به عنوان مثال برای مشاهده فایلهای PDF از Internet Explorer و برای مشاهده فایلهای DOCX از WordPad استفاده کرده بودند.
البته در مواردی هم مشاهده شد که این فایلها به صورت محلی در شبکه از طریق گزینه “OpenWith” مشاهده شده بودند:
سرور کنترل و فرماندهی
نشانیهای IP/دامنههای سرور C2 متعلق به بدافزار Qbot در این حمله به صورت زیر ثبت شده است:
پایپ postex_4c14 که در پروسه explore.exe مربوط به Cobalt Strike تزریق شده بود، مشاهده شد.
پس از تعویض یکی از پروسههای تزریق شده در explorer.exe، پیکربندی beacon با استفاده از ابزار i1768.pyانجام شد.
جزئیات بیشتر در مورد این نشانیهای IP عبارت است از:
پیکربندی Cobalt Strike
ابزار مدیریت راه دور به نام client32.exe (NetSupport Manager) و کتابخانههای مرتبط با آن در یک ایستگاه کاری در پوشه C:\ProgramData\MSN Devices قرار داده شدند.
ترافیک ارتباطی در شبکه رمزگذاری نشده و حاوی یک user-agent با نام NetSupport Manager/1.3 بود.
مهاجمان اقدام به نصب و فعالسازی Atera RMM Agent در Domain Controller نمودند.
فایل نصبکننده MSI با نام setup_undefined.msi پیکربندی شده تا فایلهای نصب را در پوشه C:\Program Files\ATERA Networks\AteraAgent قرار دهد.
Atera با یکی دیگر از ابزارهای مدیریت از راه دور به نام SplashTop یکپارچه شده و در سیستم فایل قرار داده شده است.
رویدادهای دورهای پروسه «heartbeat» مربوط به Atera به صورت زیر مشاهده شد:
ابزار مدیریت از راه دورSplashtop به عنوان یک پروسه در پس زمینه اجرا میشود:
هر دو ابزار مدیریت از راه دور، برای مهاجمان امکان دسترسی به محیط و شبکه موردنظر را بدون بکارگیری RDP نیز فراهم میکند.
حساب Atera Agent بکار گرفته شده در Registry نرمافزار سرور ثبت میشود:
نشت داده
نشت دادهای (exfiltration) مربوط به این حمله مشاهده نشد.
پیامد
در خصوص پیامد (Impact)، این حمله در یک ارتباط RDP، اسناد حساس (pdf, .docx.) بر روی سرور فایل با استفاده از ++Notepad و Wordpad توسط مهاجمان مشاهده شدند. پس از این، هیچ فعالیت دیگری از سوی مهاجمان مشاهده نشد.
نشانههای آلودگی این حمله در نشانی زیر قابل دریافت و مشاهده میباشد:
https://thedfirreport.com/2022/10/31/follina-exploit-leads-to-domain-compromise/
منبع:
https://thedfirreport.com/2022/10/31/follina-exploit-leads-to-domain-compromise/