• امروز : یکشنبه - ۴ مهر - ۱۴۰۰
  • برابر با : 19 - صفر - 1443
  • برابر با : Sunday - 26 September - 2021

اخبار ویژه

کوهپیمایی و زیارت مزار شهدای گمنام عون بن علی تبریز بیوگرافی آنیتا معتمدی نیا، بازیگر، کارگردان و نویسنده هرمزگانی برگزاری همایش خودروهای کلاسیک و سافاری به مناسبت هفته گردشگری در آذربایجان شرقی کمک های مردمی به نیازمندان قابل تحسین است شامگاه یاد یاران شهرستان مسجدسلیمان برگزار شد «آی‌پی آدرس ثابت» و سوالات متداول پیرامون آن دیدار فرمانده سپاه پاسداران انقلاب اسلامی شهرستان مسجدسلیمان با خانواده معظم شهدا و ایثارگران تمرین تیم فوتسال خبرنگاران با گرامیداشت یاد و خاطره دانش‌آموز ایذه‌ای/ آذرماه در جام فلک‌الافلاک یادواره شهید زنده نورخدا موسوی شرکت می‌کنیم شرایط واردات خودرو تغییر کرد برقراری پرواز فوق العاده تبریز – نجف سرمربی نفت مسجدسلیمان فردا معرفی می‌شود پیام تسلیت دکترفرزاد رحمانی در پی شهادت سومین شهید مدافع سلامت اورژانس استان آذربایجان شرقی “احد آبروان “ سردرگمی دانشجویان دانشگاه آزاد مسجدسلیمان و عدم وجود پروتکل های بهداشتی زنگ آغاز سال تحصیلی ۱۴۰۰ در مسجدسلیمان به صدا درآمد + فیلم و عکس انتقاد امام جمعه تبریز از سرگردانی زائران اربعین حسینی در فرودگاه تبریز طرح آبیاری نوین در شهرستان بستان آباد افتتاح شد حادثه رانندگی محور اهر تبریز مقابل دانشگاه آزاد سانحه رانندگی در محور اهر-ورزقان ۳ مصدوم و یک کشته بر جا گذاشت پیام تسلیت سردار نعمت الله حکیم، رئیس حزب عدالت طلبان ایران اسلامی کل کشور و مهندس عبدالله پایان دبیر حزب عدالت طلبان ایران اسلامی در استان خوزستان در پی درگذشت شهادت گونه نوجوان فداکار «علی لندی» درخشش داور آذربایجان‌شرقی در اروپا

0

آنالیز بدافزار فیشینگ اندرویدی / هکرها چگونه با اپلیکیشن بانک ملت حسابتان را خالی می کنند

  • برای مطالعه این خبر 7 دقیقه زمان نیاز است
  • کد خبر : 71962
  • ۲۰ شهریور ۱۴۰۰ - ۱۰:۰۰
آنالیز بدافزار فیشینگ اندرویدی / هکرها چگونه با اپلیکیشن بانک ملت حسابتان را خالی می کنند
در برهه‌ای از تاریخ زندگی می‌کنیم که بازار بدافزار‌های اندرویدی بیش از پیش داغه و عملا به یک هدف خوب برای کلاه‌برداران و جاسوسان تبدیل شده است. چرا که پلتفرم اندروید نسبت به سایر پلتفرم ها دسترسی بیشتری از سیستم به کاربر ‌داده و تلفن همراه به عنوان وسیله‌ای که همیشه یار و یاور کاربر می‌باشد و معمولا اکثر افراد کارهای روزمره خودرا اعم از بانکی، پیام‌رسانی، ذخیره اطلاعات شخصی و … توسط این پلتفرم انجام می‌دهند.

خبر روز / در این پست به بررسی یک بدافزار اندرویدی که به اسم “موبایل‌ بانک ملت” در شبکه‌های اجتماعی گسترش یافته می‌پردازیم که Phishing کمترین کاری است که میتواند انجام دهد. این بدافزار در تاریخی که این پست نوشته شده هنوز درحال کار کردن و تمام سرورهای آن فعال است. این پست به نحوه آنالیز و مسائل جزئی فنی مربوطه نمی‌پردازد و صرفا نتایج بدست آمده از آنالیز را بیان می‌کند.

