ڪيئن Android Trojan Gustuff توهان جي اڪائونٽن مان ڪريم (fiat ۽ crypto) اسڪيم

ڪيئن Android Trojan Gustuff توهان جي اڪائونٽن مان ڪريم (fiat ۽ crypto) اسڪيم

بس ٻئي ڏينهن گروپ-آئي بي اطلاع موبائل Android Trojan Gustuff جي سرگرمي بابت. اهو خاص طور تي بين الاقوامي مارڪيٽن ۾ ڪم ڪري ٿو، 100 وڏين پرڏيهي بئنڪن جي گراهڪن تي حملو ڪرڻ، موبائل 32 crypto wallets جي استعمال ڪندڙ، ۽ گڏوگڏ وڏي اي ڪامرس وسيلن. پر گسٽف جو ڊولپر هڪ روسي ڳالهائيندڙ سائبر ڏوهن جي نالي سان بيسٽ آفر آهي. تازو ئي، هن پنهنجي ٽروجن جي ساراهه ڪئي جيئن "ماڻهن لاء هڪ سنجيده پيداوار ڄاڻ ۽ تجربو."

گروپ-IB تي خراب ڪوڊ تجزيي جو ماهر آئيون پساروف هن جي تحقيق ۾، هو تفصيل سان ڳالهائي ٿو ته گسٽف ڪيئن ڪم ڪري ٿو ۽ ان جا خطرا ڪهڙا آهن.

Gustuff جو شڪار ڪير آهي؟

Gustuff مڪمل طور تي خودڪار ٿيل ڪمن سان گڏ مالويئر جي نئين نسل سان تعلق رکي ٿو. ڊولپر جي مطابق، ٽروجن AndyBot مالويئر جو هڪ نئون ۽ بهتر ورزن بڻجي ويو آهي، جيڪو نومبر 2017 کان اينڊرائيڊ فونز تي حملو ڪري رهيو آهي ۽ فشنگ ويب فارمز ذريعي پئسا چوري ڪري مشهور بين الاقوامي بينڪن ۽ ادائگي جي نظام جي موبائيل ايپليڪيشنن جي روپ ۾. Bestoffer ٻڌايو ته Gustuff Bot رينجر جي قيمت $800 هر مهيني هئي.

گسٽف نموني جي تجزيي مان اهو ظاهر ٿئي ٿو ته ٽروجن ممڪن طور تي گراهڪن کي ٽارگيٽ ڪري رهيو آهي موبائل ايپليڪيشنون استعمال ڪندي وڏن بينڪن، جهڙوڪ بئنڪ آف آمريڪا، بينڪ آف اسڪاٽلينڊ، جي پي ايم مورگن، ويلز فارگو، ڪيپيٽل ون، ٽي ڊي بئنڪ، پي اين سي بئنڪ، گڏوگڏ crypto wallets. Bitcoin Wallet، BitPay، Cryptopay، Coinbase، وغيره.

اصل ۾ هڪ کلاسک بينڪنگ ٽروجن جي طور تي ٺاهي وئي، موجوده نسخي ۾ گسٽف کي خاص طور تي وڌايو ويو آهي حملي جي امڪاني مقصدن جي فهرست. بئنڪن، فنيچ ڪمپنين ۽ crypto خدمتن لاءِ Android ايپليڪيشنن کان علاوه، Gustuff جو مقصد مارڪيٽ جي ايپليڪيشنن، آن لائين اسٽورن، ادائگي جي نظام ۽ فوري پيغامن جي استعمال ڪندڙن لاءِ آهي. خاص طور تي، PayPal، مغربي يونين، eBay، Walmart، Skype، WhatsApp، Gett Taxi، Revolut ۽ ٻيا.

داخلا پوائنٽ: ڪاميٽي انفيڪشن لاء حساب

Gustuff جي خاصيت آهي ”ڪلاسڪ“ ویکٹر جي دخل اندازي جي Android اسمارٽ فونز ۾ ايس ايم ايس ميلنگ ذريعي APKs جي لنڪ سان. جڏهن هڪ Android ڊوائيس سرور جي حڪم تي ٽروجن سان متاثر ٿئي ٿي، گسٽف وڌيڪ متاثر ٿيل فون جي رابطي واري ڊيٽابيس ذريعي يا سرور جي ڊيٽابيس ذريعي پکڙيل آهي. گسٽف جي ڪارڪردگي ڪاميٽي انفيڪشن ۽ ان جي آپريٽرز جي ڪاروبار جي وڌ ۾ وڌ سرمائيداري لاءِ ٺهيل آهي - ان ۾ جائز موبائل بينڪنگ ايپليڪيشنن ۽ ڪرپٽو والٽس ۾ هڪ منفرد ”آٽو-فِل“ فنڪشن آهي، جيڪو توهان کي رقم جي چوري کي تيز ڪرڻ ۽ ماپڻ جي اجازت ڏئي ٿو.

ٽروجن جي هڪ مطالعي مان معلوم ٿيو ته آٽو فل فنڪشن ان ۾ لاڳو ڪيو ويو آهي استعمال ڪندي رسائي سروس، هڪ خدمت معذور ماڻهن لاءِ. گسٽف پهريون ٽروجن نه آهي جنهن ڪاميابيءَ سان هن Android سروس کي استعمال ڪندي ٻين ايپليڪيشنن جي ونڊو عناصر سان رابطي جي خلاف تحفظ کي بائي پاس ڪيو. بهرحال، ڪار فلر سان ميلاپ ۾ رسائي جي خدمت جو استعمال اڃا تائين تمام ناياب آهي.

