روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ ژانویه ۲۰۲۵، کمپین جاسوسافزار SparkCat شناسایی شد؛ حملهای با هدف دسترسی به کیفپولهای رمزارز قربانیان. عامل تهدید، اپلیکیشنهایی حاوی یک SDK مخرب را توزیع کرده بود. این مؤلفه پس از باز شدن یک صفحه مشخص—معمولاً گفتوگوی پشتیبانی—دسترسی به گالری دستگاه را درخواست نموده و با استفاده از مدل OCR، تصاویر حاوی متن را شناسایی و ارسال میکرد. تمرکز اصلی این کمپین، یافتن عکسهایی با عبارتهای بازیابی کیفپول رمزارز بود. SparkCat از طریق منابع غیررسمی و همچنین فروشگاههای رسمی مانند گوگلپلی و اپاستور توزیع شده بود. اکنون با نوع جدیدی از جاسوسافزار روبهرو شدهایم که باز هم به فروشگاههای رسمی نفوذ کرده و با احتمال بالا به SparkCat مرتبط است؛ با همان هدف: سرقت داراییهای رمزارزی کاربران. با ما همراه باشید تا در ادامه این جاسوس تازه وارد را بیشتر مورد بررسی قرار دهیم.
جزئیات کلیدی درباره این تهدید جدید
- این بدافزار هم دستگاههای iOS و هم Android را هدف قرار میدهد و علاوه بر انتشار در فضای آزاد، از طریق اپاستور و گوگلپلی نیز توزیع شده است. این اپلیکیشن در حال حاضر از گوگلپلی حذف شده.
- در iOS، کد مخرب بهصورت فریمورکهایی با نامهای جعلی عمدتاً با تقلید از AFNetworking یا Alamofire یا کتابخانههایی با نامهایی مانند libswiftDarwin.dylib تزریق میشود؛ در برخی موارد نیز مستقیماً درون اپ تعبیه شده است.
- تروجان اندرویدی در دو نسخه Java و Kotlin توسعه یافته و نسخه Kotlin بهعنوان یک ماژول مخرب Xposed عمل میکند.
- در حالی که اکثر نسخههای این بدافزار تمام تصاویر را بهصورت یکپارچه سرقت میکنند، خوشهای از فعالیتهای مرتبط کشف شده که با استفاده از OCR تنها تصاویر خاصی را انتخاب میکند.
- این کمپین دستکم از فوریه ۲۰۲۴ فعال بوده است.
- ماجرا از یک فروشگاه آنلاین مشکوک آغاز شد…
در جریان نظارت معمول لینکهای مشکوک، با چند صفحه مشابه مواجه شدیم که نسخههای دستکاریشدهای از اپلیکیشن TikTok برای اندروید را منتشر میکردند. در این نسخهها، فعالیتهای اصلی اپ باعث اجرای کد اضافی میشد. این کد فایل پیکربندی Base64 رمزگذاریشدهای را از آدرس hxxps://moabc[.]vip/?dev=az دریافت میکرد.
لینکهای موجود در فایل پیکربندی بهصورت دکمههایی درون اپلیکیشن نمایش داده میشدند. با لمس این دکمهها، صفحهای در WebView باز میشد که فروشگاه آنلاینی به نام TikToki Mall را نمایش میداد؛ فروشگاهی که پرداخت از طریق رمزارز را برای کالاهای مصرفی میپذیرفت. متأسفانه امکان تأیید اصالت این فروشگاه وجود نداشت، چرا که برای خرید از آن، کاربران باید با کد دعوت ثبتنام میکردند. هرچند عملکرد مشکوک دیگری در اپلیکیشنها یافت نشد، حس ششم ما را به ادامه بررسی واداشت. به همین دلیل، کد صفحات وبی را که این اپها را توزیع میکردند مورد بررسی قرار دادیم—و همانطور که حدس میزدیم، سرنخهایی از توزیع اپلیکیشن iOS نیز بهدست آمد.
روش توزیع اپلیکیشن iOS
در صورت بازدید از وبسایت با آیفون، کاربر با زنجیرهای از ریدایرکتها مواجه میشود که در نهایت به صفحهای منتهی میشود که ظاهر فروشگاه App Store را تقلید کرده و کاربر را به دانلود اپ ترغیب میکند. همانطور که میدانید، iOS به کاربران اجازه نمیدهد هر اپی را از منابع طرفسوم دانلود و اجرا کنند. با این حال، اپل از طریق Apple Developer Program قابلیتی به نام Provisioning Profile در اختیار توسعهدهندگان قرار میدهد. این پروفایلها امکان نصب یک گواهی توسعهدهنده روی دستگاه کاربر را فراهم میکنند. iOS نیز با بررسی امضای دیجیتال اپلیکیشن از طریق این گواهی، مشخص میکند که آیا اپ مجاز به اجرا هست یا نه. علاوه بر گواهی، پروفایلهای provisioning شامل اطلاعاتی همچون تاریخ انقضا، سطح دسترسیهای مجاز برای اپ، و مشخصات توسعهدهنده و اپلیکیشن میشوند. پس از نصب این پروفایل روی دستگاه، گواهی مربوطه بهعنوان "مورد اعتماد" شناخته میشود و اپلیکیشن امکان اجرا پیدا میکند.
پروفایلهای provisioning انواع مختلفی دارند:
- Development profile برای تست اپلیکیشنها و تنها روی دستگاههایی که از پیش تعریف شدهاند قابل استفاده است.
- App Store Connect profile برای انتشار رسمی اپلیکیشن در اپاستور کاربرد دارد.
- Enterprise profile برای توزیع داخلی اپها درون سازمانها طراحی شده است؛ بدون نیاز به انتشار در اپاستور و بدون محدودیت در انتخاب دستگاه.
با اینکه عضویت در برنامه توسعهدهندگان اپل نیازمند پرداخت هزینه و احراز هویت است، Enterprise profileها اغلب مورد سوءاستفاده قرار میگیرند. این پروفایلها نهتنها توسط توسعهدهندگان اپهایی که با قوانین اپاستور سازگار نیستند (مانند کازینوهای آنلاین، نسخههای کرکشده یا غیرقانونی از اپهای معروف)، بلکه توسط سازندگان بدافزار نیز مورد استفاده قرار میگیرند.
دنبال مس بودیم، طلا پیدا کردیم
درست مانند نسخه اندرویدی، اپ iOS نیز کتابخانهای در خود داشت که لینک فروشگاه مشکوک را در پنجره پروفایل کاربر جاسازی کرده بود. لمس این لینکها باعث باز شدن آنها در WebView میشد. در نگاه اول، همهچیز ساده به نظر میرسید: یک نسخه مودشده دیگر از یک اپ محبوب که به دنبال کسب درآمد بود. اما یک جزئیات عجیب در نسخه iOS توجه ما را جلب کرد: با هر بار اجرا، اپلیکیشن درخواست دسترسی به گالری تصاویر کاربر میداد—رفتاری که در نسخه اصلی TikTok کاملاً غیرمعمول است. علاوه بر این، کتابخانهای که فروشگاه را درون اپ نمایش میداد، هیچ کدی برای دسترسی به تصاویر نداشت و نسخه اندرویدی اپ نیز هرگز چنین مجوزی را درخواست نمیکرد. همین نکات ما را به بررسی دقیقتر سایر وابستگیهای اپ واداشت—و این بررسی منجر به کشف یک ماژول مخرب شد که خود را بهجای AFNetworking.framework جا زده بود.
برای ایجاد زمینه ذهنی، شاید اشاره به یک نکته جالب خالی از لطف نباشد: برخی اپلیکیشنها از این ماژول مخرب با نام Alamofire.framework یاد میکردند، اما کد آن تغییری نداشت. نسخه اصلی AFNetworking یک کتابخانه متنباز است که رابطهایی برای انجام آسان عملیات شبکه در اختیار توسعهدهندگان قرار میدهد.
تفاوت نسخه مخرب با نسخه اصلی
نسخه دستکاریشده شامل دو کلاس تغییر یافته میشد:
- AFImageDownloader (تغییر یافته)
- AFImageDownloaderTool (افزوده شده)
نکته قابلتوجه این است که نویسندگان بدافزار بدون تعریف تابعهای ابتدایی جداگانه یا تغییر نمادهای صادرشده کتابخانه، بار مخرب را فعال میکردند. آنها از قابلیتی در Objective-C استفاده کرده بودند که به کلاسها امکان میدهد متدی با نام +loadتعریف کنند؛ متدی که هنگام بارگذاری اپ بهطور خودکار اجرا میشود.
در این مورد، نقطه ورود بار مخرب متد +[AFImageDownloader load]بود—متودی که در نسخه اصلی کتابخانه وجود ندارد.
عملکرد بار مخرب
- بررسی مقدار کلید ccool:
بدافزار ابتدا مقدار کلید ccoolرا در فایل تنظیمات Info.plistاپ بررسی میکند. اگر مقدار آن با رشته 77e1a4d360e17fdbc مطابقت نداشته باشد، بدافزار اجرا نمیشود.
- دریافت و رمزگشایی مقدار کلید ccc:
مقدار رمزنگاریشده (Base64) کلید cccاز Info.plist خوانده شده، سپس با استفاده از AES-256 در حالت ECB رمزگشایی میشود. کلید رمزگشایی رشتهای مانند p0^tWut=pswHL-x>>:m?^.^)Wاست که با صفر (null) پر میشود تا به طول ۳۲ بایت برسد. در برخی نمونهها، از کلید جایگزین J9^tMnt=ptfHL-x>>:m!^.^)Aاستفاده شده بود. اگر کلید cccوجود نداشته باشد یا مقدارش خالی باشد، بدافزار بهجای آن به سراغ کلید com.tt.cfدر UserDefaults پایگاه داده داخلی اپ میرود.
- دریافت لیست آدرسها:
مقدار رمزگشاییشده، لیستی از URLها است که بدافزار از طریق آنها بارهای ثانویهرا دریافت میکند. این بارها نیز با همان روش رمزگذاری شدهاند و شامل آدرسهای C2 برای ارسال تصاویر سرقتشده هستند.
- دریافت مجوز از سرور فرمان (C2):
پیش از بارگذاری تصاویر، بدافزار درخواست GET به مسیر /api/getImageStatusمیفرستد و اطلاعات اپ و UUID کاربر را ارسال میکند.
- فیلد codeتعیین میکند که آیا باید درخواست تکرار شود یا نه
- فیلد status مشخص میکند که آیا مجوز بارگذاری تصاویر صادر شده یا نه.
- دسترسی به گالری و رصد تغییرات:
سپس بدافزار دسترسی به گالری تصاویر را درخواست میکند و با ثبت یک اصطلاحاً «کالبک» ، تغییرات گالری را مانیتور میکند. تصاویری که قبلاً بارگذاری نشدهاند، استخراج و به سرور ارسال میشوند.
بدافزار برای پیگیری وضعیت، یک پایگاه داده محلی ایجاد میکند. در صورتی که حین اجرای اپ، گالری تغییر کند، بدافزار تلاش میکند تصاویر جدید را نیز استخراج و آپلود کند.
انتقال دادهها مستقیماً در متد receiptID:andPicID:از کلاس AFImageDownloader انجام میشود. در این متد، یک درخواست PUT به مسیر /api/putImagesارسال میگردد. علاوه بر تصویر، اطلاعات مربوط به اپلیکیشن، دستگاه و شناسههای منحصربهفرد کاربر نیز به سرور ارسال میشود.
بررسی عمیقتر
پس از کشف مؤلفه جاسوسافزار در نسخه iOS دستکاریشدهی TikTok، این سؤال مطرح شد که آیا معادل اندرویدی این تروجان نیز وجود دارد یا خیر. جستجوی اولیه ما را به مجموعهای از اپلیکیشنهای مرتبط با رمزارز رساند. در این اپها، کد مخرب در نقطه ورود برنامه تزریق شده بود.
این بدافزار ابتدا یک فایل پیکربندی شامل آدرسهای C2 را دریافت کرده، سپس آن را با استفاده از الگوریتم AES-256 در حالت ECB رمزگشایی میکرد. آدرسهای رمزگشاییشده برای ارسال درخواست GET به مسیر /api/anheartbeatاستفاده میشد. این درخواست شامل اطلاعاتی از اپلیکیشن آلوده بود. تروجان منتظر پاسخ JSON باقی میماند.
- اگر مقدار فیلد code برابر با ۰ باشد، یعنی ارتباط با C2 مجاز است.
- مقدار فیلد statusمشخص میکرد که آیا تروجان مجاز به ارسال تصاویر کاربر به سرور هست یا خیر.
عملکرد اصلی بدافزار: سرقت تصاویر از گالری
این فرایند در دو مرحله انجام میشود:
- بررسی وضعیت مجوز ارسال فایل:
در صورتی که فیلد status اجازه ارسال را بدهد، تروجان به سراغ محتوای فایلی با مسیر aray/cache/devices/.DEVICESدر حافظه خارجی میرود.
- کنترل و تصمیمگیری بر اساس مقدار فایل:
- در اولین اجرا، تروجان یک رشته هششده MD5 در این فایل مینویسد. این رشته ترکیبی از IMEI، آدرس MAC و یک UUID تصادفی دستگاه است.
- سپس مقدار موجود در این فایل با رشته B0B5C3215E6D مقایسه میشود.
- اگر متفاوت باشد، تروجان تمامی تصاویر گالری را همراه با اطلاعات دستگاه به سرور و از طریق درخواست PUT به مسیر /api/putDataInfoارسال میکند.
- اگر یکسان باشد، تنها سومین تصویر از انتهای فهرست تصاویر (به ترتیب الفبا) بارگذاری میشود.
این رفتار به احتمال زیاد برای اشکالزداییتوسط مهاجمان تعبیه شده است.
نمونههای دیگر در قالب اپلیکیشنهای کازینو
در ادامه، نسخههای دیگری از این تروجان را درون اپلیکیشنهای کازینو شناسایی کردیم. این نسخهها با استفاده از فریمورک LSPosed بارگذاری میشدند؛ فریمورکی که برای قلابکردن کد اپلیکیشنها طراحی شده است. در واقع، این نسخهها بهعنوان ماژولهای مخرب Xposed عمل میکردند.
عملکرد این نسخهها مشابه تروجانی بود که پیشتر شرح دادیم، اما با تفاوتهایی جالب:
- آدرسهای C2 هم در منابع ماژول و هم مستقیماً در کد بدافزار قرار داشتند.
- معمولاً این دو آدرس متفاوت بودند و بدافزار برای دریافت اطلاعات C2 از هر دو استفاده میکرد.
در میان آدرسهای رمزگشاییشده سرورهای فرمان (C2)، تروجان سریعترین سرور را انتخاب میکند. برای این کار، بهصورت ترتیبی به هر سرور درخواست ارسال میکند و در صورت موفقیت، زمان پاسخ را ثبت میکند. کوتاهترین زمان پاسخ، تعیینکننده سرور C2 مورد استفاده است. توجه کنید که این الگوریتم میتوانست بدون ذخیرهسازی مقادیر میانی نیز پیادهسازی شود. کد از نامهای سفارشی برای کلاسها، متدها و فیلدها استفاده میکند و با زبان کاتلین نوشته شده است. نسخههای دیگری که یافتیم، با زبان جاوا نوشته شده بودند.
جاسوسافزار در فروشگاههای رسمی اپلیکیشن
یکی از اپلیکیشنهای اندرویدی نوشتهشده با جاوا که حاوی بار مخرب بود، یک اپ پیامرسان با قابلیتهای تبادل رمزارز بود. این اپ در گوگل پلی بارگذاری شده و بیش از ۱۰ هزار بار نصب شده بود. در زمان تحقیق، این اپ هنوز در فروشگاه موجود بوده و پس از اطلاعرسانی به گوگل، اپ حذف شد. اپ آلوده دیگری به نام 币coin کشف کردیم که از طریق منابع غیررسمی منتشر میشد؛ اما نسخه iOS آن نیز روی اپ استور پیدا شد و به اپل اطلاع دادیم تا حذف شود. در هر دو نسخه اندروید و iOS، بار مخرب بخشی از خود اپلیکیشن بود و به شکل یک SDK یا فریمورک جانبی نبود. در نسخه iOS، کلاس مرکزی AppDelegate که مدیریت چرخه عمر اپ را برعهده دارد، سلکتور [AppDelegate requestSuccess:]را بهعنوان هندلر پاسخهای دریافتی از درخواستهای ارسالشده به i.bicoin[.]com[.]cnثبت کرده است. در پاسخها، فیلد imgUrlحاوی اطلاعاتی درباره مجوز ارسال عکس است (۱ به معنی اجازه داده شده). پس از دریافت مجوز، تروجان مشابه آنچه قبلاً شرح دادیم عمل میکند: مجموعهای رمزنگاریشده از آدرسهای C2 را دانلود کرده و سعی میکند تصاویر را به یکی از آنها ارسال کند. بهطور پیشفرض، اولی را امتحان میکند و اگر سرور پاسخگو نبود، به سرور بعدی میرود. قابلیت ارسال عکس در کلاس KYDeviceActionManager پیادهسازی شده است.
کتابخانه مشکوک libcrypto.dylib نسخه مودشده
در جریان تحقیقات، نمونههایی یافتیم که شامل یک کتابخانه مشکوک دیگر بودند: نسخهای دستکاریشده از کتابخانه رمزنگاری OpenSSL به نام libcrypto.dylib. این کتابخانه با نامهایی مثل wc.dylib و libswiftDarwin.dylibظاهر میشد، توابع اولیهسازی آن با LLVM بهشدت مبهمسازی شده بودند و لینک به یک فایل پیکربندی را داشت که قبلاً در فریمورکهای مخرب دیگر دیده بودیم. این کتابخانه همچنین کلاس PHPhotoLibraryکه برای دسترسی به گالری استفاده میشود را وارد کرده بود. گاهی همراه با AFNetworking.framework/Alamofire.frameworkمخرب ارسال میشد و گاهی بهصورت جدا. برخلاف سایر نسخههای بدافزار، این کتابخانه خاص مستقیماً به لینک فایل پیکربندی مخرب موجود در خودش متصل نمیشد. به همین دلیل مجبور شدیم کد مربوط به برقراری ارتباط اولیه با سرور C2 را بهصورت دستی بررسی کنیم. هرچند این نمونهها شدیداً مبهمسازی شده بودند، برخی مثل نمونه با هش c5be3ae482d25c6537e08c888a742832هنوز ارجاعات متقابل به بخشی از کد داشتند که در آن URL رمزنگاریشده فایل پیکربندی استفاده میشد. این تابع URL رشتهای را به یک شی NSString تبدیل میکرد. با استفاده از Frida میتوانیم هر قطعه کدی را بهعنوان یک تابع اجرا کنیم، اما صرف تبدیل یک رشته به یک شی NSString برای اثبات نیت مخرب کتابخانه کافی نیست. بنابراین، ما مرجعهای متقابل را چند سطح بالاتر دنبال کردیم. وقتی سعی کردیم تابعی را که هنگام اجرای آن با URL کار میکرد، اجرا کنیم، متوجه شدیم که این تابع یک درخواست GET به URL مخرب ارسال میکند. با این حال، پاسخ فوری دریافت نکردیم؛ زیرا سروری که آن URL به آن اشاره داشت، قبلاً غیرفعال شده بود.
برای اجرای صحیح این تابع، از Frida استفاده کردیم تا لینک را با یک لینک فعال جایگزین کنیم که دقیقاً میدانستیم چه دادههایی بازمیگرداند و چگونه رمزگشایی میشود. با قرار دادن قلابهای لاگگیری روی فراخوانی objc_msgSend و اجرای تابع مخرب با URL جایگزین، اطلاعات مورد نیاز دربارهی فراخوانیها را بهدست آوردیم.شبهات ما تایید شد: این تابع مخرب واقعاً پیکربندی آدرسهای سرور فرمان (C2) را از یک URL خاص بارگذاری و رمزگشایی میکند. سپس از این آدرسها برای ارسال اطلاعات دستگاه استفاده میکند، درست مانند الگویی که پیشتر شرح دادیم و با همان کلید AES-256. در ادامه، بخشی از لاگ اجرای این تابع آورده شده است.
لاگ اجرای تابع به وضوح نشان میدهد که از یک آدرس IP موجود در فایل پیکربندی رمزنگاریشده استفاده میکند. اطلاعات دستگاه به آدرس /api/getStatusدر آن IP ارسال میشود و پارامترهایی که میبینیم با نمونههای قبلی همخوانی دارد. همچنین پاسخ سرور شامل فیلدهای codeو statusاست که قبلاً هم مشاهده کرده بودیم. همه این موارد به شدت نشان میدهد که این کتابخانه نیز در سرقت عکسهای کاربر نقش دارد.
تنها نکتهای که هنوز مشخص نیست، شرایط دقیق فعالسازی این تابع مخرب است. هنگام راهاندازی، این کتابخانه با یک سرور C2 تماس میگیرد که آدرس آن درون خود کتابخانه رمزنگاری شده و اطلاعات دستگاه را ارسال میکند و انتظار دریافت پاسخ JSON از سرور را دارد. در زمان انجام این تحقیق، نمونهای با آدرس C2 فعال پیدا نکردیم، بنابراین پاسخ دقیق مورد انتظار را نمیدانیم. اما فرض ما این است که این پاسخ — یا پاسخهای بعدی — باید اجازه ارسال عکسها را صادر کند.
خوشه فعالیت دیگری هم در کار است؟
در جریان تحقیقات، به تعداد قابل توجهی صفحه برخوردیم که اپلیکیشنهای تقلبی iOS را بهصورت PWA (اپلیکیشن وب پیشرونده) برای دانلود ارائه میدادند. در نگاه اول، این صفحات ارتباطی با کمپینی که در این مقاله شرح میدهیم نداشتند. اما کد آنها شباهت قابل توجهی به صفحات توزیع نسخه مخربتیکتاکداشت، که ما را به بررسی نحوه رسیدن کاربران به این صفحات ترغیب کرد.
با بررسی منابع ترافیک، تبلیغات متعددی برای طرحهای کلاهبرداری و پانزی در پلتفرمهای محبوب کشف کردیم.
برخی از این صفحات دارای PWA بخشی داشتند که کاربران را به دانلود اپلیکیشن موبایل ترغیب میکرد. برای کاربران اندروید، لینک دانلود فایل APK بود که با باز کردن آن، پلتفرم کلاهبرداری از طریق WebView اجرا میشد. اما این APKها صرفاً صفحات وب کلاهبرداری را در WebView باز نمیکردند؛ عملکرد دیگری هم داشتند. این اپها درخواست دسترسی برای خواندن حافظه (storage) میکردند. پس از دریافت اجازه، با استفاده از Loader API رویداد دانلود محتوا را ثبت میکردند. این رویداد تمام تصاویر با فرمتهای JPEG و PNG را انتخاب میکرد. سپس تصاویر توسط کتابخانه Google ML Kit برای شناسایی متن (OCR) پردازش میشدند. ML Kit بلوکهای متنی را شناسایی کرده و آنها را به خطوط تقسیم میکرد. اگر حداقل سه خط حاوی کلمهای با حداقل سه حرف پیدا میشد، تروجان تصویر را به سرور مهاجمان ارسال میکرد — که آدرس آن از فضای ذخیرهسازی Amazon AWS گرفته میشد.
ما تقریباً مطمئنیم این خوشه فعالیت با خوشهای که پیشتر توضیح دادیم مرتبط است. دلایل این اطمینان عبارتند از:
- اپلیکیشنهای مخرب نیز بر تمهای مرتبط با رمز ارزها تمرکز دارند.
- تاکتیکهای مشابه به کار رفته است: آدرس سرور C2 در فضای کلود میزبانی شده و محتوای گالری استخراج میشود.
- صفحات توزیع PWAهای iOS شباهت زیادی به صفحات توزیع نسخه مخرب TikTok دارند.
- با توجه به این ارتباط بین دو خوشه فعالیت، گمان میکنیم سازندگان این اپها ممکن است آنها را از طریق تبلیغات شبکههای اجتماعی نیز منتشر کنند.
اهداف و اهداف کمپین
برخلاف SparkCat، جاسوسافزاری که در بالا تحلیل کردیم علائم مستقیمی از علاقه مهاجمان به داراییهای رمز ارزی قربانیان نشان نمیدهد. اما هنوز معتقدیم عکسها به همین هدف دزدیده میشوند. این نتیجهگیریها بر اساس موارد زیر است:
- فروشگاهی که فقط ارز دیجیتال قبول میکند، در کنار جاسوسافزار در اپ TikTok جاسازی شده بود.
- بین اپهایی که جاسوسافزار در آنها یافت شد، چند اپ مرتبط با رمز ارز وجود داشت. مثلاً اپ币coin در اپ استور خود را به عنوان ردیاب اطلاعات کریپتو معرفی کرده و اپ پیامرسان SOEX نیز ویژگیهای مرتبط با رمز ارز دارد.
- منبع اصلی توزیع جاسوسافزار شبکهای از پلتفرمهای دانلود اپهای مشابه است. در تحقیقات ما، دامنههای زیادی یافت شد که هم تروجان توضیح داده شده و هم PWAها را توزیع میکردند. کاربران از سایتهای مختلف کلاهبرداری و پانزی در حوزه کریپتو به این PWAها هدایت میشدند.
- دادههای ما نشان میدهد مهاجمان عمدتاً کاربران جنوب شرق آسیا و چین را هدف قرار دادهاند. بیشتر اپهای آلوده یافته شده، بازیهای شرطبندی چینی، TikTok و بازیهای بزرگسالان بودند. همه این اپها در ابتدا بهطور خاص کاربران این مناطق را هدف گرفته بودند.
ارتباط با کمپین SparkCat
ما معتقدیم این بدافزار به کمپین SparkCat مرتبط است و دلایلمان:
- برخی اپهای اندروید آلوده بهSparkKitty با همان چارچوب اپهایی ساخته شدهاند که آلوده به SparkCat بودند.
- در هر دو کمپین، اپهای اندرویدی مشابهی آلوده شدهاند.
- در فریمورکهای مخرب iOS، علائم اشکالزدایی یافتیم که مسیرهای فایلهایی از سیستم مهاجمان را نشان میدهد؛ این مسیرها با آنچه قبلاً در SparkCat دیده بودیم مطابقت دارند.
نکات کلیدی
بازیگران تهدید هنوز بهطور فعال فروشگاههای رسمی اپلیکیشن را هدف قرار میدهند، و این فقط به اندروید محدود نمیشود؛ سیستم عامل iOS هم هدف آنهاست. این کمپین جاسوسی با روشهای مختلف پخش میشود: از طریق اپلیکیشنهایی که با فریمورکها و SDKهای مخرب از منابع غیررسمی آلوده شدهاند، و همچنین از طریق اپهای مخرب در اپ استور و گوگل پلی. اگرچه این بدافزار از نظر فنی یا مفهومی پیچیده نیست، اما از اوایل سال ۲۰۲۴ فعال بوده و تهدید بزرگی برای کاربران محسوب میشود. برخلاف جاسوسافزار SparkCat که هدف خاصی برای سرقت عکسها داشت، این بدافزار هر عکسی در گالری را سرقت میکند. با این حال، احتمالاً هدف اصلی مهاجمین، پیدا کردن اسکرینشاتهای عبارات بازیابی کیف پولهای ارز دیجیتال است، اما دادههای حساس دیگری هم ممکن است در این تصاویر باشد. از نظر جغرافیایی، بیشتر کاربران هدف در جنوب شرق آسیا و چین قرار دارند، اما بدافزار هیچ محدودیت فنی برای هدف گرفتن کاربران سایر مناطق ندارد.
محصولات امنیتی ما این بدافزار را با نامهای زیر شناسایی میکنند:
- برای اندروید: HEUR:Trojan-Spy.AndroidOS.SparkKitty
- برای آیفون:HEUR:Trojan-Spy.IphoneOS.SparkKitty
شاخصهای نفوذ
اپهای آلودهی اندرویدی
b4489cb4fac743246f29abf7f605dd15
e8b60bf5af2d5cc5c501b87d04b8a6c2
aa5ce6fed4f9d888cbf8d6d8d0cda07f
3734e845657c37ee849618e2b4476bf4
fa0e99bac48bc60aa0ae82bc0fd1698d
e9f7d9bc988e7569f999f0028b359720
a44cbed18dc5d7fff11406cc403224b9
2dc565c067e60a1a9656b9a5765db11d
66434dd4402dfe7dda81f834c4b70a82
d851b19b5b587f202795e10b72ced6e1
ce49a90c0a098e8737e266471d323626
cc919d4bbd3fb2098d1aeb516f356cca
530a5aa62fdcca7a8b4f60048450da70
0993bae47c6fb3e885f34cb9316717a3
5e15b25f07020a5314f0068b474fff3d
1346f987f6aa1db5e6deb59af8e5744a
اپهای آلودهی آیاواسی
b4489cb4fac743246f29abf7f605dd15
e8b60bf5af2d5cc5c501b87d04b8a6c2
aa5ce6fed4f9d888cbf8d6d8d0cda07f
3734e845657c37ee849618e2b4476bf4
fa0e99bac48bc60aa0ae82bc0fd1698d
e9f7d9bc988e7569f999f0028b359720
a44cbed18dc5d7fff11406cc403224b9
2dc565c067e60a1a9656b9a5765db11d
66434dd4402dfe7dda81f834c4b70a82
d851b19b5b587f202795e10b72ced6e1
ce49a90c0a098e8737e266471d323626
cc919d4bbd3fb2098d1aeb516f356cca
530a5aa62fdcca7a8b4f60048450da70
0993bae47c6fb3e885f34cb9316717a3
5e15b25f07020a5314f0068b474fff3d
1346f987f6aa1db5e6deb59af8e5744a
فریمورکهای آلودهی آیاواسی
8c9a93e829cba8c4607a7265e6988646
b3085cd623b57fd6561e964d6fd73413
44bc648d1c10bc88f9b6ad78d3e3f967
0d7ed6df0e0cd9b5b38712d17857c824
b0eda03d7e4265fe280360397c042494
fd4558a9b629b5abe65a649b57bef20c
1b85522b964b38de67c5d2b670bb30b1
ec068e0fc6ffda97685237d8ab8a0f56
f10a4fdffc884089ae93b0372ff9d5d1
3388b5ea9997328eb48977ab351ca8de
931085b04c0b6e23185025b69563d2ce
7e6324efc3acdb423f8e3b50edd5c5e5
8cfc8081559008585b4e4a23cd4e1a7f
آرشیوهای آلوده و مبهمسازیشدهی آیاواسی
0b7891114d3b322ee863e4eef94d8523
0d09c4f956bb734586cee85887ed5407
2accfc13aaf4fa389149c0a03ce0ee4b
5b2e4ea7ab929c766c9c7359995cdde0
5e47604058722dae03f329a2e6693485
9aeaf9a485a60dc3de0b26b060bc8218
21a257e3b51561e5ff20005ca8f0da65
0752edcf5fd61b0e4a1e01371ba605fd
489217cca81823af56d141c985bb9b2c
b0976d46970314532bc118f522bb8a6f
f0460bdca0f04d3bd4fc59d73b52233b
f0815908bafd88d71db660723b65fba4
6fe6885b8f6606b25178822d7894ac35
دانلود لینکهایی برای اپهای آلوده
hxxps://lt.laoqianf14[.]top/KJnn
hxxps://lt.laoqianf15[.]top/KJnn
hxxps://lt.laoqianf51[.]top/KJnn
hxxps://yjhjymfjnj.wyxbmh[.]cn/2kzos8?a45dd02ac=d4f42319a78b6605cabb5696bacb4677
hxxps://xt.xinqianf38[.]top/RnZr
صفحاتی که توزیعکننده تروجانها هستند
hxxps://accgngrid[.]com
hxxps://byteepic[.]vip
c2 و ذخیرهگاه پیکربندی
C2:
23.249.28[.]88
120.79.8[.]107
23.249.28[.]200
47.119.171[.]161
api.fxsdk.com
Configurations
hxxp://120.78.239[.]17:10011/req.txt
hxxp://39.108.186[.]119:10011/req.txt
hxxps://dhoss-2023.oss-cn-beijing.aliyuncs[.]com/path/02WBUfZTUvxrTMGjh7Uh
hxxps://sdk-data-re.oss-accelerate.aliyuncs[.]com/JMUCe7txrHnxBr5nj.txt
hxxps://gitee[.]com/bbffipa/data-group/raw/master/02WBUfZTUvxrTMGjh7Uh
hxxps://ok2025-oss.oss-cn-shenzhen.aliyuncs[.]com/ip/FM4J7aWKeF8yK
hxxps://file-ht-2023.oss-cn-shenzhen.aliyuncs[.]com/path/02WBUfZTUvxrTMGjh7Uh
hxxps://afwfiwjef-mgsdl-2023.oss-cn-shanghai.aliyuncs[.]com/path/02WBUfZTUvxrTMGjh7Uh
hxxps://zx-afjweiofwe.oss-cn-beijing.aliyuncs[.]com/path/02WBUfZTUvxrTMGjh7Uh
hxxps://dxifjew2.oss-cn-beijing.aliyuncs[.]com/path/02WBUfZTUvxrTMGjh7Uh
hxxps://sdk-data-re.oss-accelerate.aliyuncs[.]com/JMUCe7txrHnxBr5nj.txt
hxxps://data-sdk2.oss-accelerate.aliyuncs[.]com/file/SGTMnH951121
hxxps://1111333[.]cn-bj.ufileos[.]com/file/SGTMnH951121
hxxps://tbetter-oss.oss-accelerate.aliyuncs[.]com/ip/CF4J7aWKeF8yKVKu
hxxps://photo-php-all.s3[.]ap-southeast-1.amazonaws[.]com/app/domain.json
hxxps://c1mon-oss.oss-cn-hongkong.aliyuncs[.]com/J2A3SWc2YASfQ2
hxxps://tbetter-oss.oss-cn-guangzhou.aliyuncs[.]com/ip/JZ24J7aYCeNGyKVF2
hxxps://data-sdk.oss-accelerate.aliyuncs[.]com/file/SGTMnH951121
مسیرها
/sdcard/aray/cache/devices/.DEVICES
کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.