Android Trojan Gustuff ඔබගේ ගිණුම් වලින් ක්‍රීම් (fiat සහ crypto) ඉවත් කරන ආකාරය

Android Trojan Gustuff ඔබගේ ගිණුම් වලින් ක්‍රීම් (fiat සහ crypto) ඉවත් කරන ආකාරය

පසුගිය දිනක Group-IB දැනුවත් කළා ජංගම Android Trojan Gustuff හි ක්රියාකාරිත්වය ගැන. එය ජාත්‍යන්තර වෙලඳපොලවල පමණක් ක්‍රියා කරයි, විශාලතම විදේශීය බැංකු 100 ක ගනුදෙනුකරුවන්ට, ජංගම 32 ක්‍රිප්ටෝ පසුම්බි භාවිතා කරන්නන්ට මෙන්ම විශාල ඊ-වාණිජ්‍ය සම්පත් වලට පහර දෙයි. නමුත් Gustuff හි සංවර්ධකයා Bestoffer යන අන්වර්ථ නාමය යටතේ රුසියානු භාෂාව කතා කරන සයිබර් අපරාධකරුවෙකි. මෑතක් වන තුරුම ඔහු තම ට්‍රෝජන් ප්‍රශංසා කළේ “දැනුම සහ අත්දැකීම් ඇති පුද්ගලයන් සඳහා බැරෑරුම් නිෂ්පාදනයක්” ලෙසයි.

Group-IB හි අනිෂ්ට කේත විශ්ලේෂණ විශේෂඥයා අයිවන් පිසරෙව් ඔහුගේ පර්යේෂණයේදී ඔහු Gustuff ක්‍රියා කරන ආකාරය සහ එහි අන්තරායන් මොනවාද යන්න පිළිබඳව විස්තරාත්මකව කතා කරයි.

Gustuff දඩයම් කරන්නේ කාටද?

Gustuff සම්පූර්ණයෙන්ම ස්වයංක්‍රීය ක්‍රියාකාරකම් සහිත නව පරම්පරාවේ අනිෂ්ට මෘදුකාංගයකට අයත් වේ. සංවර්ධකයාට අනුව, ට්‍රෝජන් AndyBot අනිෂ්ට මෘදුකාංගයේ නව සහ වැඩිදියුණු කළ අනුවාදයක් බවට පත්ව ඇති අතර, එය 2017 නොවැම්බර් මාසයේ සිට ඇන්ඩ්‍රොයිඩ් දුරකථන වලට පහර දී ප්‍රසිද්ධ ජාත්‍යන්තර බැංකු සහ ගෙවීම් පද්ධතිවල ජංගම යෙදුම් ලෙස වෙස්වලාගත් තතුබෑම් වෙබ් පෝරම හරහා මුදල් සොරකම් කරයි. Bestoffer වාර්තා කළේ Gustuff Bot කුලී මිල මසකට ඩොලර් 800 ක් බවයි.

Gustuff නියැදි විශ්ලේෂණයෙන් පෙන්නුම් කළේ, ට්‍රෝජන් විසින් Bank of America, Bank of Scotland, JPMorgan, Wells Fargo, Capital One, TD Bank, PNC Bank, මෙන්ම crypto wallets වැනි විශාලතම බැංකු වල ජංගම යෙදුම් භාවිතා කරන ගනුදෙනුකරුවන් ඉලක්ක කර ගැනීමට හැකියාව ඇති බවයි. Bitcoin Wallet, BitPay, Cryptopay, Coinbase, ආදිය.

මුලින් සම්භාව්‍ය බැංකු ට්‍රෝජන් ලෙස නිර්මාණය කරන ලද, වත්මන් අනුවාදයේ Gustuff ප්‍රහාරය සඳහා විභව ඉලක්ක ලැයිස්තුව සැලකිය යුතු ලෙස පුළුල් කර ඇත. බැංකු, ෆින්ටෙක් සමාගම් සහ ක්‍රිප්ටෝ සේවා සඳහා ඇන්ඩ්‍රොයිඩ් යෙදුම් වලට අමතරව, ගූස්ටෆ් වෙළඳපොළ යෙදුම්, මාර්ගගත වෙළඳසැල්, ගෙවීම් පද්ධති සහ ක්ෂණික පණිවිඩකරුවන් භාවිතා කරන්නන් ඉලක්ක කර ඇත. විශේෂයෙන්, PayPal, Western Union, eBay, Walmart, Skype, WhatsApp, Gett Taxi, Revolut සහ වෙනත් අය.

ඇතුල්වීමේ ස්ථානය: මහා ආසාදනය සඳහා ගණනය කිරීම

APK වෙත සබැඳි සහිත SMS තැපැල් හරහා ඇන්ඩ්‍රොයිඩ් ස්මාර්ට්ෆෝන් වෙත විනිවිද යාමේ “සම්භාව්‍ය” දෛශිකය මගින් Gustuff සංලක්ෂිත වේ. සේවාදායකයේ විධානය මත ඇන්ඩ්‍රොයිඩ් උපාංගයක් ට්‍රෝජන් ආසාදනය වූ විට, ආසාදිත දුරකථනයේ සම්බන්ධතා දත්ත ගබඩාව හරහා හෝ සේවාදායක දත්ත ගබඩාව හරහා Gustuff තවදුරටත් පැතිර යා හැක. Gustuff හි ක්‍රියාකාරීත්වය සැලසුම් කර ඇත්තේ මහා ආසාදනය සහ එහි ක්‍රියාකරුවන්ගේ ව්‍යාපාරයේ උපරිම ප්‍රාග්ධනීකරණය සඳහා ය - එයට නීත්‍යානුකූල ජංගම බැංකු යෙදුම් සහ ක්‍රිප්ටෝ පසුම්බි බවට අද්විතීය “ස්වයං පිරවුම්” ශ්‍රිතයක් ඇත, එමඟින් මුදල් සොරකම වේගවත් කිරීමට සහ පරිමාණය කිරීමට ඔබට ඉඩ සලසයි.

