شرح کلی
نوع: دانلودر (Downloader)
درجه تخریب: کم
میزان شیوع: متوسط
دانلودر (Downloader) چیست؟
این نوع از بدافزارها با اهدافی چون تبیلغات و انتشار سایر برنامههای اندرویدی استفاده میشوند. معمولا بدون اینکه به طور صریح به کاربر اطلاع دهند، به ازای کلیک کاربر بر روی بخشهای مختلف برنامه، فایلی را در پس زمینه دانلود میکنند و یا از طریق لینکهای دانلود موجود در برنامه، در حین اجرا، کاربر را به طور مستقیم به لینک دانلود از مارکت یا وب سایت مشخصی هدایت میکنند. همچنین، ممکن است از کاربر به ازای ارائه خدمتی در برنامه یا عملکرد بهتر برنامه، درخواست دانلود برنامه دیگری را داشته باشد.
خانواده بدافزاری Notifyer چیست؟
تبلیغ افزار Notifyer در پس زمینه با استفاده از سرویسهای ارسال اعلان، برای کاربر اعلانهای تبلیغاتی نمایش میدهد. در صورت کلیک بر روی هر یک از اعلانها در تلفن همراه کاربر، صفحات تبلیغاتی در مرورگر باز میشوند.
توضیحات فنی
کاربر این برنامه را با عنوان “میکس عکس با آهنگ” از فروشگاه اندرویدی کافه بازار دریافت میکند. تعدادی از این نوع بدافزار (ویرایش فیلم و عکس) با نامها و پکیجهای مختلف در فروشگاههای دانلود اپلیکیشن مانند کافه بازار در حال حاضر موجود است. این بدافزار بدون اجازه کاربر اقدام به دانلود برنامههای مختلف نموده و درخواست نصب آنها را از کاربر مینماید. همچنین، با توجه به پکیج “co.ronash.pushe” از سرویس تبلیغاتی پوشه برای نمایش اعلانهای خود استفاده کرده است.
به محض اجرای اکتیویتی اصلی برنامه، بررسی نسخه API گوشی کاربر انجام میشود و در صورتی که بزرگتر و یا مساوی مقدار 9 باشد، پکیج پوشه میتواند بر روی آن اجرا شود. همچنین، نصب بودن سرویس گوگل پلی بر روی گوشی کاربر بررسی میشود تا پکیج پوشه بتواند اجرا و آپدیت شود.
اکتیویتی com.aksvirayeshy441.moin1.Dialog
در این اکتیویتی با سرور بدافزار به آدرس “hxxp[:]//baroot[.]ir/click_hi” ارتباط برقرار کرده و نام پکیج و hash برنامههای نصب شده را به همراه آیدی پکیج پوشه، با استفاده از متد POST ارسال میکند (معمولا برای ارسال اعلان هدفمند استفاده میشود که شبیه سرویس ارسال هشدار onesignal که فیلتر است میباشد). پس از بررسی وضعیت نصب برنامههای بازار، ایران اپ، مایکت و گوگل استور روی دستگاه کاربر، در صورت وجود هر یک، صفحه مربوط به این برنامهها را باز میکند. لیست پکیجهای مورد نظر بدافزار جهت دانلود مشخص شده است که همگی از نوع پیامرسان (مانند تلگرام، تلگرام طلایی و…) هستند.
public String a() {
byte b1 = 0;
arrayOfString = new String[53];
arrayOfString[0] = “ir.persianfox.messenger”;
arrayOfString[1] = “org.telegram.plus”;
arrayOfString[2] = “org.telegram.messenger”;
arrayOfString[3] = “ir.rrgc.telegram”;
arrayOfString[4] = “ir.felegram”;
arrayOfString[5] = “ir.teletalk.app”;
arrayOfString[6] = “ir.alimodaresi.mytelegram”;
arrayOfString[7] = “org.telegram.engmariaamani.messenger”;
arrayOfString[8] = “org.telegram.igram”;
arrayOfString[9] = “ir.ahoura.messenger”;
arrayOfString[10] = “com.shaltouk.mytelegram”;
arrayOfString[11] = “ir.ilmili.telegraph”;
arrayOfString[12] = “ir.pishroid.telehgram”;
arrayOfString[13] = “com.goldengram”;
arrayOfString[14] = “com.telegram.hame.mohamad”;
arrayOfString[15] = “ir.amatis.vistagram”;
arrayOfString[16] = “org.mygram”;
arrayOfString[17] = “org.securetelegram.messenger”;
arrayOfString[18] = “com.mihan.mihangram”;
arrayOfString[19] = “com.telepersian.behdadsystem”;
arrayOfString[20] = “com.negaheno.mrtelegram”;
arrayOfString[21] = “com.telegram.messenger”;
arrayOfString[23] = “ir.samaanak.purpletg”;
arrayOfString[24] = “com.ongram”;
arrayOfString[25] = “com.parmik.mytelegram”;
arrayOfString[26] = “life.telegram.messenger”;
arrayOfString[27] = “com.baranak.turbogramf”;
arrayOfString[28] = “com.baranak.tsupergram”;
arrayOfString[29] = “com.negahetazehco.cafetelegram”;
arrayOfString[30] = “ir.javan.messenger”;
arrayOfString[31] = “org.abbasnaghdi.messenger”;
arrayOfString[32] = “com.baranak.turbogram”;
arrayOfString[33] = “org.ir.talaeii”;
arrayOfString[34] = “org.vidogram.messenger”;
arrayOfString[35] = “com.parsitelg.telegram”;
arrayOfString[36] = “ir.android.telegram.post”;
arrayOfString[37] = “telegram.plus”;
arrayOfString[38] = “com.eightgroup.torbo_geram”;
arrayOfString[39] = “org.khalkhaloka.messenger”;
arrayOfString[40] = “com.groohan.telegrampronew”;
arrayOfString[41] = “com.goftagram.telegram”;
arrayOfString[42] = “com.Dorgram”;
arrayOfString[43] = “com.bartarinhagp.telenashenas”;
arrayOfString[44] = “org.kral.gram”;
arrayOfString[45] = “com.farishsoft.phono”;
arrayOfString[46] = “ir.talayenaaab.teleg”;
arrayOfString[47] = “hamidhp88dev.mytelegram”;
arrayOfString[48] = “ir.zinutech.android.persiangram”;
arrayOfString[49] = “org.abbasnaghdi.messengerpay”;
arrayOfString[50] = “com.hanista.mobogram”;
arrayOfString[51] = “com.hanista.mobogram.three”;
arrayOfString[52] = “com.hanista.mobogram.two”;
ArrayList arrayList = new ArrayList();
while (b1 < 53) {
if (a(arrayOfString[b1]))
arrayList.add(arrayOfString[b1]);
b1++;
}
همچنین، پکیج برنامه خوانندهشو “ir.mshdev.khanandeh.sho.free” از طریق مارکت کافه بازار یا مارکت گوگل پلی دانلود میشود که این برنامه نیز خود یک تبلیغ افزار است.
سرویس MyPushListener
این کلاس مربوط به دریافت اعلان است. پارامتر ورودی json بررسی میشود تا json ارسالی دارای طول صفر نبوده و محتوا داشته باشد. در صورتی که مقدار key برابر 1 باشد، محتویات رشته “link” با آدرس مشخص را در مرورگر گوشی باز میکند. علاوه بر این، در صورتی که مقدار key برابر 3 باشد کاربر را به آدرس “tg://resolve?domain=” هدایت کرده که منجر به باز شدن صفحه خاصی در تلگرام میشود و اگر مقدار key برابر 4 باشد، ورژن جدید پکیج پوشه را دانلود میکند.
public void onMessageReceived(JSONObject paramJSONObject1, JSONObject paramJSONObject2) {
if (paramJSONObject1.length() == 0);
try {
Intent intent;
String str;
switch (paramJSONObject1.getInt(“key”)) {
case 2:
return;
case 1:
a(paramJSONObject1.getString(“link”));
return;
case 3:
str = paramJSONObject1.getString(“link”);
intent = new Intent(“android.intent.action.VIEW”, Uri.parse(“tg://resolve?domain=” + str));
intent.addFlags(268435456);
startActivity(intent);
return;
case 4:
this.url2 = intent.getString(“url”);
this.filename = intent.getString(“filename”);
(new DownloadNewVersion()).execute(new String[0]);
return;
}
} catch (JSONException paramJSONObject1) {
paramJSONObject1.printStackTrace();
return;
}
}
دریافتکننده AppChangeReceiver
این دریافتکننده با اکشن PACKAGE_INSTALL ،PACKAGE_ADDED و PACKAGE_FULLY_REMOVED اجرا میشود؛ یعنی به محض نصب، اضافه شدن و یا حذف کامل یک پکیج این دریافتکننده اجرا میشود. سپس، اطلاعات مربوط به پکیجهای برنامههای نصب شده را درحالت یک رشته بر میگرداند و نام پکیج، نام نسخه، زمان اولین نصب و زمان آخرین آپدیت را دریافت کرده و مشخص میکند که برنامه از کدام مارکت گرفته شده است.
تکنیکهای بدافزار
در این برنامه، از تکنیک Emulator Detection استفاده شده است. در این روش، برنامه با استفاده از چند متد وجود امولاتور را تشخیص میدهد. ابتدا برنامه به دنبال فایلهای باینری است که معمولاً پس از روت شدن گوشی نصب میشوند.
- روش اول: وجود رشته “su” در مسیرهای مشخص بررسی میشود. مسیرهای موجود همگی سیستمی هستند که تنها در صورتی که گوشی روت باشد، امکان دسترسی به آنها وجود دارد. بنابراین، احتمال اینکه تحت امولاتور، برنامه در حال اجرا باشد زیاد است و برنامه متوقف میشود.
/sbin/su
/system/bin/su
/system/bin/failsafe/su
/system/xbin/su
/system/xbin/busybox
/system/sd/xbin/su
/data/local/su
/data/local/xbin/su
/data/local/bin/su
- روش دوم: بررسی مقدار TAGS میباشد، به این صورت که اگر مقدار BUILD.TAGS حاوی رشته “test-keys” باشد، به معنی وجود امولاتور است. به طور پیش فرض، ROMهای اندرویدی Google از مقدار “release-keys” برای BUILD.TAGS استفاده میکنند. بنابراین، اگر مقدار رشته بازگشتی برای پارامتر ذکر شده برابر “test-keys” باشد، میتواند به معنی وجود امولاتور باشد.
- روش سوم: برنامه به دنبال فایل apk (فایلی که معمولا پس از روت شدن نصب میشود) در مسیر “
/system/app/
” است، که در صورت وجود این فایل میتوان نتیجه گرفت برنامه در امولاتور یا گوشی روت شده اجرا میشود.
روش مقابله و پاکسازی سیستم
برای اطمینان خاطر از عدم آلودگی دستگاه، آنتی ویروس پادویش را نصب و فایل پایگاه داده آن را بهروز نگه دارید و اسکن آنتی ویروس را انجام دهید.
روشهای پیشگیری از آلوده شدن گوشی:
۱. از دانلود و نصب برنامه از منابع و مارکتهای موبایلی نامعتبر خودداری کنید.
۲. هنگام نصب برنامههای موبایلی، به مجوزهای درخواستی دقت کنید.
۳. از فایلها و اطلاعات ذخیره شده در گوشی پشتیبانگیری مداوم انجام دهید.
۴. از نسخههای غیررسمی برنامهها استفاده نکنید. برنامههایی مانند تلگرام و اینستاگرام نسخههای غیررسمی زیادی دارند و بیشتر آنها از طریق کانالهای تلگرامی انتشار مییابند.