مقتول جي فون تي ڊائون لوڊ ڪرڻ کان پوء، Gustuff، رسائي سروس استعمال ڪندي، ٻين ايپليڪيشنن (بينڪنگ، cryptocurrency، گڏوگڏ آن لائن شاپنگ، پيغام، وغيره) جي ونڊوز عناصر سان رابطو ڪرڻ جي قابل آهي، حملي ڪندڙن لاء ضروري عملن کي انجام ڏئي ٿو. . مثال طور، سرور جي حڪم تي، هڪ ٽروجن بٽڻ کي دٻائي سگهي ٿو ۽ بئنڪنگ ايپليڪيشنن ۾ ٽيڪسٽ فيلڊ جي قيمتن کي تبديل ڪري سگهي ٿو. رسائي سروس ميکانيزم کي استعمال ڪندي ٽروجن کي اجازت ڏئي ٿو ته بئنڪن پاران استعمال ڪيل سيڪيورٽي ميڪانيزم کي بائي پاس ڪرڻ لاءِ اڳئين نسل جي موبائيل ٽروجن کي منهن ڏيڻ لاءِ، انهي سان گڏ گوگل پاران Android OS جي نئين ورزن ۾ لاڳو ڪيل سيڪيورٽي پاليسي ۾ تبديليون. اهڙيء طرح، Gustuff "ڄاڻي ٿو ڪيئن" Google Protect تحفظ کي غير فعال ڪرڻ: ليکڪ جي مطابق، هي فنڪشن 70٪ ڪيسن ۾ ڪم ڪري ٿو.

ڪيئن Android Trojan Gustuff توهان جي اڪائونٽن مان ڪريم (fiat ۽ crypto) اسڪيم

Gustuff پڻ ڏيکاري سگھي ٿو جعلي PUSH اطلاعن کي جائز موبائل ايپليڪيشنن جي آئڪن سان. صارف PUSH نوٽيفڪيشن تي ڪلڪ ڪري ٿو ۽ سرور مان ڊائون لوڊ ڪيل هڪ فشنگ ونڊو ڏسي ٿو، جتي هو درخواست ٿيل بينڪ ڪارڊ يا crypto والٽ ڊيٽا داخل ڪري ٿو. ٻي Gustuff منظر ۾، ايپليڪيشن جنهن جي طرفان PUSH نوٽيفڪيشن ڏيکاريل هئي کوليو ويو آهي. انهي صورت ۾، مالويئر، سرور کان ڪمانڊ تي رسائي سروس ذريعي، ڀرجي سگھي ٿو بينڪنگ ايپليڪيشن جا فارم فيلڊ فراڊ ٽرانزيڪشن لاءِ.

گسٽف جي ڪارڪردگي ۾ پڻ شامل آهي سرور ڏانهن متاثر ٿيل ڊوائيس بابت معلومات موڪلڻ، ايس ايم ايس پيغامن کي پڙهڻ / موڪلڻ جي صلاحيت، يو ايس ايس ڊي درخواستون موڪلڻ، SOCKS5 پراڪس لانچ ڪرڻ، لنڪ جي پيروي ڪرڻ، فائلون موڪلڻ (بشمول دستاويزن جا فوٽو اسڪين، اسڪرين شاٽ، فوٽوز) سرور، ڊوائيس کي فيڪٽري سيٽنگون ري سيٽ ڪريو.

مالويئر تجزيو

بدسلوڪي ايپليڪيشن کي انسٽال ڪرڻ کان اڳ، Android OS صارف کي هڪ ونڊو ڏيکاري ٿو جنهن ۾ گسٽف پاران درخواست ڪيل حقن جي فهرست شامل آهي:

ڪيئن Android Trojan Gustuff توهان جي اڪائونٽن مان ڪريم (fiat ۽ crypto) اسڪيم
ايپليڪيشن کي انسٽال ڪيو ويندو صرف صارف جي رضامندي حاصل ڪرڻ کان پوء. ايپليڪيشن کي لانچ ڪرڻ کان پوء، ٽرجن صارف کي ونڊو ڏيکاريندو:

ڪيئن Android Trojan Gustuff توهان جي اڪائونٽن مان ڪريم (fiat ۽ crypto) اسڪيم
جنهن کان پوءِ ان جي آئڪن کي هٽائي ڇڏيندو.

گسٽف ڀريل آهي، ليکڪ جي مطابق، ايف ٽي ٽي جي هڪ پيڪر طرفان. شروع ٿيڻ کان پوء، ايپليڪيشن وقتي طور تي 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%>
} 

اسٽوريج جي ترتيب واري ڊيٽا

Gustuff هڪ ترجيح فائل ۾ عملي طور تي اهم معلومات محفوظ ڪري ٿو. فائل جو نالو، گڏوگڏ ان ۾ پيٽرولر جا نالا، MD5 جي رقم کي اسٽرنگ مان ڳڻڻ جو نتيجو آھي 15413090667214.6.1<%name%>ڪٿي <%name%> - شروعاتي نالو- قدر. نالي جي نسل جي فنڪشن جو پٿون تعبير:

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

