خبرهای مهم:

تاریخ امروز برابر است با [ سه شنبه ۳۰ آبان ۱۳۹۶ ]

چندی پیش توسط یکی از اعضای گروه با یک برنامه اندرویدی آشنا شدم. طبق مشاهده٫ صاحب این نرم افزار با صرف هزینه سنگین تقریبا روزی ۲ میلیون تومن (فقط بخش رصد شده توسط ما) در حال تبلیغ این اپ در کانال های تلگرام بود . این نرم افزار به عنوان “دوربین لخت کن” معرفی شده بود ولی از اونجا که هزینه نسبتا زیادی برای تبلیغ اون میشد و قبل از دریافت نرم افزار هم پولی از کاربر گرفته نمی شد مشخص بود که کلاه برداری ای پشت این قضیه وجود دارد، برای اینکه از ابعاد این کلاه برداری با خبر بشیم اولین کار این بود که نرم افزار رو روی یک امولاتور اجرا کنیم. نکته جالب این بود که نرم افزار بر روی شبیه ساز اندروید Genymotion اجرا نشد.

در حدود ۱۰ روزی که روند تبلیغات اپ رو پیگیری کردیم یک لیست از کانال هایی که تبلیغ نرم افزار رو قرار دادن تهیه کردیم که در آخر این پست قابل دسترس است ، توجه داشته باشید که معمولا بعد از گذشت زمانی مشخص تبلیغ از کانال حذف می شود ٫ اما تصویر یکی از این تبلیغ ها در شکل زیر قبل مشاهده است . مشاهده بعدی این بود که در هر بار (روز) تبلیغ در حدود ۵۰۰ هزار تا ۱ میلیون بار دیده میشد . در زمان تهیه این گزارش ٫ این کمپین تبلیغاتی کماکان ادامه دارد!

 

ویدیویی جعلی به همراه این برنامه در بعضی کانال ها ارسال شده است که نحوه کار این برنامه را به خریداران نشان میدهد ، برای کسانی که از روی اسم این برنامه ترغیب شدن که یه نسخه از اون رو داشته باشن این ویدیو می تونه باعث اعتماد سازی بیشتر بشه.

 

 

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

رای این کار در مرحله اول به صورت static پکیج apk رو آنالیز می کنیم. با استفاده از نرم افزار jadx-gui برنامه رو decompile می کنیم، اسم فایل dorbin.apk هست و با استفاده از دستور زیر این کار انجام میشه.


jadx-gui dorbin.apk

چیزی که انتظارش میرفت یک برنامه نوشته شده با جاوا به همراه کد obfuscate شده بود و احتمالا سرقت اطلاعات کاربر، فیشینگ، ransomware و یا استفاده از root exploit ها بدترین حالتی بود که از این طریق این نرم افزار می توانست کاربر رو مورد حمله قرار بده. اما چیزی که با اون مواجه شدیم یک نرم افزار خیلی ساده java بود که فقط یک سری activity داشت.

نکاتی که باید بهش دقت کنیم و در عکس مشخص است:

  • این نرم افزار از توابع Runtime.register و TypeManager.Activate استفاده می کند ، این کد در همه activity های برنامه استفاده شده و به جز اون منطق دیگری وجود ندارد.

 

  • در بخش resources در پوشه lib/armeabi-v7a چند فایل با پسوند so وجود دارد که کتابخانه هایی native و کامپایل شده برای پردازنده arm هستند .

توابع TypeManager.Activate و Runtime.register مربوط به کتابخانه Xamarin هستند. این کتابخانه به توسعه دهنده اجازه می دهد یک کد واحد رو که با #C نوشته شده با تغییر خیلی کم روی پلتفرم های Android و iOS اجرا کنه. این ۲ تابع هم در واقع روند اجرایی برنامه رو به کد Xamarin منتقل می کنند.

کتابخانه های native در برنامه libmonodroid.so و libmonosgen-2.0.so هستند که مربوط به کتابخانه mono میشوند. این کتابخانه برای اجرای کدهای Net. بر روی اندروید استفاده میشود و Xamarin هم از این کتابخانه استفاده می کند . از طرف دیگر دلیل اجرا نشدن این برنامه روی امولاتور Genymotion هم مشخص شد، Genymotion با معماری x86 کار می کند ولی این برنامه تنها کدهای native مربوط به arm را در خود دارد و بر روی پلتفرم های x86 اجرا نمیشود.

حالا که مشخص شد با یک اپلیکیشن توسعه داده شده با Xamarin طرف هستیم، با یکم جستجو به این نتیجه میرسیم که در پوشه Resources\assemblies میتوان dll های مربوط به کد و منطق برنامه رو پیدا کرد. فایل مورد نظر ما SuperCamera.dll است.

 

