خانه » CloudSorcerer – یک APT جدید که نهادهای دولتی روسیه را مورد هدف قرار می‌دهد

CloudSorcerer – یک APT جدید که نهادهای دولتی روسیه را مورد هدف قرار می‌دهد

توسط Vulnerbyte
CloudSorcerer - CloudSorcerer APT - گروه سایبری CloudSorcerer

محققان کسپرسکی در ماه می 2024، یک گروه APT جدید به نام CloudSorcerer را شناسایی کردند که تمرکز آن بر روی نهادهای دولتی روسیه می‌باشد. این، یک بدافزار جاسوسی سایبری پیچیده است که برای نظارت مخفیانه، جمع‌آوری و استخراج داده‌ از طریق زیرساخت‌های ابری Microsoft Graph، Yandex Cloud و Dropbox طراحی شده است.

CloudSorcerer از منابع ابری به عنوان سرورهای فرماندهی و کنترل (C2) خود استفاده می‌کند و از طریق APIها و با استفاده از توکن‌های احراز هویت به آنها دسترسی دارد. علاوه بر این، CloudSorcerer از GitHub نیز به عنوان سرور C2 خود استفاده کرده است.

روش کار CloudSorcerer یادآور CloudWizard APT می‌باشد. با این حال، کد بدافزار CloudSorcerer کاملاً متفاوت است. از این رو، CloudSorcerer به عنوان یک APT جدید در نظر گرفته می‌شود که روش مشابهی را برای تعامل با سرویس‌های ابر عمومی اتخاذ کرده است.

یافته‌های کسپرسکی به طور خلاصه به شرح زیر می‌باشد:

  • CloudSorcererاز سرویس‌های ابر عمومی به عنوان C2های اصلی خود استفاده می‌کند.
  • این بدافزار با استفاده از دستورات خاص با C2 خود تعامل داشته و دستورات را توسط جدول charcode هاردکد شده، رمزگشایی می‌کند.
  • این APT از اینترفیس‌های آبجکت COM مایکروسافت برای انجام عملیات مخرب خود استفاده می‌کند.
  • CloudSorcerer بسته به فرآیندی که در حال اجرا است به عنوان ماژول‌های مجزا (ماژول ارتباطی، ماژول جمع آوری داده) عمل می‌کند، اما توسط یک فایل اجرایی، اجرا می‌شود.

 

جزییات فنی CloudSorcerer 

راه اندازی اولیه

MD5

f701fc79578a12513c369d4e36c57224

SHA1

f1a93d185d7cd060e63d16c50e51f4921dd43723

SHA256

e4b2d8890f0e7259ee29c7ac98a3e9a5ae71327aaac658f84072770cf8ef02de

Link time

N/A

Compiler

N/A

File type

Windows x64 executable

File size

172kb

File name

N/A

CloudSorcerer به صورت دستی توسط مهاجم بر روی دستگاهی که قبلاً آلوده شده است، اجرا می‌شود. این بدافزار یک باینری اجرایی انتقال پذیر (PE) می‌باشد که به زبان C نوشته شده است. عملکرد آن بسته به فرآیندی که در آن اجرا می‌شود، متفاوت می‌باشد.

CloudSorcerer پس از اجرا، تابع GetModuleFileNameA را فراخوانی می‌کند تا نام فرآیندی را که در آن اجرا می‌شود، مشخص کند. CloudSorcerer سپس نام فرآیند را با مجموعه‌ای از رشته‌های هاردکد شده (browser ، mspaint.exe و msiexec.exe) مقایسه می‌‌کند.

این بدافزار بسته به نام فرآیند شناسایی شده، عملکردهای مختلفی را فعال می‌کند:

  • اگر نام فرآیند، exe باشد، آنگاه CloudSorcerer به عنوان یک ماژول بکدور عمل می‌کند و فعالیت‌هایی مانند جمع آوری داده و اجرای کد را به انجام می‌رساند.
  • چنانچه نام فرآیند، exe باشد، آنگاه بدافزار CloudSorcerer، ماژول ارتباطی C2 خود را راه اندازی می‌کند.
  • و در نهایت، اگر نام فرآیند، حاوی رشته « browser » باشد یا با هیچ یک از نام‌های مشخص‌شده مطابقت نداشته باشد، بدافزار سعی می‌کند تا قبل از پایان یافتن فرآیند اولیه، shellcode را به فرآیندهای exe، mspaint.exe یا explorer.exe تزریق کند.