جنهن ۾ اسان ان کي هيٺ بيان ڪنداسين نالو پيدا ڪندڙ (ان پٽ).
تنهن ڪري پهرين فائل جو نالو آهي: نالو پيدا ڪندڙ ("API_SERVER_LIST")، ان ۾ ھيٺين نالن سان قدر شامل آھن:

نالو متغير قدر
نالو پيدا ڪندڙ ("API_SERVER_LIST") هڪ صف جي صورت ۾ CnC پتي جي هڪ فهرست تي مشتمل آهي.
نالو پيدا ڪندڙ ("API_SERVER_URL") CnC ايڊريس تي مشتمل آهي.
نالو پيدا ڪندڙ ("SMS_UPLOAD") پرچم ڊفالٽ مقرر ڪيو ويو آهي. جيڪڏھن جھنڊو ٺھيل آھي، سي اين سي ڏانھن ايس ايم ايس پيغام موڪلي ٿو.
نالو پيدا ڪندڙ ("SMS_ROOT_NUMBER") فون نمبر جنهن تي متاثر ٿيل ڊوائيس پاران وصول ڪيل ايس ايم ايس پيغام موڪليا ويندا. ڊفالٽ null آهي.
نالو پيدا ڪندڙ ("SMS_ROOT_NUMBER_RESEND") پرچم ڊفالٽ طور صاف ڪيو ويو آهي. جيڪڏهن نصب ٿيل آهي، جڏهن هڪ متاثر ٿيل ڊوائيس هڪ ايس ايم ايس وصول ڪري ٿو، اهو روٽ نمبر ڏانهن موڪليو ويندو.
نالو پيدا ڪندڙ ("DEFAULT_APP_SMS") پرچم ڊفالٽ طور صاف ڪيو ويو آهي. جيڪڏھن ھي جھنڊو مقرر ڪيو ويو آھي، ايپليڪيشن ايندڙ ايس ايم ايس پيغامن تي عمل ڪندي.
نالو پيدا ڪندڙ ("DEFAULT_ADMIN") پرچم ڊفالٽ طور صاف ڪيو ويو آهي. جيڪڏهن پرچم مقرر ڪيو ويو آهي، ايپليڪيشن کي منتظم جا حق آهن.
نالو پيدا ڪندڙ ("DEFAULT_ACCESSIBILITY") پرچم ڊفالٽ طور صاف ڪيو ويو آهي. جيڪڏهن پرچم مقرر ڪيو ويو آهي، هڪ خدمت استعمال ڪندي رسائي سروس هلائي رهي آهي.
نالو پيدا ڪندڙ ("APPS_CONFIG") ھڪڙو JSON اعتراض جنھن ۾ عملن جي ھڪڙي فهرست شامل آھي جيڪي لازمي طور تي انجام ڏنا وڃن جڏھن ھڪڙي خاص ايپليڪيشن سان لاڳاپيل ھڪڙي رسائي واري واقعي کي شروع ڪيو وڃي.
نالو پيدا ڪندڙ ("APPS_INSTALLED") ڊوائيس تي نصب ڪيل ايپليڪيشنن جي هڪ فهرست کي اسٽور ڪري ٿو.
نالو پيدا ڪندڙ ("IS_FIST_RUN") پرچم پهرين شروعات تي ريٽ ڪيو ويو آهي.
نالو پيدا ڪندڙ ("UNIQUE_ID") هڪ منفرد سڃاڻپ ڪندڙ تي مشتمل آهي. ٺاهي وئي جڏهن بوٽ پهريون ڀيرو شروع ڪيو ويو آهي.

سرور کان ڪمانڊ پروسيسنگ لاءِ ماڊل

ايپليڪيشن سي اين سي سرورز جي ايڊريس کي انڪوڊ ڪيل صف جي صورت ۾ محفوظ ڪري ٿي بيس 85 لائينون. CnC سرورز جي لسٽ کي مناسب حڪم جي وصولي تي تبديل ڪري سگھجي ٿو، ان صورت ۾ ايڊريس کي ترجيح واري فائل ۾ محفوظ ڪيو ويندو.

درخواست جي جواب ۾، سرور ايپليڪيشن کي حڪم موڪلي ٿو. اهو نوٽ ڪرڻ جي قابل آهي ته حڪم ۽ پيرا ميٽرز JSON فارميٽ ۾ پيش ڪيا ويا آهن. ايپليڪيشن ھيٺ ڏنل حڪمن تي عمل ڪري سگھي ٿي:

ٽيم بيان
اڳتي شروع متاثر ٿيل ڊيوائس پاران مليل SMS پيغام CnC سرور ڏانهن موڪلڻ شروع ڪريو.
فارورڊ اسٽاپ سي اين سي سرور ڏانهن متاثر ٿيل ڊوائيس پاران وصول ڪيل ايس ايم ايس پيغام موڪلڻ بند ڪريو.
ussdRun يو ايس ايس ڊي جي درخواست تي عمل ڪريو. نمبر جنهن تي توهان کي يو ايس ايس ڊي جي درخواست ڪرڻ جي ضرورت آهي JSON فيلڊ ۾ واقع آهي "نمبر".
ايس ايم ايس موڪليو ھڪڙو ايس ايم ايس پيغام موڪليو (جيڪڏھن ضروري ھجي، پيغام "ورهايل" حصن ۾ آھي). هڪ پيٽرولر جي طور تي، حڪم هڪ JSON اعتراض کڻندو آهي جنهن ۾ فيلڊ شامل آهن "to" - منزل نمبر ۽ "body" - پيغام جو جسم.
SmsAb موڪليو ايس ايم ايس پيغام موڪليو (جيڪڏهن ضروري هجي، پيغام "ورهايل" حصن ۾) هر ڪنهن کي متاثر ٿيل ڊوائيس جي رابطي جي فهرست ۾. پيغام موڪلڻ جي وچ ۾ وقفو 10 سيڪنڊ آهي. پيغام جو جسم JSON فيلڊ ۾ آهي "جسم"
sendSmsMass ايس ايم ايس پيغام موڪليو (جيڪڏهن ضروري هجي، پيغام "ورهايل" حصن ۾) ڪمانڊ پيٽرولر ۾ بيان ڪيل رابطن ڏانهن. پيغام موڪلڻ جي وچ ۾ وقفو 10 سيڪنڊ آهي. هڪ پيراميٽر جي طور تي، حڪم JSON صف ("sms" فيلڊ) وٺندو آهي، جنهن جا عناصر شامل آهن "to" - منزل نمبر ۽ "body" - پيغام جو جسم.
تبديلي سرور ھي ڪمانڊ ڪيئي ”url“ سان ھڪ قدر وٺي سگھي ٿو ھڪڙي پيٽرولر جي طور تي- پوءِ بوٽ تبديل ڪندو nameGenerator (“SERVER_URL”) جي قدر، يا “array”- پوءِ بوٽ صف کي لکندو nameGenerator (“API_SERVER_LIST”) اهڙيء طرح، ايپليڪيشن CnC سرورز جو پتو تبديل ڪري ٿو.
منتظم نمبر حڪم هڪ روٽ نمبر سان ڪم ڪرڻ لاء ٺهيل آهي. حڪم ھيٺ ڏنل پيٽرولن سان JSON اعتراض قبول ڪري ٿو: "نمبر" - نالو تبديل ڪريو جنريٽر ("ROOT_NUMBER") حاصل ڪيل قدر ۾، "ٻيهر موڪليو" - نالو تبديل ڪريو ("SMS_ROOT_NUMBER_RESEND") "sendId" - nameGenerator ڏانھن موڪليو ("ROOT_NUMBER" منفرد ID.
تازه ڪاري ڄاڻ سرور ڏانهن متاثر ٿيل ڊوائيس بابت معلومات موڪليو.
ڊيٽا صاف ڪريو حڪم استعمال ڪندڙ ڊيٽا کي ختم ڪرڻ جو مقصد آهي. ان تي منحصر ڪري ٿو ته ايپليڪيشن ڪهڙي نالي سان شروع ڪئي وئي هئي، يا ته ڊيٽا مڪمل طور تي ڊيوائس ريبوٽ (پرائمري استعمال ڪندڙ) سان ختم ٿي ويندي آهي، يا صرف صارف ڊيٽا کي ختم ڪيو ويندو آهي (ثانوي صارف).
جراب جي شروعات پراکسي ماڊل لانچ ڪريو. ماڊل جي آپريشن هڪ الڳ حصي ۾ بيان ڪيو ويو آهي.
جراب اسٽاپ پراکسي ماڊل کي روڪيو.
کليل لنڪ لنڪ جي تابعداري ڪريو. لنڪ "url" جي هيٺان JSON پيٽرولر ۾ واقع آهي. "android.intent.action.VIEW" لنڪ کولڻ لاءِ استعمال ڪيو ويندو آهي.
اپلوڊ سڀ ايس ايم ايس ڊيوائس پاران مليل سڀ ايس ايم ايس پيغام سرور ڏانهن موڪليو.
اپلوڊ سڀ تصويرون هڪ متاثر ٿيل ڊوائيس کان تصويرون URL ڏانهن موڪليو. URL هڪ پيٽرولر طور اچي ٿو.
uploadFile هڪ متاثر ٿيل ڊوائيس کان URL ڏانهن هڪ فائل موڪليو. URL هڪ پيٽرولر طور اچي ٿو.
اپلوڊ فون نمبر توهان جي رابطي جي فهرست مان فون نمبر موڪليو سرور ڏانهن. جيڪڏهن هڪ JSON آبجیکٹ جي قدر سان ڪيئي “ab” هڪ پيراميٽر جي طور تي ملي ٿي، ايپليڪيشن فون بڪ مان رابطن جي فهرست وصول ڪري ٿي. جيڪڏهن هڪ JSON اعتراض سان گڏ اهم "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%>}
                   ]
                   },
        },
}

تحقيق جي تحت فائل پاران ٺاهيل نوٽيفڪيشن فيلڊ ۾ بيان ڪيل ايپليڪيشن پاران ٺاهيل اطلاعن سان هڪجهڙائي رکي ٿي ائپ. جيڪڏهن فيلڊ جي قيمت اوپن ايپ - سچ، جڏهن هڪ نوٽيفڪيشن کوليو ويندو آهي، فيلڊ ۾ بيان ڪيل ايپليڪيشن شروع ڪئي وئي آهي ائپ. جيڪڏهن فيلڊ جي قيمت اوپن ايپ - ڪوڙ، پوء:

  • هڪ فشنگ ونڊو کلي ٿو، جنهن جو مواد ڊاريڪٽري مان ڊائون لوڊ ڪيو ويو آهي <%بيروني اسٽوريج%>/hgps/<%filename%>
  • هڪ فشنگ ونڊو کلي ٿو، جنهن جو مواد سرور تان ڊائون لوڊ ڪيو ويو آهي <%url%>?id=<%Bot id%>&app=<%Application name%>
  • هڪ فشنگ ونڊو کلي ٿي، گوگل پلي ڪارڊ جي روپ ۾، ڪارڊ جا تفصيل داخل ڪرڻ جي موقعي سان.