dll های برنامه

برای بررسی این فایل کافیه از یک Decompiler برای Net. استفاده کنیم. من از ILSpy برای دسترسی به کد #C برنامه استفاده کردم. کد #C برنامه هم در این نمونه obfuscate شده و به راحتی نمیشود روند اجرایی آن را به صورت static دنبال کرد. اما با یک نگاه چیزی که مشخص است این که٫ از سرقت اطلاعات، رمز کردن اطلاعات کاربر و یا root exploit خبری نیست.

بررسی دسترسی ها، Activity ها و سرویس های برنامه

خوب الان میشه دسترسی هایی که برنامه هنگام نصب درخواست می کنه رو هم بررسی کنیم، برای این کار با استفاده از apktool نسخه xml فایل AndroidManifest.xml رو از بسته apk برنامه استخراح میکنیم:


apktool d dorbin.apk

فایل AndroidManifest.xml که شامل سرویس ها، Activity ها و دسترسی های برنامه است :

<<?xml version=”1.0″ encoding=”utf-8″ standalone=”no”?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android” android:installLocation=”auto” package=”com.supercamera.app” platformBuildVersionCode=”25″ platformBuildVersionName=”7.1.1″>
<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE”/>
<uses-permission android:name=”android.permission.CAMERA”/>
<uses-permission android:name=”android.permission.INTERNET”/>
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
<application android:allowBackup=”true” android:icon=”@drawable/camera” android:label=”SuperCamera” android:name=”android.app.Application”>
<activity android:icon=”@drawable/icon” android:label=”درباره ما” android:name=”md552a6ea15d8d57b628a7925702f10e901.About” android:screenOrientation=”portrait”/>
<activity android:label=”دوربین” android:name=”md552a6ea15d8d57b628a7925702f10e901.Cameraaa” android:screenOrientation=”landscape”/>
<activity android:label=”اپلیکشن Super Camera چیست؟” android:name=”md552a6ea15d8d57b628a7925702f10e901.Description” android:screenOrientation=”portrait”/>
<activity android:icon=”@drawable/camera” android:label=”پرداخت و فعال سازی درون برنامه” android:name=”md552a6ea15d8d57b628a7925702f10e901.License” android:screenOrientation=”portrait”/>
<activity android:icon=”@drawable/icon” android:label=”Super Camera” android:name=”md552a6ea15d8d57b628a7925702f10e901.MainActivity” android:screenOrientation=”portrait”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity>
<provider android:authorities=”com.supercamera.app.mono.MonoRuntimeProvider.__mono_init__” android:exported=”false” android:initOrder=”2147483647″ android:name=”mono.MonoRuntimeProvider”/>
</application>
</manifest>
این برنامه تنها دسترسی خواندن و نوشتن به sd card، دسترسی به دوربین و اینترنت را از کاربر درخواست می کند و هیچ سرویسی در پس زمینه اجرا نمی کند . با داشتن این اطلاعات می توان به مرحله بعد رفت و برنامه را روی یک دستگاه اندرویدی اجرا کرد .
اجرای برنامه بر روی یک دستگاه اندرویدی
 برای این کار من از یک گوشی قدیمی استفاده کردم، پراکسی burp رو در مسیر اینترنت دستگاه تنظیم کردم و برنامه رو نصب و اجرا کردم.
(نمای از برنامه)
اگه روی دوربین کلیک کنید برنامه از شما درخواست فعالسازی خواهد داشت ، در بخش معرفی اپلیکیشن یک متن خیلی قانع کننده نوشته شده:
(توضیحات برنامه)
بخش مهم این که برای فعالسازی٫ برنامه قربانی را به یک درگاه پرداخت بانکی شاپرک هدایت میکند و حمله از نوع فیشینگ نیست ، درگاه به اسم یک فروشنده شارژ ثبت شده و با پرداخت ۲ هزار تومان می شود برنامه را فعال کرد. توجه کنید که در صفحه قبلی کلاهبردار تاکید کرده بود که٫ این ویژگی لخت کردن توسط دوربین٫ ۸ سال پیش توسط نوکیا ارائه شده و اکثر گوشی ها از آن پشتیبانی می کنند.
(درگاه پرداخت)
برنامه برای فعالسازی به آدرس سرور مرکزی یک درخواست ارسال میکند و در صورت فعال نبودن برنامه ٫ پیام no برگشت داده میشه، تنها کافی است که توسط پراکسی burp این پیام رو به yes تغییر دهید تا بدون نیاز به پرداخت برنامه فعال شود.
درخواست برنامه:
GET /mellatasnajsfnain2as5asfa3/q19/api.php?IdNumber=08034182589334a3&action=0 HTTP/1.0
Host: asfmw2as1fas4f8a4f6aaswrtrege.supcamcomsap.ml
Connection: close
پاسخ سرور:

HTTP/1.0 200 OK
Date: Sun, 05 Feb 2017 11:19:39 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8
Connection: close no

برای فعالسازی دائمی برنامه بدون پرداخت کافیست یک درخواست به این آدرس ارسال کنیم:

asfmw2as1fas4f8a4f6aaswrtrege.supcamcomsap.ml/mellatasnajsfnain2as5asfa3/q19/api.php?IdNumber=08034182589334a3&action=1

در بخش پشتیبانی برنامه هم یک آی دی تلگرام وجود دارد که تا لحظه تنظیم گزارش از ان جوابی نگرفتیم . حال بعد از فعالسازی برنامه روی دوربین کلیک می کنیم و برنامه به شما یک لودینگ نشان خوهد داد که نکته جالب آن این است که هر ثانیه ۱ درصد پیش میرود!

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

دستکاری صفحه پرداخت شاپرک و تغییر مبلغ:

زمانی که در حال تست های مختلف بر روی این نرم افزار بودم ، یکی از مسائلی که دونستنش برام جالب بود این بود که آیا صفحه پرداخت هم جعلیه و یا اطلاعات بانکی کاربر هم سرقت میشه؟ برای پیدا کردن جواب این سوال از پروکسی Burp در مسیر ارتباطی نرم افزار با اینترنت استفاده کردیم. چیزی که مشاهده شد این بود که صفحه پرداخت واقعی هست و در اون نام پذیرنده “پویان شارژ” و مبلغ پرداختی ۲۰ هزار تومان هست اما بعد از اینکه این صفحه در webview نرم افزار در تلفن اندرویدی بارگذاری میشه نام پذیرنده به مقدار جعلی “فروش اینترنتی شارژ” و مبلغ نیز به ۲ هزار تومان تغییر می کنه، با این کار هم کاربر امکان پیگیری کلاه برداری از طریق درگاه رو از دست میده و هم تصور می کنه مبلغ ۲ هزار تومان رو باید پرداخت کند. سمت چپ درگاه اصلی و سمت راست درگاه نمایش داده شده در دستگاه اندرویدی رو در شکل زیر میبینید.

با توجه به اینکه بعد از مشاهده این اتفاق نیاز به بررسی سورس کد این نرم افزار بیشتر از قبل شده بود با استفاده از نرم افزار ILSpy و همچنین نصب افزونه Reflexil نرم افزاری که برای obfuscate کردن این کد استفاده شده بود رو پیدا کردیم (Net Reactor.) و تونستیم مقداری از کد اصلی رو برگردانیم. بعد از این کار مقادیر ثابت string ها به حالت اولیه خودش برگشت و کد مربوط به activity که درگاه بانکی رو نمایش می داد مشخص شد:

همونطور که در کد زیر می بینید، درگاه بانکی تشخیص داده شده و با استفاده از javascript مقادیر اصلی با مقادیر جعلی جایگزین شده. برای مثال خط ۹۴ تا ۹۷:

   {
                                    ” &nbsp; فروش اينترنتي شارژ &nbsp;”,
                                    “&nbsp; 2138873 &nbsp;”,
                                    “&nbsp; 20,000 &nbsp; ريال”,
                                    this.sclass7
                                });

کلاه برداری به همین سادگی

خب همانطور که خوندید به همین سادگی سر مردم کلاه گذاشته میشود و با توجه به حجم تبلیغاتی که انجام میشود به نظر کلاهبردار پول خوبی از این راه بدست می آورد . از طرفی هم کسی به پلیس فتا بابت ۲ هزار تومن  (یا ۲۰ هزار تومن در صورتی که متوجه شده باشه) و خرید برنامه دوربین لخت کن و عدم کارکرد آن شکایت نخواهد برد . با یک تخمین سر انگشتی در همین بازه زمانی که ۵۰۰ هزار بار تبلیغ مشاهده شده، ۱ درصد از افراد نرم افزار رو نصب کردن و پرداخت رو انجام دادن به این عدد می رسیم: ۸۰ میلیون تومان در ۱۰ روز، با توجه به اینکه تنها ۲۰ میلیون تومن هزینه تبلیغات توسط ما تخمین زده شده یه همچین سودی دور از انتظار هم نیست.

۵۰۰,۰۰۰ * ۰٫۰۱ * ۲۰,۰۰۰ (قیمت) = ۸۰,۰۰۰,۰۰۰ = ۲۰,۰۰۰,۰۰۰ (هزینه تبلیغات در ۱۰ روز) – ۱۰۰,۰۰۰,۰۰۰

:: نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.

*