تمامی تبادل داده‌ها بین ماژول‌ها از طریق pipe های ویندوز انجام می‌شود؛ مکانیزمی برای ارتباطات بین فرآیندی (IPC) که اجازه می‌دهد داده‌ها بین فرآیندها منتقل شوند.

 

ماژول بکدور CloudSorcerer

ماژول بکدور با جمع آوری اطلاعات مختلف سیستم در مورد ماشین قربانی آغاز به کار می‌کند که در یک رشته جداگانه اجرا می‌شود. این اطلاعات عبارتند از:

  • نام کامپیوتر
  • نام کاربری
  • اطلاعات ویندوز
  • آپ تایم سیستم

تمام داده‌های جمع آوری شده در یک ساختار خاص ذخیره می‌شوند. هنگامی که جمع آوری اطلاعات کامل شد، داده‌ها در pipe نامگذاری شده \\.\PIPE\[1428] که به فرآیند ماژول C2 متصل است، نوشته می‌شوند.

توجه به این نکته مهم است که تمام تبادل داده‌ها با استفاده از ساختارهای کاملاً تعریف شده با اهداف مختلف مانند ساختار دستورات بکدور و ساختار جمع آوری اطلاعات، سازماندهی می‌شوند.

بدافزار سپس تلاش می‌کند تا داده‌ها را از \\.\PIPE\[1428] بخواند. CloudSorcerer در صورت موفقیت، داده‌های ورودی را در ساختار COMMAND تجزیه می‌کند و یک بایت را از آن می‌خواند که نشان دهنده یک COMMAND_ID است.

ماژول بکدور CloudSorcerer
عملکرد بکدور اصلی CloudSorcerer

بدافزار بسته به COMMAND_ID، یکی از اقدامات زیر را انجام می‌دهد:

  • 0X1- جمع آوری اطلاعات در مورد هارد دیسک در سیستم، از جمله نام منطقی درایو، ظرفیت و فضای خالی آن.
  • 0X2- جمع آوری اطلاعات در مورد فایل‌ها و فولدرها مانند نام، اندازه و نوع آنها.
  • 0X3- اجرای دستورات shell با استفاده از ShellExecuteExW API.
  • 0X4- کپی، انتقال، تغییر نام یا حذف فایل‌ها.
  • 0X5- خواندن داده‌ها از هر فایل.
  • 0X6- ایجاد و نوشتن داده در هر فایل.
  • 0X7- اجرای عملکردهای پیشرفته اضافی.
  • 0X8- یک کد shell را از pipe دریافت کرده و با تخصیص حافظه و ایجاد یک رشته جدید در یک فرآیند راه دور، آن را به هر فرآیندی تزریق می‌کند.
  • 0X9- یک فایل PE دریافت می‌کند، یک بخش را ایجاد و آن را در فرآیند راه دور نگاشت می‌کند.

تمام اطلاعات جمع‌آوری ‌شده یا نتایج تسک‌های انجام‌ شده به یک ساختار ویژه اضافه می‌شود و از طریق یک pipe  نام‌گذاری شده به فرآیند ماژول C2 ارسال می‌گردد.

 

ماژول C2

ماژول C2 با ایجاد یک pipe  ویندوز جدید به نام \\.\PIPE\[1428] آغاز به کار می‌کند و سپس، اتصال به سرور C2 را با ارائه آرگومان‌های لازم به دنباله‌ای از توابع API ویندوز که مسئول اتصالات اینترنتی هستند، پیکربندی می‌کند:

  • InternetCrackUrlA
  • InternetSetOptionA
  • InternetOpenA
  • InternetConnectA
  • HttpOpenRequestA
  • HttpSendRequestA

CloudSorcerer نوع درخواست (“GET”) را تنظیم، اطلاعات پروکسی را پیکربندی و هدرهای هاردکد شده را تنظیم می‌کند و URL مربوط به C2 را ارائه می‌دهد.

اتصال بکدور به اینترنت
تنظیم اتصال به اینترنت