اپليڪيشن ڪنهن به حڪم جو نتيجو موڪلي ٿو <%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 ڪلاس استعمال ڪندي معلومات حاصل ڪري ٿي.
  • پنهنجا - منتظم جي حقن جي درخواست.
  • دير سان - "ڊيٽا" ڪيچ لاءِ پيراميٽر ۾ بيان ڪيل مليس سيڪنڊن جي تعداد لاءِ ايڪشن سروس کي معطل ڪريو.
  • Windows - استعمال ڪندڙ کي ڏسڻ ۾ ايندڙ ونڊوز جي هڪ فهرست موڪليو.
  • انسٽال ڪريو - متاثر ٿيل ڊوائيس تي ايپليڪيشن کي انسٽال ڪريو. آرڪائيو پئڪيج جو نالو "فائل جو نالو" ڪيچ ۾ آهي. آرڪائيو خود ڊائون لوڊ ڊاريڪٽري ۾ واقع آهي.
  • عالمي - ذيلي ڪمانڊ جو مقصد موجوده ونڊو مان نيويگيٽ ڪرڻ آهي:
    • تڪڙي سيٽنگون مينيو تي
    • پوئتي
    • گھر
    • اطلاعن ڏانهن
    • تازو کليل ايپليڪيشن ونڊو ڏانهن

  • لانچ - ايپليڪيشن لانچ ڪريو. ايپليڪيشن جو نالو اچي ٿو هڪ پيٽرولر جي طور تي ڪي ڊيٽا.
  • آواز - آواز موڊ کي خاموش ڪرڻ لاء تبديل ڪريو.
  • ان لاڪ - اسڪرين ۽ ڪيبورڊ جي پٺڀرائي کي مڪمل روشني ڏانهن ڦيرايو. ايپليڪيشن هي عمل WakeLock استعمال ڪندي ڪري ٿي، اسٽرنگ جي وضاحت ڪندي [Application lable]:INFO بطور ٽيگ
  • اجازت اوورلي - فنڪشن تي عمل نه ڪيو ويو آهي (ڪمانڊ تي عمل ڪرڻ جو جواب آهي {"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 تي

  • کليل - هڪ فشنگ ونڊو ڏيکاري. سرور مان اچڻ واري پيٽرولر تي منحصر ڪري، ايپليڪيشن شايد هيٺ ڏنل فشنگ ونڊوز ڏيکاري ٿي:
    • ھڪڙي فشنگ ونڊو ڏيکاريو جنھن جا مواد ڊاريڪٽري ۾ ھڪڙي فائل ۾ لکيل آھن <%external Directory%>/hgps/<%param_filename%>. ونڊو سان صارف جي رابطي جو نتيجو موڪليو ويندو <%CnC%>/records.php
    • هڪ فشنگ ونڊو ڏيکاريو جنهن جو مواد ايڊريس کان اڳ لوڊ ٿيل آهي <%url_param%>?id=<%bot_id%>&app=<%packagename%>. ونڊو سان صارف جي رابطي جو نتيجو موڪليو ويندو <%CnC%>/records.php
    • ڏيکاريو فشنگ ونڊو Google Play Card جي روپ ۾.

  • وچڙ - حڪم AcessibilityService استعمال ڪندي ٻين ايپليڪيشنن جي ونڊو عناصر سان لهه وچڙ ڪرڻ لاءِ ٺهيل آهي. پروگرام ۾ رابطي لاء هڪ خاص خدمت لاڳو ڪئي وئي آهي. تحقيق هيٺ ايپليڪيشن ونڊوز سان رابطو ڪري سگهي ٿي:
    • في الحال فعال. انهي حالت ۾، پيٽرولر ۾ اعتراض جي id يا متن (نالو) شامل آهي جنهن سان توهان کي رابطو ڪرڻ جي ضرورت آهي.
    • استعمال ڪندڙ کي ڏسڻ ۾ اچي ٿو وقت تي حڪم جاري ڪيو ويو آهي. ايپليڪيشن id ذريعي ونڊوز کي چونڊيندو آهي.

    حاصل ڪيل شيون AccessibilityNodeInfo دلچسپي جي ونڊو عناصر لاء، ايپليڪيشن، پيٽرولر تي منحصر ڪري، هيٺيان ڪارناما انجام ڏئي سگھن ٿا:

    • ڌيان - اعتراض ڏانهن ڌيان ڏيڻ.
    • ڪلڪ ڪريو - هڪ اعتراض تي ڪلڪ ڪريو.
    • ايڪشن آئي ڊي - هڪ عمل کي ID ذريعي انجام ڏيو.
    • setText - ڪنهن شئي جو متن تبديل ڪريو. متن کي تبديل ڪرڻ ٻن طريقن سان ممڪن آهي: هڪ عمل ڪريو ACTION_SET_TEXT (جيڪڏهن متاثر ٿيل ڊوائيس جو Android ورزن ان کان ننڍو يا ان جي برابر آهي ايلولوپ)، يا ڪلپ بورڊ تي اسٽرنگ رکڻ ۽ ان کي ڪنهن شئي ۾ پيسٽ ڪرڻ سان (پراڻن ورزن لاءِ). هي حڪم بينڪنگ ايپليڪيشن ۾ ڊيٽا کي تبديل ڪرڻ لاء استعمال ڪري سگهجي ٿو.

2. PARAMS_ACTIONS - ساڳي طرح PARAMS_ACTION، صرف حڪمن جو هڪ JSON صف اچي ٿو.

اهو لڳي ٿو ته ڪيترن ئي ماڻهن ۾ دلچسپي هوندي ته ڪنهن ٻئي ايپليڪيشن جي ونڊو عناصر سان لهه وچڙ جو ڪم ڪهڙو نظر اچي ٿو. اهو ڪيئن آهي هن ڪارڪردگي کي Gustuff ۾ لاڳو ڪيو ويو آهي:

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;
}

اهڙيء طرح، ڪنٽرول سرور جي صحيح ترتيب سان، Gustuff بينڪنگ ايپليڪيشن ۾ ٽيڪسٽ فيلڊ ڀرڻ جي قابل آهي ۽ ٽرانزيڪشن کي مڪمل ڪرڻ لاء ضروري بٽڻ تي ڪلڪ ڪريو. ٽروجن کي ايپليڪيشن ۾ لاگ ان ٿيڻ جي به ضرورت نه آهي- اهو ڪافي آهي هڪ حڪم موڪلڻ لاءِ هڪ PUSH نوٽيفڪيشن ڊسپلي ڪرڻ ۽ پوءِ اڳ ۾ نصب ٿيل بينڪنگ ايپليڪيشن کي کوليو. صارف پاڻ کي تصديق ڪندو، جنهن کان پوء گسٽف ڪار کي ڀرڻ جي قابل هوندو.

ايس ايم ايس پيغام پروسيسنگ ماڊل

ايپليڪيشن ايس ايم ايس پيغامن کي قبول ڪرڻ لاءِ متاثر ٿيل ڊوائيس لاءِ ايونٽ هينڊلر انسٽال ڪري ٿي. مطالعي هيٺ ايپليڪيشن آپريٽر کان حڪم حاصل ڪري سگهي ٿي، جيڪي ايس ايم ايس پيغام جي جسم ۾ اچن ٿيون. حڪم فارميٽ ۾ اچن ٿا:

7!5=<%Base64 encoded command%>

ايپليڪيشن سڀني ايندڙ ايس ايم ايس پيغامن ۾ اسٽرنگ جي ڳولا ڪري ٿي 7!5=، جڏهن هڪ اسٽرنگ معلوم ٿئي ٿو، اهو اسٽرنگ کي بيس 64 کان آفسٽ 4 تي ڊيڪوڊ ڪري ٿو ۽ ڪمانڊ تي عمل ڪري ٿو. ڪمانڊ سي اين سي سان ملندڙ جلندڙ آھن. عمل جو نتيجو ساڳيو نمبر ڏانهن موڪليو ويو آهي جتان حڪم آيو هو. جواب فارميٽ:

7*5=<%Base64 encode of “result_code command”%>

اختياري طور تي، ايپليڪيشن روٽ نمبر تي سڀئي وصول ڪيل پيغام موڪلي سگھن ٿا. هن کي ڪرڻ لاء، روٽ نمبر کي ترجيح فائل ۾ بيان ڪيو وڃي ۽ پيغام ريڊائريشن پرچم مقرر ڪيو وڃي. هڪ ايس ايم ايس پيغام حملي ڪندڙ جي نمبر تي فارميٽ ۾ موڪليو ويو آهي:

<%مان نمبر%> - <%وقت، فارميٽ: dd/MM/yyyy HH:mm:ss%> <%SMS body%>

پڻ، اختياري طور تي، ايپليڪيشن موڪلي سگھي ٿي CnC ڏانهن پيغام. ايس ايم ايس پيغام JSON فارميٽ ۾ سرور ڏانهن موڪليو ويو آهي:

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

جيڪڏھن جھنڊو ٺھيل آھي نالو پيدا ڪندڙ ("DEFAULT_APP_SMS") - ايپليڪيشن ايس ايم ايس پيغام کي پروسيس ڪرڻ بند ڪري ٿي ۽ ايندڙ پيغامن جي لسٽ کي صاف ڪري ٿي.

پراکسي ماڊل

مطالعي هيٺ ڏنل ايپليڪيشن ۾ هڪ Backconnect Proxy module شامل آهي (جنهن کي پوءِ پراکسي ماڊل چيو ويندو آهي)، جنهن ۾ هڪ الڳ ڪلاس آهي جنهن ۾ جامد فيلڊز شامل آهن ترتيب سان. ترتيب واري ڊيٽا نموني ۾ محفوظ ٿيل آهي واضح شڪل ۾:

ڪيئن Android Trojan Gustuff توهان جي اڪائونٽن مان ڪريم (fiat ۽ crypto) اسڪيم

پراکسي ماڊل پاران ڪيل سڀئي عمل فائلن ۾ لاگ ان ٿيل آهن. هن کي ڪرڻ لاء، ايپليڪيشن خارجي اسٽوريج ۾ هڪ ڊاريڪٽري ٺاهي ٿي جنهن کي "logs" سڏيو ويندو آهي (ProxyConfigClass.logsDir فيلڊ ترتيب واري طبقي ۾)، جنهن ۾ لاگ فائلون ذخيرو ٿيل آهن. لاگنگ نالن سان فائلن ۾ ٿئي ٿي:

  1. main.txt - ڪمانڊ سرور نالي ڪلاس جو ڪم هن فائل ۾ لاگ ان ٿيل آهي. هيٺين ۾، اسٽرنگ str کي هن فائل ۾ لاگ ان ڪيو ويندو mainLog(str) طور.
  2. سيشن-<%id%>.txt - هي فائل محفوظ ڪري ٿو لاگ ڊيٽا کي هڪ مخصوص پراکسي سيشن سان لاڳاپيل. انهي جي پٺيان، هن فائل ۾ اسٽرنگ str کي لاگ ان ٿيڻ سان سيشن لاگ (str) طور ظاهر ڪيو ويندو.
  3. server.txt - ھي فائل استعمال ڪيو ويندو آھي لاگ ان ڪرڻ لاءِ سڀني ڊيٽا کي جيڪو مٿي بيان ڪيل فائلن تي لکيل آھي.

لاگ ڊيٽا فارميٽ:

%تاريخ %>

استثنا جيڪي پراکسي ماڊل جي آپريشن دوران ٿينديون آهن پڻ فائل ۾ لاگ ان ٿيل آهن. هن کي ڪرڻ لاء، ايپليڪيشن هيٺ ڏنل شڪل ۾ 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":
            }
        ]
}