ට්‍රෝජන් පිළිබඳ අධ්‍යයනයකින් පෙන්නුම් කළේ ආබාධ සහිත පුද්ගලයින් සඳහා වන සේවාවක් වන ප්‍රවේශ්‍යතා සේවාව භාවිතයෙන් ස්වයංක්‍රීය පිරවුම් කාර්යය එහි ක්‍රියාත්මක කර ඇති බවයි. මෙම ඇන්ඩ්‍රොයිඩ් සේවාව භාවිතා කරන වෙනත් යෙදුම්වල කවුළු මූලද්‍රව්‍ය සමඟ අන්තර්ක්‍රියා කිරීමට එරෙහිව ආරක්ෂාව සාර්ථකව මඟ හරින පළමු ට්‍රෝජන් ගස්ටෆ් නොවේ. කෙසේ වෙතත්, මෝටර් රථ පිරවුමක් සමඟ ඒකාබද්ධව ප්‍රවේශ්‍යතා සේවාව භාවිතා කිරීම තවමත් තරමක් දුර්ලභ ය.

වින්දිතයාගේ දුරකථනයට බාගත කිරීමෙන් පසු, ප්‍රවේශ්‍යතා සේවාව භාවිතයෙන් Gustuff හට වෙනත් යෙදුම්වල (බැංකු, ගුප්තකේතන මුදල්, මෙන්ම මාර්ගගත සාප්පු සවාරි සඳහා යෙදුම්, පණිවිඩ යැවීම, ආදිය) කවුළු අංග සමඟ අන්තර් ක්‍රියා කිරීමට හැකි වේ, ප්‍රහාරකයන්ට අවශ්‍ය ක්‍රියා සිදු කරයි. . උදාහරණයක් ලෙස, සේවාදායකයේ අණ පරිදි, ට්‍රෝජන් හට බොත්තම් එබීමෙන් සහ බැංකු යෙදුම්වල පෙළ ක්ෂේත්‍රවල අගයන් වෙනස් කළ හැකිය. ප්‍රවේශ්‍යතා සේවා යාන්ත්‍රණය භාවිතයෙන් ට්‍රෝජන් හට පෙර පරම්පරාවේ ජංගම ට්‍රෝජන් වලට ප්‍රතිරෝධය දැක්වීමට බැංකු විසින් භාවිතා කරන ආරක්‍ෂක යාන්ත්‍රණයන් මග හැරීමට ඉඩ සලසයි, එසේම Android OS හි නව අනුවාද වල Google විසින් ක්‍රියාත්මක කරන ලද ආරක්ෂක ප්‍රතිපත්ති වෙනස් කරයි. මේ අනුව, Google Protect ආරක්ෂාව අක්රිය කරන්නේ කෙසේදැයි Gustuff "දනී": කතුවරයාට අනුව, මෙම කාර්යය 70% ක් තුළ ක්රියා කරයි.

Android Trojan Gustuff ඔබගේ ගිණුම් වලින් ක්‍රීම් (fiat සහ crypto) ඉවත් කරන ආකාරය

Gustuff හට නීත්‍යානුකූල ජංගම යෙදුම්වල අයිකන සහිත ව්‍යාජ PUSH දැනුම්දීම් ද පෙන්විය හැක. පරිශීලකයා PUSH දැනුම්දීම මත ක්ලික් කර සේවාදායකයෙන් බාගත කර ඇති තතුබෑම් කවුළුවක් දකියි, එහිදී ඔහු ඉල්ලූ බැංකු කාඩ්පත හෝ ක්‍රිප්ටෝ පසුම්බි දත්ත ඇතුළත් කරයි. වෙනත් Gustuff දර්ශනයකදී, PUSH දැනුම්දීම දර්ශනය වූ යෙදුම විවෘත වේ. මෙම අවස්ථාවෙහිදී, අනිෂ්ට මෘදුකාංග, ප්‍රවේශ්‍යතා සේවාව හරහා සේවාදායකයෙන් විධානය මත, වංචනික ගනුදෙනුවක් සඳහා බැංකු අයදුම්පත්‍රයක පෝරම ක්ෂේත්‍ර පිරවිය හැක.

Gustuff හි ක්‍රියාකාරීත්වයට ආසාදිත උපාංගයක් පිළිබඳ තොරතුරු සේවාදායකයට යැවීම, SMS පණිවිඩ කියවීමේ/ යැවීමේ හැකියාව, USSD ඉල්ලීම් යැවීම, SOCKS5 Proxy දියත් කිරීම, සබැඳියක් අනුගමනය කිරීම, ගොනු යැවීම (ලේඛනවල ඡායාරූප ස්කෑන්, තිරපිටපත්, ඡායාරූප ඇතුළුව) ඇතුළත් වේ. සේවාදායකය , උපාංගය කර්මාන්තශාලා සැකසුම් වෙත නැවත සකසන්න.

අනිෂ්ට මෘදුකාංග විශ්ලේෂණය

අනිෂ්ට යෙදුමක් ස්ථාපනය කිරීමට පෙර, ඇන්ඩ්‍රොයිඩ් මෙහෙයුම් පද්ධතිය ගස්ටෆ් විසින් ඉල්ලා සිටින අයිතිවාසිකම් ලැයිස්තුවක් අඩංගු කවුළුවක් පරිශීලකයාට පෙන්වයි:

Android Trojan Gustuff ඔබගේ ගිණුම් වලින් ක්‍රීම් (fiat සහ crypto) ඉවත් කරන ආකාරය
යෙදුම ස්ථාපනය කරනු ලබන්නේ පරිශීලකයාගේ කැමැත්ත ලැබීමෙන් පසුව පමණි. යෙදුම දියත් කිරීමෙන් පසු, ට්‍රෝජන් පරිශීලකයාට කවුළුවක් පෙන්වයි:

Android Trojan Gustuff ඔබගේ ගිණුම් වලින් ක්‍රීම් (fiat සහ crypto) ඉවත් කරන ආකාරය
ඉන්පසු එය එහි නිරූපකය ඉවත් කරනු ඇත.