اسم پکیج این بدافزار اندرویدی، com.behsazaan.mobilebank می‌باشد با checksum:

SHA1: 82EFE2D990C7F5D72264A198AA8CC0BBFF705089

که شامل:

  • صفحه phishing است که اطلاعات بانکی کاربر را به سرقت می‌برد.
  • keylogger که می‌تواند تمام ورودی‌هایی که کاربر در تلفن‌همراه خود وارد می‌کند را ذخیره کرده و به سمت مهاجم ارسال کند. (به عنوان مثال می‌تواند همه‌ی حروفی که با کیبرد تایپ می‌شود را ذخیره کند و توسط این تکنیک به رمزعبورهای کاربر در اپهای مختلف دسترسی پیدا کند).
  • دسترسی به پیامک‌ها.
  • دسترسی به مخاطبین.
  • دسترسی به محل ذخیره فایلها.
  • اجازه نصب اپلیکیشن در تلفن‌همراه کاربر.

ابزارهای آزمایشگاه

  • genymotion: مجازی‌ساز اندروید
  • jadx: تحلیل ایستا
  • Frida/RMS: تحلیل پویا
  • wireshark/Burpsuite: تحلیل ترافیک
  • apk studio: برای تغییر کد و خروجی apk گرفتن به سادگی
  • Time

در بعضی از مطالب فقط یکی از تکنیکها و ابزارها استفاده شده (مثلا در قسمت پنهان شدن آیکن فقط از تحلیل ایستا استفاده شده است) اما در بعضی دیگر از همه ابزارها استفاده شده (مثل تحلیل ترافیک) اما هدف این پست آشنایی با این ابزارها نیست و صرفا نتیجه‌ی استفاده از آنها مورد بررسی قرار می‌گیرد.

حال به بررسی قدم به قدم این اپلیکیشن میپردازیم و آن را نصب و اجرا می‌کنیم:

بررسی permission ها

SYSTEM_ALERT_WINDOW: با این دسترسی میتوان اپ را بر روی بقیه‌ی اپهای نصب شده در تلفن همراه نمایش داد بدون اینکه کاربر متوجه آن شود. تکنیکی که توسط اکثر بدافزار‌های اندرویدی به منظور نمایش تبلیغ، click-jacking، phishing scam و گاهی نیز توسط باج‌افزارهای اندرویدی به منظور از کار انداختن رابط کاربری برای افراد غیرفنی به کار برده می‌شود.

PACKAGE_USAGE_STATS: دسترسی به کلیه آمار و ارقام مربوط به استفاده از سایر اپ‌های نصب شده در تلفن همراه که به عنوان نمونه می‌توانید به آدرس زیر مراجعه کنید:

برای اطلاعات بیشتر به اینجا مراجعه کنید.

BIND_ACCESSIBILITY_SERVICE: زیباترین دسترسی در اندروید که منبع اصلی اندروید اینطور توصیفش می‌کند: Accessibility services should only be used to assist users with disabilities in using Android devices and apps ولی متاسفانه در بیشتر مواقع از خاصیت بدش در جهت عکس ارزش‌های انسانی استفاده شده است.  هر اتفاقی که در تلفن‌همراه اندرویدی بیفته میشه با این بزرگوار مانیتورش کرد مثلا چه متنی انتخاب شد، چه دکمه‌ای کلیک شد، چه. صفحه ای فوکوس شد و … که همه‌چیزهایی که یک key-logger احتیاج داره رو بهش میده:

و به راحتی یک سرویس در بکگراند اجرا شده و همه اتفاقات را در یک فایل ذخیره کرده و در وقت مناسب به سمت مهاجم ارسال می‌کند:

و در آخر هم دسترسی‌های خیلی معمول که توسط هر بدافزاری گرفته می‌شود که این بدافزار هم از این قاعده مستثنی نیست:

READ_CONTACTS: خواندن همه‌ی مخاطبین

و ارسالش برای سرور مهاجم به آدرس Url/Cn.php

CALL_PHONE: با این دسترسی اپ میتونه بدون اینکه کاربر رو به صفحه شماره‌گیر هدایت کنه خودش با هر شماره‌ای تماس برقرار کنه. البته در مهندسی معکوس این بدافزار در هیچ جایی استفاده از این امکان مشاهده نشد و صرفا دسترسی آن از کاربر گرفته شده است. شاید برای آپدیت های بعدی 