ان کان پوء اهو ان کي هڪ اسٽرنگ نمائندگي ۾ تبديل ڪري ٿو ۽ ان کي لاگ ان ڪري ٿو.

پراکسي ماڊل شروع ڪيو ويو آهي لاڳاپيل حڪم حاصل ڪرڻ کان پوء. جڏهن Proxy module کي لانچ ڪرڻ جو حڪم ملي ٿو، ته ايپليڪيشن هڪ سروس شروع ڪري ٿي جنهن کي سڏيو ويندو آهي مکيه خدمت، جيڪو پراکسي ماڊل جي آپريشن کي منظم ڪرڻ جو ذميوار آهي - ان کي شروع ڪرڻ ۽ بند ڪرڻ.

خدمت شروع ڪرڻ جا مرحلا:

1. هڪ ٽائمر شروع ٿئي ٿو جيڪو هڪ منٽ ۾ هڪ ڀيرو هلندو آهي ۽ پراکسي ماڊل جي سرگرمي کي چيڪ ڪري ٿو. جيڪڏهن ماڊل فعال نه آهي، اهو ان کي شروع ڪري ٿو.
اهو پڻ جڏهن واقعي جي شروعات ڪئي وئي آهي android.net.conn.CONNECTIVITY_CHANGE پراکسي ماڊل شروع ڪيو ويو آهي.