කතුවරයාට අනුව FTT ​​වෙතින් ඇසුරුම්කරුවෙකු විසින් Gustuff ඇසුරුම් කර ඇත. ආරම්භයෙන් පසුව, යෙදුම වරින් වර 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) 

පහත දැක්වෙන දෙයෙහි අපි එය ලෙස දක්වන්නෙමු nameGenerator(ආදාන).
එබැවින් පළමු ගොනු නාමය වන්නේ: nameGenerator("API_SERVER_LIST"), එය පහත නම් සහිත අගයන් අඩංගු වේ:

විචල්ය නාමය අගය
nameGenerator("API_SERVER_LIST") අරාවක ආකාරයෙන් CnC ලිපින ලැයිස්තුවක් අඩංගු වේ.
nameGenerator("API_SERVER_URL") CnC ලිපිනය අඩංගු වේ.
nameGenerator("SMS_UPLOAD") ධජය පෙරනිමියෙන් සකසා ඇත. ධජය සකසා ඇත්නම්, CnC වෙත SMS පණිවිඩ යවයි.
nameGenerator("SMS_ROOT_NUMBER") ආසාදිත උපාංගයට ලැබෙන SMS පණිවිඩ යවනු ලබන දුරකථන අංකය. පෙරනිමිය ශුන්‍ය වේ.
nameGenerator("SMS_ROOT_NUMBER_RESEND") ධජය පෙරනිමියෙන් ඉවත් කර ඇත. ස්ථාපනය කර ඇත්නම්, ආසාදිත උපාංගයකට කෙටි පණිවුඩයක් ලැබුණු විට, එය මූල අංකයට යවනු ලැබේ.
nameGenerator("DEFAULT_APP_SMS") ධජය පෙරනිමියෙන් ඉවත් කර ඇත. මෙම ධජය සකසා ඇත්නම්, යෙදුම පැමිණෙන SMS පණිවිඩ සකසනු ඇත.
nameGenerator("DEFAULT_ADMIN") ධජය පෙරනිමියෙන් ඉවත් කර ඇත. ධජය සකසා ඇත්නම්, යෙදුමට පරිපාලක අයිතිවාසිකම් ඇත.
nameGenerator("DEFAULT_ACCESSIBILITY") ධජය පෙරනිමියෙන් ඉවත් කර ඇත. ධජය සකසා ඇත්නම්, ප්‍රවේශ්‍යතා සේවාව භාවිතා කරන සේවාවක් ක්‍රියාත්මක වේ.
nameGenerator("APPS_CONFIG") නිශ්චිත යෙදුමක් හා සම්බන්ධ ප්‍රවේශ්‍යතා සිදුවීමක් ක්‍රියාරම්භ කළ විට සිදු කළ යුතු ක්‍රියා ලැයිස්තුවක් අඩංගු JSON වස්තුවකි.
nameGenerator("APPS_INSTALLED") උපාංගයේ ස්ථාපනය කර ඇති යෙදුම් ලැයිස්තුවක් ගබඩා කරයි.
nameGenerator("IS_FIST_RUN") පළමු ආරම්භයේදී ධජය නැවත සකස් කර ඇත.
nameGenerator("UNIQUE_ID") අද්විතීය හඳුනාගැනීමක් අඩංගු වේ. බොට් එක පළමු වරට දියත් කරන විට උත්පාදනය වේ.

සේවාදායකයෙන් විධාන සැකසීම සඳහා මොඩියුලය

යෙදුම මඟින් කේතනය කරන ලද අරාවක ආකාරයෙන් CnC සේවාදායකයන්ගේ ලිපිනයන් ගබඩා කරයි පදනම 85 රේඛා සුදුසු විධානය ලැබීමෙන් පසු CnC සේවාදායකයන්ගේ ලැයිස්තුව වෙනස් කළ හැකිය, මෙම අවස්ථාවේදී ලිපින මනාප ගොනුවක ගබඩා කරනු ලැබේ.

ඉල්ලීමට ප්‍රතිචාර වශයෙන්, සේවාදායකයා යෙදුමට විධානයක් යවයි. විධාන සහ පරාමිති JSON ආකෘතියෙන් ඉදිරිපත් කර ඇති බව සඳහන් කිරීම වටී. යෙදුමට පහත විධානයන් සැකසීමට හැකිය:

කණ්ඩායම විස්තර
ඉදිරි ආරම්භය ආසාදිත උපාංගයට ලැබුණු SMS පණිවිඩ CnC සේවාදායකයට යැවීම ආරම්භ කරන්න.
ඉදිරියට නවත්වන්න ආසාදිත උපාංගයට ලැබෙන SMS පණිවිඩ CnC සේවාදායකයට යැවීම නවත්වන්න.
ussdRun USSD ඉල්ලීම ක්‍රියාත්මක කරන්න. ඔබට USSD ඉල්ලීමක් කිරීමට අවශ්‍ය අංකය JSON ක්ෂේත්‍රයේ “අංකය” තුළ පිහිටා ඇත.
SMS යවන්න එක් SMS පණිවිඩයක් යවන්න (අවශ්ය නම්, පණිවිඩය කොටස් වලට "බෙදී" ඇත). පරාමිතියක් ලෙස, විධානය "to" ක්ෂේත්‍ර අඩංගු JSON වස්තුවක් ගනී - ගමනාන්ත අංකය සහ "ශරීරය" - පණිවිඩයේ ශරීරය.
sendSmsAb ආසාදිත උපාංගයේ සම්බන්ධතා ලැයිස්තුවේ සිටින සෑම කෙනෙකුටම SMS පණිවිඩ යවන්න (අවශ්ය නම්, පණිවිඩය "කොටස් වලට බෙදනු ලැබේ"). පණිවිඩ යැවීම අතර පරතරය තත්පර 10 කි. පණිවිඩයේ අන්තර්ගතය JSON ක්ෂේත්‍රයේ "ශරීරය" ඇත
sendSmsMass විධාන පරාමිතිවල දක්වා ඇති සම්බන්ධතා වෙත SMS පණිවිඩ යවන්න (අවශ්ය නම්, පණිවිඩය "කොටස් වලට බෙදනු ලැබේ"). පණිවිඩ යැවීම අතර පරතරය තත්පර 10 කි. පරාමිතියක් ලෙස, විධානය JSON අරාවක් (“sms” ක්ෂේත්‍රය) ගනී, එහි මූලද්‍රව්‍යවල “to” ක්ෂේත්‍ර අඩංගු වේ - ගමනාන්ත අංකය සහ “ශරීරය” - පණිවිඩයේ ශරීරය.
වෙනස් සේවාදායකය මෙම විධානය "url" යතුර සමඟ පරාමිතියක් ලෙස අගයක් ගත හැක - එවිට බොට් විසින් nameGenerator ("SERVER_URL") හෝ "අරාව" හි අගය වෙනස් කරනු ඇත - එවිට බොට් විසින් අරාව nameGenerator වෙත ලියයි ("API_SERVER_LIST") මේ අනුව, යෙදුම CnC සේවාදායකයන්ගේ ලිපිනය වෙනස් කරයි.
පරිපාලක අංකය විධානය නිර්මාණය කර ඇත්තේ මූල අංකයක් සමඟ වැඩ කිරීමටය. විධානය පහත පරාමිතීන් සහිත JSON වස්තුවක් පිළිගනී: “අංකය” — nameGenerator(“ROOT_NUMBER”) ලැබුණු අගයට වෙනස් කරන්න, “නැවත යවන්න” — nameGenerator වෙනස් කරන්න(“SMS_ROOT_NUMBER_RESEND”), “sendId” — nameGenerator වෙත යවන්න(“ROOT_NUMBER” ) අද්විතීය හැඳුනුම්පත.
යාවත්කාලීන තොරතුරු ආසාදිත උපාංගය පිළිබඳ තොරතුරු සේවාදායකයට යවන්න.
දත්ත මකන්න විධානය පරිශීලක දත්ත මකා දැමීමට අදහස් කරයි. යෙදුම දියත් කරන ලද නම මත පදනම්ව, එක්කෝ උපාංගය නැවත ආරම්භ කිරීම (ප්‍රාථමික පරිශීලකයා) සමඟ දත්ත සම්පූර්ණයෙන්ම මකා දමනු ලැබේ, නැතහොත් පරිශීලක දත්ත පමණක් මකා දමනු ලැබේ (ද්විතියික පරිශීලක).
socksStart ප්‍රොක්සි මොඩියුලය දියත් කරන්න. මොඩියුලයේ ක්රියාකාරිත්වය වෙනම කොටසක විස්තර කෙරේ.
socksStop Proxy මොඩියුලය නවත්වන්න.
විවෘත ලින්ක් සබැඳිය අනුගමනය කරන්න. සබැඳිය "url" යතුර යටතේ JSON පරාමිතියෙහි පිහිටා ඇත. සබැඳිය විවෘත කිරීමට "android.intent.action.VIEW" භාවිතා කරයි.
uploadAllSms උපාංගයට ලැබුණු සියලුම SMS පණිවිඩ සේවාදායකයට යවන්න.
සියලුම ඡායාරූප උඩුගත කරන්න ආසාදිත උපාංගයකින් URL එකකට පින්තූර යවන්න. URL එක එන්නේ පරාමිතියක් විදියට.
උඩුගත ගොනුව ආසාදිත උපාංගයකින් URL එකකට ගොනුවක් යවන්න. URL එක එන්නේ පරාමිතියක් විදියට.
දුරකථන අංක උඩුගත කරන්න ඔබගේ සම්බන්ධතා ලැයිස්තුවෙන් දුරකථන අංක සේවාදායකයට යවන්න. "ab" යතුර සහිත JSON වස්තුවක අගයක් පරාමිතියක් ලෙස ලැබුනේ නම්, යෙදුමට දුරකථන පොතෙන් සම්බන්ධතා ලැයිස්තුවක් ලැබේ. "sms" යතුර සහිත JSON වස්තුවක් පරාමිතියක් ලෙස ලැබුනේ නම්, යෙදුම SMS පණිවිඩ යවන්නන්ගෙන් සම්බන්ධතා ලැයිස්තුව කියවයි.
සංරක්ෂිතය වෙනස් කරන්න යෙදුම "url" යතුර භාවිතයෙන් පරාමිතියක් ලෙස එන ලිපිනයෙන් ගොනුව බාගත කරයි. බාගත කළ ගොනුව "archive.zip" යන නාමයෙන් සුරැකේ. පසුව යෙදුම "b5jXh37gxgHBrZhQ4j3D" යන සංරක්ෂිත මුරපදය භාවිතා කරමින් ගොනුව විසන්ධි කරයි. සිප් නොකළ ගොනු [බාහිර ආචයනය]/hgps නාමාවලියෙහි සුරකිනු ලැබේ. මෙම නාමාවලිය තුළ, යෙදුම වෙබ් ව්යාජ (පහත විස්තර කර ඇත) ගබඩා කරයි.
ක්රියා විධානය වෙනම කොටසක විස්තර කර ඇති Action Service සමඟ වැඩ කිරීමට සැලසුම් කර ඇත.
ටෙස්ට් කිසිම දෙයක් කරන්නේ නැහැ.
බාගත මෙම විධානය දුරස්ථ සේවාදායකයකින් ගොනුවක් බාගත කර එය "බාගැනීම්" නාමාවලිය වෙත සුරැකීමට අදහස් කෙරේ. URL සහ ගොනු නාමය පරාමිතියක් ලෙස පැමිණේ, JSON පරාමිති වස්තුවේ ක්ෂේත්‍ර, පිළිවෙලින්: "url" සහ "fileName".
ඉවත් "බාගැනීම්" නාමාවලියෙන් ගොනුවක් ඉවත් කරයි. ගොනු නාමය "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/<%filename%>
  • තතුබෑම් කවුළුවක් විවෘත වේ, එහි අන්තර්ගතය සේවාදායකයෙන් බාගත කර ඇත <%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 පරාමිතියෙන් Type යතුරේ අගය ලබා ගනී, එය පහත පරිදි විය හැකිය:

  • සේවා තොරතුරු - උප විධානය JSON පරාමිතියෙන් යතුරෙන් අගය ලබා ගනී ඇතුළත් වැදගත් නොවේ. ධජය සත්‍ය නම්, යෙදුම ධජය සකසයි FLAG_ISOLATED_PROCESS ප්‍රවේශ්‍යතා සේවාව භාවිතා කරන සේවාවකට. මේ ආකාරයෙන් සේවාව වෙනම ක්‍රියාවලියකින් දියත් කෙරේ.
  • මූල — දැනට අවධානය යොමු කර ඇති කවුළුව පිළිබඳ තොරතුරු ලබා ගැනීම සහ සේවාදායකය වෙත යැවීම. යෙදුම AccessibilityNodeInfo පන්තිය භාවිතයෙන් තොරතුරු ලබා ගනී.
  • පරිපාලක - පරිපාලක අයිතිවාසිකම් ඉල්ලන්න.
  • ප්රමාදයි — "දත්ත" යතුර සඳහා පරාමිතියෙහි දක්වා ඇති මිලි තත්පර ගණන සඳහා ActionService අත්හිටුවන්න.
  • කවුළු - පරිශීලකයාට පෙනෙන කවුළු ලැයිස්තුවක් යවන්න.
  • ස්ථාපනය කරන්න - ආසාදිත උපාංගයේ යෙදුම ස්ථාපනය කරන්න. සංරක්ෂිත පැකේජයේ නම "fileName" යතුරේ ඇත. සංරක්ෂිතය බාගැනීම් නාමාවලියෙහි පිහිටා ඇත.
  • ගෝලීය - උප විධානය වත්මන් කවුළුවෙන් සැරිසැරීමට අදහස් කරයි:
    • ඉක්මන් සැකසුම් මෙනුවෙහි
    • ආපසු
    • ගෙදර
    • දැනුම්දීම් වලට
    • මෑතකදී විවෘත කරන ලද යෙදුම් කවුළුව වෙත

  • දියත් කිරීමයි - යෙදුම දියත් කරන්න. යෙදුමේ නම යතුරෙන් පරාමිතියක් ලෙස පැමිණේ දත්ත.
  • ශබ්ද - ශබ්ද මාදිලිය නිශ්ශබ්ද කිරීමට වෙනස් කරන්න.
  • අන්ලොක් - තිරයේ සහ යතුරුපුවරුවේ පසුතල ආලෝකය පූර්ණ දීප්තියට පත් කරයි. යෙදුම මෙම ක්‍රියාව WakeLock භාවිතයෙන් සිදු කරයි, තන්තුව [යෙදුම් ලේබලය]: INFO ටැගයක් ලෙස සඳහන් කරයි
  • අවසර ආවරණ — ශ්‍රිතය ක්‍රියාත්මක කර නොමැත (විධාන ක්‍රියාත්මක කිරීමට ප්‍රතිචාරය වන්නේ {"පණිවිඩය":"සහාය නොදක්වයි"} හෝ {"පණිවිඩය":"අඩු sdk"})
  • අභිමානවත් ය — ශ්‍රිතය ක්‍රියාත්මක කර නැත (විධාන ක්‍රියාත්මක කිරීමට ප්‍රතිචාරය වන්නේ {"පණිවිඩය":"සහාය නොදක්වයි"}හෝ {"පණිවිඩය":"අඩු 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
    • Google Play කාඩ්පතක් ලෙස වෙස්වලාගත් තතුබෑම් කවුළුවක් පෙන්වන්න.

  • අන්තර් — විධානය සැලසුම් කර ඇත්තේ AcessibilityService භාවිතයෙන් වෙනත් යෙදුම්වල කවුළු මූලද්‍රව්‍ය සමඟ අන්තර් ක්‍රියා කිරීමටය. අන්තර්ක්‍රියා සඳහා විශේෂ සේවාවක් වැඩසටහනේ ක්‍රියාත්මක කර ඇත. විමර්ශනය කෙරෙන යෙදුමට windows සමඟ අන්තර් ක්‍රියා කළ හැක:
    • දැනට ක්‍රියාත්මකයි. මෙම අවස්ථාවෙහිදී, පරාමිතිය ඔබට අන්තර්ක්‍රියා කිරීමට අවශ්‍ය වස්තුවේ id හෝ පෙළ (නම) අඩංගු වේ.
    • විධානය ක්‍රියාත්මක කරන අවස්ථාවේදී පරිශීලකයාට දෘශ්‍යමාන වේ. යෙදුම id ​​මගින් windows තෝරා ගනී.

    වස්තූන් ලැබීමෙන් ප්‍රවේශ්‍යතාවNodeInfo උනන්දුවක් දක්වන කවුළු අංග සඳහා, යෙදුම, පරාමිතීන් මත පදනම්ව, පහත ක්‍රියා සිදු කළ හැකිය:

    • අවධානය - වස්තුව වෙත අවධානය යොමු කරන්න.
    • ක්ලික් කරන්න - වස්තුවක් මත ක්ලික් කරන්න.
    • actionId - හැඳුනුම්පත අනුව ක්‍රියාවක් කරන්න.
    • setText - වස්තුවක පෙළ වෙනස් කරන්න. පෙළ වෙනස් කිරීම ආකාර දෙකකින් කළ හැකිය: ක්‍රියාවක් කරන්න ACTION_SET_TEXT (ආසාදිත උපාංගයේ ඇන්ඩ්‍රොයිඩ් අනුවාදය බාල හෝ සමාන නම් LOLLIPOP), හෝ ක්ලිප්බෝඩ් එක මත තන්තුවක් තබා වස්තුවකට ඇලවීමෙන් (පැරණි අනුවාද සඳහා). බැංකු යෙදුමක දත්ත වෙනස් කිරීමට මෙම විධානය භාවිතා කළ හැක.

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

මේ අනුව, පාලක සේවාදායකයේ නිවැරදි වින්‍යාසය සමඟ, ගස්ටෆ් හට බැංකු යෙදුමේ පෙළ ක්ෂේත්‍ර පිරවීමට හැකි අතර ගනුදෙනුව සම්පූර්ණ කිරීමට අවශ්‍ය බොත්තම් ක්ලික් කරන්න. ට්‍රෝජන් යෙදුමට ලොග් වීමට පවා අවශ්‍ය නොවේ - එය PUSH දැනුම්දීමක් ප්‍රදර්ශනය කිරීමට විධානයක් යැවීමට ප්‍රමාණවත් වන අතර පසුව ස්ථාපනය කර ඇති බැංකු යෙදුම විවෘත කරන්න. පරිශීලකයා තමා විසින්ම සත්‍යාපනය කරනු ඇත, ඉන් පසුව Gustuff හට මෝටර් රථය පිරවීමට හැකි වනු ඇත.

SMS පණිවිඩ සැකසුම් මොඩියුලය

SMS පණිවිඩ පිළිගැනීම සඳහා යෙදුම ආසාදිත උපාංගය සඳහා සිදුවීම් හසුරුවන්නක් ස්ථාපනය කරයි. අධ්‍යයනය යටතේ ඇති යෙදුමට SMS පණිවිඩයේ ශරීරයට එන ක්‍රියාකරුගෙන් විධාන ලබා ගත හැකිය. විධාන ආකෘතියෙන් පැමිණේ:

7!5=<%Base64 කේතනය කළ විධාන%>

යෙදුම පැමිණෙන සියලුම SMS පණිවිඩවල තන්තුව සොයයි 7!5=, තන්තුවක් අනාවරණය වූ විට, එය ඕෆ්සෙට් 64 හි Base4 වෙතින් තන්තුව විකේතනය කර විධානය ක්‍රියාත්මක කරයි. විධාන CnC සමඟ සමාන වේ. ක්රියාත්මක කිරීමේ ප්රතිඵලය විධානය පැමිණි එකම අංකයට යවනු ලැබේ. ප්‍රතිචාර ආකෘතිය:

7*5=<%Base64 "result_code විධානය"%> හි කේතනය

විකල්පයක් ලෙස, යෙදුමට ලැබුණු සියලුම පණිවිඩ මූල අංකයට යැවිය හැක. මෙය සිදු කිරීම සඳහා, මනාප ගොනුවේ මූල අංකය සඳහන් කළ යුතු අතර පණිවිඩ යළි-යොමුවීම් ධජය සැකසිය යුතුය. ප්‍රහාරකයාගේ අංකයට SMS පණිවිඩයක් ආකෘතියෙන් යවනු ලැබේ:

<%සංඛ්‍යාවෙන්%> - <%කාලය, ආකෘතිය: dd/MM/yyyy HH:mm:ss%> <%SMS ශරීරය%>

එසේම, විකල්ප වශයෙන්, යෙදුමට CnC වෙත පණිවිඩ යැවිය හැක. SMS පණිවිඩය JSON ආකෘතියෙන් සේවාදායකයට යවනු ලැබේ:

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

කොඩිය සකස් කර ඇත්නම් nameGenerator("DEFAULT_APP_SMS") - යෙදුම SMS පණිවිඩය සැකසීම නවත්වන අතර ලැබෙන පණිවිඩ ලැයිස්තුව ඉවත් කරයි.

ප්‍රොක්සි මොඩියුලය

අධ්‍යයනය යටතේ පවතින යෙදුමේ Backconnect Proxy මොඩියුලයක් අඩංගු වේ (මෙතැන් සිට Proxy මොඩියුලය ලෙස හැඳින්වේ), එයට වින්‍යාසය සහිත ස්ථිතික ක්ෂේත්‍ර ඇතුළත් වෙනම පන්තියක් ඇත. වින්‍යාස දත්ත නියැදියේ පැහැදිලි ආකාරයෙන් ගබඩා කර ඇත:

Android Trojan Gustuff ඔබගේ ගිණුම් වලින් ක්‍රීම් (fiat සහ crypto) ඉවත් කරන ආකාරය

ප්‍රොක්සි මොඩියුලය මගින් සිදු කරන සියලුම ක්‍රියා ගොනු වලට ලොග් වී ඇත. මෙය සිදු කිරීම සඳහා, බාහිර ගබඩාවේ ඇති යෙදුම "ලොග්" (වින්‍යාස පන්තියේ ProxyConfigClass.logsDir ක්ෂේත්‍රය) නමින් නාමාවලියක් නිර්මාණය කරයි, එහි ලොග් ගොනු ගබඩා කර ඇත. ලොග් වීම නම් සහිත ගොනු වල සිදු වේ:

  1. main.txt – CommandServer කියන class එකේ වැඩ මේ file එකට log වෙලා. පහත දැක්වෙන දේ තුළ, මෙම ගොනුවට string string ඇතුල් කිරීම mainLog(str) ලෙස දක්වනු ලැබේ.
  2. සැසිය-<%id%>.txt — මෙම ගොනුව නිශ්චිත ප්‍රොක්සි සැසියකට සම්බන්ධ ලොග් දත්ත සුරකියි. පහත දැක්වෙන දේ තුළ, මෙම ගොනුවට string string ලොග් වීම sessionLog (str) ලෙස දක්වනු ලැබේ.
  3. server.txt - මෙම ගොනුව ඉහත විස්තර කර ඇති ගොනු වලට ලියා ඇති සියලුම දත්ත ලොග් කිරීමට භාවිතා කරයි.

ලොග් දත්ත ආකෘතිය:

<%Date%> [නූල්[<%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":
            }
        ]
}

එවිට එය තන්තු නිරූපණයකට පරිවර්තනය කර එය ලොග් කරයි.

අනුරූප විධානය ලැබීමෙන් පසු Proxy මොඩියුලය දියත් කෙරේ. ප්‍රොක්සි මොඩියුලය දියත් කිරීමට විධානයක් ලැබුණු විට, යෙදුම නමින් සේවාවක් ආරම්භ කරයි ප්රධාන සේවාව, ප්‍රොක්සි මොඩියුලයේ ක්‍රියාකාරිත්වය කළමනාකරණය කිරීම සඳහා වගකිව යුතු - එය ආරම්භ කිරීම සහ නැවැත්වීම.

සේවාව ආරම්භ කිරීමේ අදියර:

1. මිනිත්තුවකට වරක් ක්‍රියාත්මක වන ටයිමරයක් ආරම්භ කර ප්‍රොක්සි මොඩියුලයේ ක්‍රියාකාරිත්වය පරීක්ෂා කරයි. මොඩියුලය ක්රියාකාරී නොවේ නම්, එය එය ආරම්භ කරයි.
එසේම, සිදුවීම අවුලුවන විට android.net.conn.CONNECTIVITY_CHANGE Proxy මොඩියුලය දියත් කර ඇත.

2. යෙදුම පරාමිතිය සමඟ අවදි අගුලක් නිර්මාණය කරයි PARTIAL_WAKE_LOCK සහ ඔහුව අල්ලා ගනී. මෙය උපාංගයේ CPU නින්ද ප්‍රකාරයට යාම වළක්වයි.

3. ප්‍රොක්සි මොඩියුලයේ විධාන සැකසුම් පන්තිය දියත් කරයි, පළමුව රේඛාව ලොග් කරයි mainLog ("ආරම්භක සේවාදායකය") и

සේවාදායකය::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 - identifier, "x" නම් හවුල් මනාප ගොනුවෙන් "id" ක්ෂේත්‍රය සමඟ අගයක් ලබා ගැනීමට උත්සාහ කරයි. මෙම අගය ලබා ගත නොහැකි නම්, එය නව එකක් ජනනය කරයි. මේ අනුව, ප්‍රොක්සි මොඩියුලයට බොට් හැඳුනුම්පතට සමාන ලෙස ජනනය වන එහිම හඳුනාගැනීමක් ඇත.
  • imei - උපාංගයේ IMEI. අගය ලබා ගැනීමේ ක්‍රියාවලියේදී දෝෂයක් සිදුවුවහොත්, මෙම ක්ෂේත්‍රය වෙනුවට දෝෂ සහිත කෙටි පණිවිඩයක් ලියා ඇත.
  • imsi - උපාංගයේ ජාත්‍යන්තර ජංගම ග්‍රාහක අනන්‍යතාවය. අගය ලබා ගැනීමේ ක්‍රියාවලියේදී දෝෂයක් සිදුවුවහොත්, මෙම ක්ෂේත්‍රය වෙනුවට දෝෂ සහිත කෙටි පණිවිඩයක් ලියා ඇත.
  • ආකෘතිය - අවසාන නිෂ්පාදනය සඳහා අවසාන පරිශීලක-දෘශ්‍ය නාමය.
  • නිෂ්පාදකයා - නිෂ්පාදනයේ/දෘඪාංගයේ නිෂ්පාදකයා (Build.MANUFACTURER).
  • androidVersion - "<%release_version%> (<%os_version%>),<%sdk_version%>" ආකෘතියේ තන්තුවකි
  • රට - උපාංගයේ වත්මන් ස්ථානය.
  • partnerId යනු හිස් තන්තුවකි.
  • පැකේජයේ නම - පැකේජයේ නම.
  • ජාල වර්ගය - වත්මන් ජාල සම්බන්ධතා වර්ගය (උදාහරණ: "WIFI", "MOBILE"). දෝෂයකදී, ශුන්‍ය ලෙස ආපසු ලබා දෙයි.
  • hasGsmSupport - true - දුරකථනය GSM සඳහා සහය දක්වන්නේ නම්, එසේ නොමැතිනම් අසත්‍යය.
  • simReady - SIM කාඩ්පත් තත්ත්වය.
  • simCountry - ISO රටේ කේතය (SIM කාඩ්පත් සපයන්නා මත පදනම්ව).
  • ජාල ක්රියාකරු - ක්රියාකරුගේ නම. අගය ලබා ගැනීමේ ක්‍රියාවලියේදී දෝෂයක් සිදුවුවහොත්, මෙම ක්ෂේත්‍රය වෙනුවට දෝෂ සහිත කෙටි පණිවිඩයක් ලියා ඇත.
  • simOperator - සේවා සපයන්නාගේ නම (SPN). අගය ලබා ගැනීමේ ක්‍රියාවලියේදී දෝෂයක් සිදුවුවහොත්, මෙම ක්ෂේත්‍රය වෙනුවට දෝෂ සහිත කෙටි පණිවිඩයක් ලියා ඇත.
  • අනුවාදය - මෙම ක්ෂේත්‍රය වින්‍යාස පන්තියේ ගබඩා කර ඇත; බොට් හි පරීක්ෂා කරන ලද අනුවාද සඳහා එය “1.6” ට සමාන වේ.

5. සේවාදායකයෙන් විධාන සඳහා රැඳී සිටීමේ ආකාරය වෙත මාරු වේ. සේවාදායකයෙන් ලැබෙන විධාන ආකෘතියෙන් පැමිණේ:

  • 0 offset - විධානය
  • 1 offset - sessionId
  • 2 ඕෆ්සෙට් - දිග
  • 4 ඕෆ්සෙට් - දත්ත

විධානයක් පැමිණි විට, යෙදුම ලොග් වේ:
mainLog("ශීර්ෂය { sessionId<%id%>], වර්ගය[<%command%>], දිග[<%length%>] }")

සේවාදායකයෙන් පහත විධානයන් හැකි ය:

නම විධානය දත්ත විස්තර
connectionId 0 සම්බන්ධතා හැඳුනුම්පත නව සම්බන්ධතාවයක් සාදන්න
ස්ලීප් 3 කාලය ප්‍රොක්සි මොඩියුලය විරාම කරන්න
PING_PONG 4 - PONG පණිවිඩයක් යවන්න

PONG පණිවිඩයක් බයිට් 4 කින් සමන්විත වන අතර එය මේ ආකාරයෙන් පෙනේ: 0x04000000.

connectionId විධානය ලැබුණු විට (නව සම්බන්ධතාවයක් සෑදීමට) විධාන සම්බන්ධතාවය පන්තියක උදාහරණයක් නිර්මාණය කරයි ProxyConnection.

  • ප්‍රොක්සි කිරීම සඳහා පන්ති දෙකක් සහභාගී වේ: ProxyConnection и අවසානය. පන්තියක් නිර්මාණය කරන විට ProxyConnection ලිපිනයට සම්බන්ධ වෙමින් ProxyConfigClass.host: ProxyConfigClass.proxyPort සහ JSON වස්තුව පසුකරමින්:

 {
    "id":<%connectionId%>
}

ප්‍රතිචාරයක් වශයෙන්, සේවාදායකයා SOCKS5 පණිවිඩයක් යවයි, එහි සම්බන්ධතාවය ස්ථාපිත කළ යුතු දුරස්ථ සේවාදායකයේ ලිපිනය අඩංගු වේ. මෙම සේවාදායකය සමඟ අන්තර්ක්‍රියා පන්තිය හරහා සිදු වේ අවසානය. සම්බන්ධතා සැකසුම ක්‍රමානුකූලව පහත පරිදි නිරූපණය කළ හැක:

Android Trojan Gustuff ඔබගේ ගිණුම් වලින් ක්‍රීම් (fiat සහ crypto) ඉවත් කරන ආකාරය

ජාල අන්තර්ක්‍රියා

ජාල ස්නිෆර් මගින් රථවාහන විශ්ලේෂණය වැළැක්වීම සඳහා, 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 — Google Play Market ලෙස වෙස්වලාගත් තතුබෑම් කවුළුවක් භාවිතයෙන් ලබාගත් දත්ත උඩුගත කිරීම.
  • http://<%CnC%>/api/v1/logs.php - ලොග් දත්ත උඩුගත කිරීම.
  • http://<%CnC%>/api/v1/records.php - තතුබෑම් කවුළු හරහා ලබාගත් දත්ත උඩුගත කිරීම.
  • http://<%CnC%>/api/v1/set_error.php - සිදු වූ දෝෂයක් පිළිබඳ දැනුම්දීම.

නිර්දේශ

ජංගම ට්‍රෝජන් තර්ජනයෙන් තම ගනුදෙනුකරුවන් ආරක්ෂා කර ගැනීම සඳහා, සමාගම් පරිශීලක උපාංගවල අතිරේක මෘදුකාංග ස්ථාපනය නොකර අනිෂ්ට ක්‍රියාකාරකම් නිරීක්ෂණය කිරීමට සහ වැළැක්වීමට ඉඩ සලසන පුළුල් විසඳුම් භාවිතා කළ යුතුය.

මෙය සිදු කිරීම සඳහා, ජංගම ට්‍රෝජන් හඳුනා ගැනීම සඳහා අත්සන ක්‍රම, සේවාලාභියාගේ සහ යෙදුමේ හැසිරීම් දෙකම විශ්ලේෂණය කිරීමේ තාක්ෂණය සමඟ ශක්තිමත් කළ යුතුය. ආරක්ෂාවට ඩිජිටල් ඇඟිලි සලකුණු තාක්‍ෂණය භාවිතයෙන් උපාංග හඳුනාගැනීමේ කාර්යයක් ද ඇතුළත් විය යුතු අතර, එමඟින් ගිණුමක් අසාමාන්‍ය උපාංගයකින් භාවිතා කරන්නේ කවදාද සහ දැනටමත් වංචාකරුවෙකු අතට පත්ව ඇත්තේ කවදාද යන්න තේරුම් ගැනීමට හැකි වේ.

මූලික වශයෙන් වැදගත් කරුණක් නම්, අන්තර්ජාලයේ පමණක් නොව, ජංගම නාලිකාවේ ද පැන නගින අවදානම් පාලනය කිරීමට සමාගම්වලට ඉඩ සලසන හරස් නාලිකා විශ්ලේෂණයක් තිබීමයි, උදාහරණයක් ලෙස, ජංගම බැංකුකරණය සඳහා වන යෙදුම්වල, ගුප්තකේතන මුදල් සමඟ ගනුදෙනු සඳහා සහ වෙනත් ඕනෑම තැනක. ගනුදෙනු සිදු කළ හැක.මුල්ය ගනුදෙනු.

පරිශීලකයින් සඳහා ආරක්ෂක නීති:

  • Google Play හැර වෙනත් මූලාශ්‍රවලින් Android OS සහිත ජංගම උපාංගයක් සඳහා යෙදුම් ස්ථාපනය නොකරන්න, යෙදුම විසින් ඉල්ලා සිටින අයිතිවාසිකම් කෙරෙහි විශේෂ අවධානයක් යොමු කරන්න;
  • නිතිපතා Android OS යාවත්කාලීන ස්ථාපනය කරන්න;
  • බාගත කළ ගොනු වල දිගු කෙරෙහි අවධානය යොමු කරන්න;
  • සැක සහිත සම්පත් බලන්න එපා;
  • SMS පණිවිඩවල ලැබෙන සබැඳි මත ක්ලික් නොකරන්න.

රංගනයෙන් සෙමියොන් රෝගචේවා, Group-IB පරිගණක අධිකරණ වෛද්‍ය විද්‍යාගාරයේ අනිෂ්ට මෘදුකාංග පර්යේෂණ කනිෂ්ඨ විශේෂඥ.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න