READ_SMS: خواندن پیامک‌ها
نحوه استفاده این دسترسی اندکی هوشمندانه‌تر نسبت به قبلیاس. یک سرویس به اسم rest وجود داره که همه‌ی مسئولیتهای مربوط به بده بستون‌های بین اپ و  C&C سرور متعلق به ایشونه. حالا به دو صورت ویژگی‌های این سرویس فعال میشه:

با استفاده از broadcastReceiverی که تعریف شده، اگر تلفن روشن شود (action.BOOT_COMPLETED)، یا یک پیامک دریافت شود (Telephony.SMS_RECEIVED)، این سرویس فعال می‌شود.

مورد اول که از کدهاش واضحه که برای اینه که همیشه در سیستم در حال اجرا باشه حتی اگر گوشی ریستارت شد.

اما مورد دوم وقتی فعال میشه که یک پیامک به کاربر ارسال بشه و اندروید با این جریانات broadcastReceiver میتونه متوجه بشه و یک کار خاصی در اون موقع انجام بده. که توی مورد خاص وقتی پیامک دریافت میشه بلافاصله محتویات پیام و جزئیاتش به سرور ارسال میشه:

که در ادامه میخوایم راجع به اون Amirs هم صحبت کنیم، صبور باشید.

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

READ_EXTERNAL_STORAGE: برای درک بهتر و آشنایی با انواع ذخیره در محل حافظه اندروید اینجا را ببینید. بدون این دسترسی هم میتوان در محل حافظه داخلی مخصوص اپ عملیات خواندن/نوشتن را انجام داد اما اگر بخواهیم به پوشه هایی مثل DCIM، Movies ،Download و … دسترسی داشته باشیم حتما باید در  runtime این دسترسی از کاربر گرفته شود.

فعال شدن بدافزار روی تلفن‌ هدف

وقتی کاربر سعی دارد وارد حساب کاربری خود شود و دکمه‌ی ورود را می‌زند اطلاعات زیر به سمت سرور ارسال می‌شود:

"\n\t\t New Target V3.2 \n\t\t----------------------\n\t\t|-Phone Number : 09121111111\n\t\t|-UserName : 111111111111\n\t\t|-Password : 222222222222\n\t\t|-First Serial : a267b161c7b192\n\t\t|-Three Serial : 000000000000000\n\t\t|-Four Serial : 89014103211118510720\n\t\t------Mellat-----\n\t\t"

که سریال هایی داره میفرسته مربوط به device id میشه که یک مقدار یکتا در هر تلفن‌همراه می‌باشد.

پنهان شدن آیکن

وقتی اندکی با نرم‌افزار کار کنیم و اطالاعات بانکی خود را در آن وارد کنیم، بدافزار مطمئن می‌شود که تمام اطلاعات بانکی شما را سرقت کرده و نیازی برای صفحه phishing در آینده نمی‌بیند. و برای امنیت هر چه بیشتر بدافزار، آیکن خود را پنهان می‌کند و همه کارهای خود را با سرویس هایی که در background است، انجام می‌دهد:

توسط کد زیر که در اینجا توضیح داده شده است اپ می‌تواند آیکن خود را مخفی کند:

جلوگیری از حذف اپ توسط کاربر

در سیستم عامل اندروید می‌توان به اپ‌های در حال اجرا دسترسی داشت. از طرفی com.android.packageinstaller اپی که توسط آن میتوان اپ‌های نصب شده را حذف/نصب کرد. با توجه به این فرضیات نحوه عملکرد بدافزار را هنگام حذف آن مشاهده کنید:

در اینجا یک سرویس تحت عنوان detector در سیستم اجرا شده است و هروقت که کاربر برای حذف اقدام کند کد زیر اجرا می‌شود:

حال هروقت یکی از activityهای این اپ به اسم UninstallerActivity اجرا شود، یک intent اجرا کرده و کاربر را از اپ مربوط به حذف بدافزار خارج می‌کند.

اما برای حذف برنامه، ابتدا باید سرویس های مربوط به اپ را بست و سپس اقدام به حذف بدافزار از روی تلفن همراه کرد. (force stop)

رمزنگاری