2. ائپليڪيشن پيراميٽر سان گڏ هڪ جاڳندڙ تالا ٺاهي ٿو PARTIAL_WAKE_LOCK ۽ کيس پڪڙي ٿو. هي ڊوائيس سي پي يو کي ننڊ موڊ ۾ وڃڻ کان روڪي ٿو.

3. پراکسي ماڊل جي ڪمانڊ پروسيسنگ ڪلاس کي شروع ڪري ٿو، پهريون لاگ ان لائن مين لاگ ("شروع سرور") и

سرور::start() host[<%proxy_cnc%>], commandPort[<%command_port%>], proxyPort[<%proxy_port%>]

جتي proxy_cnc، command_port ۽ proxy_port - پراکسي سرور جي ترتيب مان حاصل ڪيل پيراگراف.

ڪمانڊ پروسيسنگ ڪلاس سڏيو ويندو آهي ڪمانڊ ڪنيڪشن. فوري طور تي شروع ٿيڻ کان پوء، هيٺين عملن کي انجام ڏئي ٿو:

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" فيلڊ سان قدر حاصل ڪرڻ جي ڪوشش ڪري ٿو. جيڪڏهن هي قيمت حاصل نه ٿي سگهي، اهو هڪ نئون ٺاهي ٿو. اهڙيء طرح، Proxy ماڊل کي پنهنجي سڃاڻپ ڪندڙ آهي، جيڪو ساڳئي طرح Bot ID سان ٺاهيل آهي.
  • imei - ڊوائيس جو IMEI. جيڪڏهن قيمت حاصل ڪرڻ جي عمل دوران هڪ غلطي ٿي وئي، هڪ غلطي ٽيڪسٽ پيغام هن فيلڊ جي بدران لکيو ويندو.
  • imsi - ڊوائيس جي بين الاقوامي موبائل سبسڪرائبر جي سڃاڻپ. جيڪڏهن قيمت حاصل ڪرڻ جي عمل دوران هڪ غلطي ٿي وئي، هڪ غلطي ٽيڪسٽ پيغام هن فيلڊ جي بدران لکيو ويندو.
  • ماڊل - آخري پروڊڪٽ لاءِ آخري استعمال ڪندڙ جو نالو.
  • ٺاهيندڙ - پيداوار / هارڊويئر جو ٺاهيندڙ (Build.MANUFACTURER).
  • androidVersion - فارميٽ ۾ هڪ اسٽرنگ "<%release_version%> (<%os_version%>),<%sdk_version%>"
  • ملڪ - ڊوائيس جو موجوده مقام.
  • partnerId هڪ خالي اسٽرنگ آهي.
  • پيڪيج جو نالو - پيڪيج جو نالو.
  • نيٽ ورڪ ٽائيپ - موجوده نيٽ ورڪ ڪنيڪشن جو قسم (مثال: "وائي فائي"، "موبائل"). غلطي جي صورت ۾، واپسي null.
  • hasGsmSupport - صحيح - جيڪڏهن فون GSM کي سپورٽ ڪري ٿو، ٻي صورت ۾ غلط.
  • simReady - سم ڪارڊ اسٽيٽ.
  • simCountry - ISO ملڪ جو ڪوڊ (سِم ڪارڊ فراهم ڪندڙ تي ٻڌل).
  • نيٽ ورڪ آپريٽر - آپريٽر جو نالو. جيڪڏهن قيمت حاصل ڪرڻ جي عمل دوران هڪ غلطي ٿي وئي، هڪ غلطي ٽيڪسٽ پيغام هن فيلڊ جي بدران لکيو ويندو.
  • simOperator - خدمت فراهم ڪندڙ جو نالو (SPN). جيڪڏهن قيمت حاصل ڪرڻ جي عمل دوران هڪ غلطي ٿي وئي، هڪ غلطي ٽيڪسٽ پيغام هن فيلڊ جي بدران لکيو ويندو.
  • نسخو - ھي فيلڊ config ڪلاس ۾ ذخيرو ٿيل آھي؛ بوٽ جي آزمائشي ورزن لاء اھو "1.6" جي برابر ھو.