بدافزار سپس به سرور C2 اولیه متصل می‌شود که یک صفحه GitHub است و در https://github[.]com/alinaegorovaMygit قرار دارد. بدافزار با فراخوانی InternetReadFile، کل صفحه وب را در بافر حافظه می‌خواند.

مخزن GitHub شامل فورک‌های سه پروژه عمومی است که اصلاح یا به روزرسانی نشده‌اند. هدف آنها صرفاً قانونی و فعال جلوه دادن صفحه GitHub است. با این حال، بخش نویسنده صفحه GitHub دارای یک رشته هگز جالب می‌باشد:

CloudSorcerer - CloudSorcerer APT - گروه سایبری CloudSorcerer
رشته هگز در بخش مشخصات نویسنده

کسپرسکی داده‌هایی را یافته است که شبیه به یک رشته هگز هستند که با همان الگوی بایت یعنی ” CDOY” آغاز شده و به پایان می‌رسد. پس از اینکه بدافزار کل صفحه HTML  گیت هاب را دانلود کرد، شروع به پردازش آن می‌کند و به طور خاص دنباله کاراکتر ” CDOY” را جستجو می‌نماید.

CloudSorcerer هنگامی که این کاراکتر را یافت، تمام کاراکترها را تا جدا کننده دوم “CDOY” کپی کرده و سپس آنها را در بافر حافظه ذخیره می‌کند. بدافزار در مرحله بعد، این کاراکترها را تجزیه می‌کند و آنها را از مقادیر رشته‌ای به مقادیر هگز تبدیل خواهد کرد.

CloudSorcerer سپس رشته را رمزگشایی می‌کند. هر بایت از رشته تجزیه شده به عنوان یک شاخص در جدول charcode عمل می‌کند و به یک بایت جایگزین اشاره دارد؛ بنابراین یک آرایه هگز جدید ایجاد می‌گردد.

الگوریتم رمزگشایی
الگوریتم رمزگشایی
جدول Charcode
جدول Charcode

CloudSorcerer در روش دیگری، به جای اتصال به GitHub، سعی می‌کند همان داده‌ها را از hxxps://my.mail[.]ru/ که یک سرور میزبان عکس مبتنی بر ابر روسی است، دریافت کند. نام آلبوم عکس شامل همان رشته هگز است.

اولین بایت رمزگشایی شده از رشته هگز یک عدد است که به بدافزار می‌گوید از کدام سرویس ابری استفاده کند. به عنوان مثال، اگر مقدار بایت “1” باشد، بدافزار از ابر Microsoft Graph  استفاده می‌کند. چنانچه مقدار آن “0” باشد، بدافزار از ابر Yandex استفاده می‌کند. بایت‌های بعدی، برای احراز هویت با API ابری استفاده می‌شوند.

CloudSorcerer - CloudSorcerer APT - گروه سایبری CloudSorcerer
جداول مجازی مختلف برای Yandex و Microsoft

بدافزار در مرحله بعد، از طریق زیر به API ابر متصل می‌شود:

  • راه اندازی اتصال اولیه با استفاده از InternetOpenA و InternetConnectA؛
  • تنظیم تمام هدرهای مورد نیاز و توکن مجوز دریافت شده از صفحه GitHub؛
  • پیکربندی مسیرهای API در درخواست؛
  • ارسال درخواست با استفاده از HttpSendRequestExA و بررسی خطاهای پاسخ.
  • خواندن داده‌ها از ابر با استفاده از InternetReadFile.

سپس بدافزار دو رشته مجزا ایجاد می‌کند که یکی مسئول دریافت داده‌ها از pipe ویندوز و دیگری مسئول ارسال داده‌ها به آن است. این رشته‌ها تبادل ناهمزمان داده بین ماژول‌های C2 و بکدور را تسهیل می‌سازند.

ماژول C2 در نهایت، با خواندن داده‌ها، دریافت دستورات رمزگذاری شده، رمزگشایی آنها با استفاده از جدول کد کاراکتر (charcode  ) و ارسال آنها از طریق pipe نامگذاری شده به ماژول بکدور، با سرویس‌های ابری تعامل خواهد داشت.

ماژول C2، نتایج اجرای فرمان یا داده‌های استخراج شده را از ماژول بکدور دریافت می‌کند و آنها را در فضای ابری می‌نویسد.

 

زیر ساخت CloudSorcerer 

صفحه GitHub

صفحه گیت هاب در هفتم می 2024 ایجاد گردید و دو مخزن در همان روز در آن فورک شدند. یک مخزن دیگر نیز در 13 می 2024، فورک گردید اما هیچ تعاملی با GitHub رخ نداد. ” Alina Egorova”، نام مخزن C2 می‌باشد که یک نام مونث روسی است. با این حال، عکس موجود در صفحه GitHub، یک عکس مردانه می‌باشد و از یک بانک عکس عمومی کپی شده است.

 

زیرساخت‌های ابری

سرویس

URL اصلی

مسیر اولیه

Yandex Cloud

cloud-api.yandex.net

/v1/disk/resources?path=
/v1/disk/resources/download?path=
/v1/disk/resources/upload?path=

Microsoft Graph

graph.microsoft.com

/v1.0/me/drive/root:/Mg/%s/%s:/content

Dropbox

content.dropboxapi.com

/2/files/download
/2/files/upload

انتساب CloudSorcerer 

استفاده از سرویس ابری، مسئله جدیدی نیست و ما نمونه‌ای از آن را پیش‌تر در CloudWizard APT  مشاهده کرده‌ایم.

در حالی که شباهت‌هایی در نحوه عملکرد CloudSorcerer با CloudWizard  گزارش شده است، اما تفاوت‌های قابل توجهی در کد و عملکرد CloudSorcerer وجود دارد.

از این رو، احتمال نسبت دادن CloudSorcerer به یک مهاجم یا گروه سایبری شناخته شده، کم است. بنابراین فعلا اینگونه فرض می‌کنیم که CloudSorcerer یک گروه APT  جدید است که تکنیک تعامل با سرویس‌های ابر عمومی را برای خود اتخاذ کرده است.

 

قربانیان CloudSorcerer 

سازمان‌های دولتی روسیه، قربانیان  CloudSorcerer می‌باشند.

 

نتیجه گیری

بدافزار CloudSorcerer مجموعه ابزار پیچیده‌ای را نشان می‌دهد که متمرکز بر نهادهای دولتی روسیه می‌باشند. استفاده از سرویس‌های ابری مانند Microsoft Graph، Yandex Cloud و Dropbox برای زیرساخت‌های C2، همراه با GitHub برای ارتباطات اولیه C2، نشان دهنده یک رویکرد برنامه ریزی شده به منظور جاسوسی سایبری است.

توانایی بدافزار برای تطبیق پویای رفتار خود بر اساس فرآیندی که در آن اجرا می‌شود، همراه با استفاده از ارتباطات پیچیده بین فرآیندی از طریق pipe های ویندوز، پیچیدگی آن را پر رنگ‌تر می‌کند.

 

IoCها

هش فایل (اسناد مخرب، تروجان‌ها، ایمیل‌ها، فریب‌ها):

دامنه‌ها و IPها

hxxps://github[.]com/alinaegorovaMygit

CloudSorcerer C2

hxxps://my.mail[.]ru/yandex.ru/alinaegorova2154/photo/1

CloudSorcerer C2

MITRE ATT&CK

تاکتیک

تکنیک

نام تکنیک

اجرا

T1059.009

Command and Scripting Interpreter: Cloud API

اجرا

T1559

Inter-Process Communication

اجرا

T1053

Scheduled Task/Job

اجرا

T1047

Windows Management Instrumentation

تداوم دسترسی

T1543

Create or Modify System Process

تداوم دسترسی

T1053

Scheduled Task/Job

فرار دفاعی

T1140

Deobfuscate/Decode Files or Information

فرار دفاعی

T1112

Modify Registry

کشف و شناسایی

T1083

File and Directory Discovery

کشف و شناسایی

T1046

Network Service Discovery

کشف و شناسایی

T1057

Process Discovery

کشف و شناسایی

T1012

Query Registry

کشف و شناسایی

T1082

System Information Discovery

جمع آوری

T1005

Data from Local System

فرماندهی و کنترل

T1102

Web Service

فرماندهی و کنترل

T1568

Dynamic Resolution

استخراج

T1567

Exfiltration Over Web Service

استخراج

T1537

Transfer Data to Cloud Account

منبع

همچنین ممکن است دوست داشته باشید

پیام بگذارید

تعریف نشده است