در اپ ‌های اندرویدی معمولا برای پنهان سازی credentials که به صورت استاتیک به سادگی قابل تحلیل نباشند، string های حیاتی را به صورت رمز شده ذخیره می‌کنند و آنها را در runtime رمزگشایی می‌کنند. مهمترین استفاده از رمزنگاری در این بدافزار به منظور پنهان سازی Proxy-Authorization که یک http header است به کار گرفته می‌شود.
به منظور ساختن این header، در ابتدا محتویات فایل‌های زیر که در اپ از ابتدا وجود‌ داشته‌اند خوانده می‌شود:

با ترکیب های مختلفی از این رشته‌ها، رشته ای ساخته شده و در نهایت با AES، رمزگشایی می‌شود.

کتابخانه‌های استفاده شده

برای درخواست‌های http از ترکیب ۴ کلاینت استفاده شده است:

  • OkHttp: کتابخانه معروف برای ارسال درخواست HTTP
  • Retrofit: یک کتابخانه معروف روی Okhttp که استفاده از آن را ساده تر می‌کند.
  • Aghajari.retrofit: کلاینت شخصی سازی شده روی retrofit
  • Tamic.Novate: یک کلاینت غیرمعمول (که کمتر در سایر اپلیکیشن ها دیده شده) همانند retrofit روی OkHttp نوشته شده است.

به اقتضای کاربرد از هرکدام از آنها استفاده می‌کند (شاید هم برای گمراه کردن آنالیزور) ولی در اکثر مواقع از Tamic بهره می‌گیرد.

برای سایر ویژگی های اپ از کتابخانه خاصی استفاده نشده است اما جالب است که این بدافزار با B4A توسعه داده شده است که در زمان حال کمتر شخص حرفه‌ای به سراغ آن می‌رود. در بخش آخر بیشتر راجع به این موضوع صحبت خواهیم کرد…

تحلیل ترافیک

همه درخواست‌ها به https://ns1-torproxy.xyz فرستاده و path های زیر استفاده می‌شود:

و اینکه با IP ایران ns1-torproxy.xyz باز نمیشه و اما بدافزار چطوری داره با سرور اصلی ارتباط برقرار میکنه:

لیست IP هایی که پروکسی میکنه هم چون هنوز در حال کاره هنوز از سروری که استفاده میشه متصل هست:

روی اکثرش با اسکن nmap این بدست اومد:

۸۰۸۰/tcp open  http-proxy

برخی سوالات

یکسری سوال اینجا مطرح میشه:
۱. چرا این اپ با B4A توسعه داده شده وقتی توی موارد malware development کلی میشه از کدهای آماده به زبانهای java/kotlin/c استفاده کرد؟

۲. چرا شخص توسعه‌دهنده اسم و رسم خودشو روی در و دیوار کدها نوشته؟‌ هم توی endpoint ها اسمشو نوشته هم توی پکیجی که برای کلاینت http استفاده میکنه فراوان amir aghajari رو نوشته.

۳. چرا وقتی میتونه همه پیامک هارو بخونه و بفرسته برا مهاجم فقط میره سراغ پیامک جدیدی که اومده؟

۴. با IP ایران Url باز نمیشه و خود اپ با پروکسی‌ای که داره درخواست‌ها رو میفرسته. تهیه ۳۳ تا سرور میتونه کار یک شخص برای لذت بردن و اذیت کردن بقیه باشه؟

۵. چرا یکسری دسترسی‌هایی میگیره که ازشون استفاده‌ای نمیکنه؟‌

۶. هدف افراد سازمانی بودند یا شخصی؟

۷. هدف در طولانی مدت کاربرد داشتند یا دسترسی سریع به اطلاعات در اولویت بوده؟

۸. هدف از قبل مشخص بوده یا اینکه هرکس بدافزار را نصب کرد یک هدف عالی برای نفوذ بیشتر است؟


نظر شما در مورد این مطلب چیست؟ نظرات خود را در پایین همین صفحه با ما در میان بگذارید.

لینک کوتاه : https://daylinews.ir/?p=71962

نظر دهید:

مجموع دیدگاهها : 0
قوانین ارسال نظرات

خبر روز حق خود را در منتشر نکردن دیدگاه شما بر اساس تشخیص خود، حتی به فرض این‌که قوانین زیر را صریحاً نقض نکرده باشند، محفوظ می‌داند.

  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت خبر روز منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.