5. سرور کان حڪمن جي انتظار جي موڊ ۾ تبديل ڪري ٿو. سرور کان حڪم فارميٽ ۾ اچن ٿا:

  • 0 آفسيٽ - حڪم
  • 1 آفسيٽ - سيشن آئي ڊي
  • 2 آفسٽ - ڊگھائي
  • 4 آفسٽ - ڊيٽا

جڏهن هڪ حڪم اچي ٿو، ايپليڪيشن لاگ ان:
mainLog("هيڊر { sessionId<%id%>]، قسم[<%command%>]، ڊگھائي[<%length%>] }")

سرور کان هيٺيون حڪم ممڪن آهن:

نالو حڪم ڊيٽا وضاحت
ڪنيڪشن آئي ڊي 0 ڪنيڪشن ID نئون ڪنيڪشن ٺاهيو
SLEEP 3 وقت پراکسي ماڊل کي روڪيو
PING_PONG 4 - PONG پيغام موڪليو

هڪ PONG پيغام 4 بائيٽ تي مشتمل آهي ۽ هن وانگر ڏسڻ ۾ اچي ٿو: 0x04000000.

جڏهن ڪنيڪشن آئي ڊي حڪم ملي ٿو (نئون ڪنيڪشن ٺاهڻ لاءِ) ڪمانڊ ڪنيڪشن ڪلاس جو هڪ مثال ٺاهي ٿو ProxyConnection.

  • ٻه طبقا پراکسينگ ۾ حصو وٺندا آهن: ProxyConnection и آخر. جڏهن هڪ ڪلاس ٺاهي ProxyConnection ايڊريس سان ڳنڍڻ ProxyConfigClass.host: ProxyConfigClass.proxyPort ۽ JSON اعتراض پاس ڪرڻ:

 {
    "id":<%connectionId%>
}

جواب ۾، سرور هڪ SOCKS5 پيغام موڪلي ٿو جنهن ۾ ريموٽ سرور جو پتو شامل آهي جنهن سان ڪنيڪشن قائم ٿيڻ گهرجي. هن سرور سان رابطو ڪلاس ذريعي ٿئي ٿو آخر. ڪنيڪشن سيٽ اپ کي schematically ظاھر ڪري سگهجي ٿو هن ريت:

ڪيئن Android Trojan Gustuff توهان جي اڪائونٽن مان ڪريم (fiat ۽ crypto) اسڪيم

نيٽ ورڪ رابطي

نيٽورڪ سنيفرز پاران ٽرئفڪ جي تجزيي کي روڪڻ لاء، سي اين سي سرور ۽ ايپليڪيشن جي وچ ۾ رابطي کي SSL پروٽوڪول استعمال ڪندي محفوظ ڪري سگهجي ٿو. سڀني منتقل ٿيل ڊيٽا ٻنهي کان ۽ سرور ڏانهن JSON فارميٽ ۾ پيش ڪئي وئي آهي. اپليڪيشن آپريشن دوران هيٺين درخواستن تي عمل ڪري ٿو:

  • http://<%CnC%>/api/v1/set_state.php - حڪم جي عمل جو نتيجو.
  • http://<%CnC%>/api/v1/get.php - حڪم حاصل ڪرڻ.
  • http://<%CnC%>/api/v1/load_sms.php - هڪ متاثر ٿيل ڊوائيس تان ايس ايم ايس پيغامن کي ڊائون لوڊ ڪرڻ.
  • 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 اپڊيٽ؛
  • ڊائون لوڊ ڪيل فائلن جي توسيع تي ڌيان ڏيو؛
  • مشڪوڪ وسيلن جو دورو نه ڪريو؛
  • ايس ايم ايس پيغامن ۾ حاصل ڪيل لنڪ تي ڪلڪ نه ڪريو.

ستارو سيميون روگاچيواگروپ-آئي بي ڪمپيوٽر فارنڪس ليبارٽري ۾ مالويئر ريسرچ ۾ جونيئر ماهر.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو